Hallo,
also, ich habe ein Login-Script, welches auf Sessions basiert:
intern.php
checkuser.php
formular.php
login.php
logout.php
Soweit so gut. Aber es hat 2 Fehler:
1. Beim Login
Wenn man sich einloggt, dann kommt folgende Fehlermeldung:
Allerdings kann man hinterher die Datei "intern.php" aufrufen, und man gilt als "eingeloggt"...
2. Nicht eingeloggt, aber Versuch von Zugriff auf "intern.php"
Ruft man die Datei "intern.php" auf, und ist NICHT eingeloggt, kommt diese Fehlermeldung:
und die seite wird angezeigt (bis auf, dass die daten nicht ausgelsen werden können).
Das Script online könnt ihr euhc hier angucken:
Link rausgenommen
Die Daten:
Nickname: admin
Passwort: admin
also, ich habe ein Login-Script, welches auf Sessions basiert:
intern.php
Code:
<?php include ("checkuser.php"); ?> <html> <head> <title>Interne Seite</title> </head> <body> BenutzerId: <?php echo $_SESSION["user_id"]; ?> Nickname: <?php echo $_SESSION["user_nickname"]; ?> Nachname: <?php echo $_SESSION["user_nachname"]; ?> Vorname: <?php echo $_SESSION["user_vorname"]; ?> <hr> Ausloggen </body> </html>
Code:
<?php session_start (); ?> <html> <head> <title>Checkuser</title> </head> <body> <?php if (!isset ($_SESSION["user_id"])) { header ("Location: formular.php"); } ?> </body> </html>
Code:
<?php session_start (); ?> <html> <head> <title>Login</title> </head> <body> <?php if (isset ($_REQUEST["fehler=1"])) { echo "Die Zugangsdaten waren ungültig."; } ?> <form action="login.php" method="post"> Name: <input type="text" name="name" size="20"> Kennwort: <input type="password" name="pwd" size="20"> <input type="submit" value="Login"> </form> </body> </html>
Code:
<?php session_start (); ?> <html> <head> <title>Login</title> </head> <body> <?php // Datenbankverbindung aufbauen $connectionid = mysql_connect ("turbozoidberg.planet-school.de", "m38**-1", "*****"); if (!mysql_select_db ("m38**-1", $connectionid)) { die ("Keine Verbindung zur Datenbank"); } $sql = "SELECT ". "Id, Nickname, Nachname, Vorname ". "FROM ". "benutzerdaten ". "WHERE ". "(Nickname 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_nickname"] = $data["Nickname"]; $_SESSION["user_nachname"] = $data["Nachname"]; $_SESSION["user_vorname"] = $data["Vorname"]; header ("intern.php"); } else { header ("formular.php?fehler=1"); } ?> </body> </html>
Code:
<?php // Wird ausgeführt um mit der Ausgabe des Headers zu warten. ob_start (); session_start (); session_unset (); session_destroy (); ?> <html> <head> <title>Logout</title> </head> <body> <?php header ("Location: formular.php"); ob_end_flush (); ?> </body> </html>
1. Beim Login
Wenn man sich einloggt, dann kommt folgende Fehlermeldung:
Warning: Cannot modify header information - headers already sent by (output started at /home/www/kunden/domain.de/intern/login.php:9) in /home/www/kunden/domain.de/intern/login.php on line 37
2. Nicht eingeloggt, aber Versuch von Zugriff auf "intern.php"
Ruft man die Datei "intern.php" auf, und ist NICHT eingeloggt, kommt diese Fehlermeldung:
Warning: Cannot modify header information - headers already sent by (output started at /home/www/kunden/domain.de/intern/checkuser.php:7) in /home/www/kunden/domain.de/intern/checkuser.php on line 10
Das Script online könnt ihr euhc hier angucken:
Link rausgenommen
Die Daten:
Nickname: admin
Passwort: admin
Kommentar