aVenger
2006-10-31, 17:01:35
Ich arbeite grade an meinem Userlogin einer HP. Folgendes Problem. Ich lies die Daten aus nem Formular aus vergleiche sie mit der Datenbank, fülle die Session (scheint anscheinend auch zu funktionieren; echo Befehl gibt was aus) und wenn ich dann auf nen Link klicke um in den Adminbereich zu kommen steht nichts mehr in der Session.
formular.php
Einfach nur zum Daten eingeben ;)
<?php
session_start ();
?>
<FIELDSET><LEGEND><h1>LOGIN</h1></LEGEND>
<form action="index.php?site=login" method="post">
<TABLE>
<TR>
<TD>Name(NN):</TD>
<TD><input type="text" name="name" size="20"></TD>
</TR>
<TR>
<TD>Kennwort:</TD>
<TD><input type="password" name="pwd" size="20"></TD>
</TR>
<TR>
<TD> </TD>
<TD ALIGN="right"><input type="submit" value="Login"></TD>
</TR>
</TABLE>
</FIELDSET>
</form>
login.php
vergleich mit der DB und füllen der session
<?php
// Session starten
session_start ();
// Datenbankverbindung aufbauen
include ("./connection.php");
//////////////////////////////
$sql = "SELECT ".
"Id, Nachname, Vorname, Kuerzel, Berechtigung ".
"FROM ".
"benutzerdaten ".
"WHERE ".
"(Nachname like '".$_REQUEST["name"]."') AND ".
"(Kennwort = '".md5 ($_REQUEST["pwd"])."')";
$result = mysql_query ($sql);
if (mysql_num_rows ($result) > 0)
{
// Benutzerdaten in ein Array auslesen.
$data = mysql_fetch_array ($result);
// Sessionvariablen erstellen und registrieren
$_SESSION["user_id"] = $data["Id"];
$_SESSION["user_nachname"] = $data["Nachname"];
$_SESSION["user_vorname"] = $data["Vorname"];
$_SESSION["user_kuerzel"] = $data["Kuerzel"];
$_SESSION["user_berechtigung"] = $data["Berechtigung"];
//Ausgabe der Daten (FUNKTIONIERT!!!)
echo ("BenutzerId: "); echo $_SESSION["user_id"]; echo ("<BR>");
echo ("Nachname: "); echo $_SESSION["user_nachname"]; echo ("<BR>");
echo ("Vorname: "); echo $_SESSION["user_vorname"]; echo ("<BR>");
echo ("Berechtigung: "); echo $_SESSION["user_berechtigung"];
}
else
{
//Kein Eintrag gefunden
echo ("Zugangsdaten ungültig");
}
?>
checkuser.php
einfach nur zum überprüfen ob eine session vorhanden ist
<?php
session_start ();
if (!isset ($_SESSION["user_id"]))
{
echo ("Sie müssen sich zuerst einlogen");
}
?>
adminbereich
wenn ich die session mal ausgeben kann reicht mir das :(
<?php
include ("./loginsystem/checkuser.php");
//session_start();
echo $_SESSION["user_id"]; echo ("<BR>");
echo $_SESSION["user_nachname"]; echo ("<BR>");
echo $_SESSION["user_vorname"];echo ("<BR>");
echo $_SESSION["user_berechtigung"];
?>
formular.php
Einfach nur zum Daten eingeben ;)
<?php
session_start ();
?>
<FIELDSET><LEGEND><h1>LOGIN</h1></LEGEND>
<form action="index.php?site=login" method="post">
<TABLE>
<TR>
<TD>Name(NN):</TD>
<TD><input type="text" name="name" size="20"></TD>
</TR>
<TR>
<TD>Kennwort:</TD>
<TD><input type="password" name="pwd" size="20"></TD>
</TR>
<TR>
<TD> </TD>
<TD ALIGN="right"><input type="submit" value="Login"></TD>
</TR>
</TABLE>
</FIELDSET>
</form>
login.php
vergleich mit der DB und füllen der session
<?php
// Session starten
session_start ();
// Datenbankverbindung aufbauen
include ("./connection.php");
//////////////////////////////
$sql = "SELECT ".
"Id, Nachname, Vorname, Kuerzel, Berechtigung ".
"FROM ".
"benutzerdaten ".
"WHERE ".
"(Nachname like '".$_REQUEST["name"]."') AND ".
"(Kennwort = '".md5 ($_REQUEST["pwd"])."')";
$result = mysql_query ($sql);
if (mysql_num_rows ($result) > 0)
{
// Benutzerdaten in ein Array auslesen.
$data = mysql_fetch_array ($result);
// Sessionvariablen erstellen und registrieren
$_SESSION["user_id"] = $data["Id"];
$_SESSION["user_nachname"] = $data["Nachname"];
$_SESSION["user_vorname"] = $data["Vorname"];
$_SESSION["user_kuerzel"] = $data["Kuerzel"];
$_SESSION["user_berechtigung"] = $data["Berechtigung"];
//Ausgabe der Daten (FUNKTIONIERT!!!)
echo ("BenutzerId: "); echo $_SESSION["user_id"]; echo ("<BR>");
echo ("Nachname: "); echo $_SESSION["user_nachname"]; echo ("<BR>");
echo ("Vorname: "); echo $_SESSION["user_vorname"]; echo ("<BR>");
echo ("Berechtigung: "); echo $_SESSION["user_berechtigung"];
}
else
{
//Kein Eintrag gefunden
echo ("Zugangsdaten ungültig");
}
?>
checkuser.php
einfach nur zum überprüfen ob eine session vorhanden ist
<?php
session_start ();
if (!isset ($_SESSION["user_id"]))
{
echo ("Sie müssen sich zuerst einlogen");
}
?>
adminbereich
wenn ich die session mal ausgeben kann reicht mir das :(
<?php
include ("./loginsystem/checkuser.php");
//session_start();
echo $_SESSION["user_id"]; echo ("<BR>");
echo $_SESSION["user_nachname"]; echo ("<BR>");
echo $_SESSION["user_vorname"];echo ("<BR>");
echo $_SESSION["user_berechtigung"];
?>