Unerklärlicher Fehler
Hallo,
ich habe inzwischen mein Login-script erfolgreich erstellt. Außerdem habe ich es noch um eine Registrierfunktion, eine Logout-funktion und eine Seite, die ermittelt, ob der User eingeloggt ist und dementsprechend anzeigt, ob man eingeloggt ist, erweitert.
Wenn man sich erfolgreich einloggt, wird eine Session gestartet und die Variable "Benutzername" in der Session registriert. Dann kann man auf "Weiter" klicken. Das "Weiter" führt zu der Datei "seite.php". Diese startet die Session und ermittelt, ob die Variable "Benutzername" in der Session registriert ist. Wenn sie registriert ist, dann gibt sie den Inhalt "Eingeloggt als $Benutzername [Ausloggen]" aus. Wenn nicht, dann gibt sie den Inhalt "Nicht eingeloggt [Einloggen]" aus. Nun habe ich das Problem, dass bei dem Dokument, welches überprüft, ob der Login-vorgang erfolgreich war, wie auch bei der Datei "seite.php", dass für die Variable "Benutzername", die in der Session registriert wurde immer "Leander Muskalla" (1 Wert in der Datenbank) eingesetzt wird.
Hier die Quelltexte:
login.php:
seite.php:
Es muss wohl mit der Session in "login.php" zu tun haben. Denn wenn ich das "echo "Hallo $Benutzername! Herzlich Willkommen im Mitglieder-bereich. <a href=\"seite.php\">Weiter</a>";" vor "session_start();" und "session_register("Benutzername");" stelle, dann zeigt er mir zumindest bei der Ausgabe von "login.php" den richtigen Namen (den eigegebenen) an.
Weiss jemand, woran das liegt und kann mir helfen?
Über hilfreiche Antworten oder auch Lösungen würde ich mich sehr freuen.
[edit]
Ich bemerke gerade, dass es nur im FF nichts funktioniert. In anderen Browser geht es ohne Probleme. Den Cache vom FF habe ich auch schon gelöscht.
Woran kann das liegen?
[/edit]
[edit²]
Wenn ich schon mal einen Thread aufmache, stelle ich gleich noch eine zweite Frage: Wie kann man ermitteln, ob ein User eingeloggt ist? Ich würde das gerne in der Statistik anzeigen lassen.
[/edit²]
Hallo,
ich habe inzwischen mein Login-script erfolgreich erstellt. Außerdem habe ich es noch um eine Registrierfunktion, eine Logout-funktion und eine Seite, die ermittelt, ob der User eingeloggt ist und dementsprechend anzeigt, ob man eingeloggt ist, erweitert.
Wenn man sich erfolgreich einloggt, wird eine Session gestartet und die Variable "Benutzername" in der Session registriert. Dann kann man auf "Weiter" klicken. Das "Weiter" führt zu der Datei "seite.php". Diese startet die Session und ermittelt, ob die Variable "Benutzername" in der Session registriert ist. Wenn sie registriert ist, dann gibt sie den Inhalt "Eingeloggt als $Benutzername [Ausloggen]" aus. Wenn nicht, dann gibt sie den Inhalt "Nicht eingeloggt [Einloggen]" aus. Nun habe ich das Problem, dass bei dem Dokument, welches überprüft, ob der Login-vorgang erfolgreich war, wie auch bei der Datei "seite.php", dass für die Variable "Benutzername", die in der Session registriert wurde immer "Leander Muskalla" (1 Wert in der Datenbank) eingesetzt wird.
Hier die Quelltexte:
login.php:
Code:
<?php
include('datenbank.php');
$Benutzername = $_POST['Benutzername'];
$Passwort = $_POST['Passwort'];
$sql = "SELECT * FROM `Userdaten` WHERE `Benutzername` = '$Benutzername' AND `Passwort` = '$Passwort' LIMIT 1";
$res = mysql_query($sql);
if($Benutzername != "" and $Passwort != "")
{
if(mysql_num_rows($res) > 0)
{
session_start();
session_register("Benutzername");
echo "Hallo $Benutzername! Herzlich Willkommen im Mitglieder-bereich. <a href=\"seite.php\">Weiter</a>";
}
else
{
echo "Die Angaben sind leider falsch.";
echo "
";
echo "<a href=\"login.html\">Zurück</a> <a href=\"registrieren.html\">Registrieren</a>";
}
}
else
{
echo "Bitte tragen Sie Ihren Benutzername und Ihr Passwort ein.";
echo "
";
echo "<a href=\"login.html\">Zurück</a>";
}
?>
seite.php:
Code:
<?php
session_start();
if(session_is_registered("Benutzername"))
{
echo "Eingeloggt als $Benutzername [<a href=\"logout.php\">Ausloggen</a>]";
}
else
{
echo "Nicht eingeloggt [<a href=\"login.html\">Einloggen</a>]";
}
?>
Es muss wohl mit der Session in "login.php" zu tun haben. Denn wenn ich das "echo "Hallo $Benutzername! Herzlich Willkommen im Mitglieder-bereich. <a href=\"seite.php\">Weiter</a>";" vor "session_start();" und "session_register("Benutzername");" stelle, dann zeigt er mir zumindest bei der Ausgabe von "login.php" den richtigen Namen (den eigegebenen) an.
Weiss jemand, woran das liegt und kann mir helfen?
Über hilfreiche Antworten oder auch Lösungen würde ich mich sehr freuen.
[edit]
Ich bemerke gerade, dass es nur im FF nichts funktioniert. In anderen Browser geht es ohne Probleme. Den Cache vom FF habe ich auch schon gelöscht.
Woran kann das liegen?
[/edit]
[edit²]
Wenn ich schon mal einen Thread aufmache, stelle ich gleich noch eine zweite Frage: Wie kann man ermitteln, ob ein User eingeloggt ist? Ich würde das gerne in der Statistik anzeigen lassen.
[/edit²]