Mailinglisten-Archive |
Moin, > Aber es folgt schon das nächste Problem: ich habe 3 files: index.php, > login.php und logout.php (Code das letzten beiden unten). In letzeren 2 > Files steht dann: > header("Location:". $_SERVER[REQUEST_URI]); > was dann natürlich die Folge hat, dass das login.php file aufgerufen > wird. Also sollte ich die login.php und das logout.php in die index.php > integrieren. Das mache ich mit einem if(login = "yes") oder eben > if(logout = yes). Dann sagt er aber immer redirectionlimit for URL is > exceeded... Dein Problem: Du rufst die login.php immer mit sich selbst auf. Was du willst: login.php schickt zur *vorherigen* Seite zurück. Du musst also eine zusätzliche Variable einbauen, die im *Loginformular* mit $_SERVER['Request_URI'] gefüllt ist (man bedenke auch die Anführungszeichen um Request_URI...). Diese Variable musst du dann anstelle von $_SERVER['Request_URI'] in der login.php benutzen. Derzeit rufst du login.php auf und sagst: Geh zu der Seite, deren Adresse $_SERVER['Request_URI'] ist. In $_SERVER['Request_URI'] steht immer die Adresse der *aktuellen* Seite. Schlussfolgerung: Du rufst immer wieder das Loginscript auf. Und nochmal. Und nochmal. Und nochmal... Die Schleife ergibt sich wahrscheinlich hier: > $sql = "SELECT ". > "Id, Nickname, Nachname, Vorname ". > "FROM ". > "benutzerdaten ". > "WHERE ". > "(Nickname like '".$_REQUEST["name"]."') AND ". > "(Kennwort = '". ($_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 ("Location:". $_SERVER['REQUEST_URI']); > } > else > { > header ("Location:". $_SERVER['REQUEST_URI'] . "&fehler=1"); > } Lass mich raten: Du übergibst die Variablen per Post, hast in $_SERVER['Request_URI'] dadurch ausschließlich http://server.example/login.php stehen. Nach dem Setzen der Session geht das auch gut, aber dann passiert folgendes: http://server.example/login.php wird aufgerufen, $_REQUEST['name'] steht nicht zur Verfügung (woher auch?), es erfolgt die Weiterleitung auf http://server.example/login.php&fehler=1. Hier auch: $_REQUEST['name'] nicht verfügbar, Weiterleitung auf http://server.example/login.php&fehler=1&fehler=1 usw. BTW: Ersetze $_REQUEST soweit das geht durch einen besseren Variablennamen, also $_GET für GET-Formulare oder POST, wenns ein POST-Formular ist. BTW²: WHERE ( Nickname like '" . $REQUEST['name'] . "' ) macht keinen Sinn, da du keine Suchmuster benutzt. Nimm einen einfachen Zeichenkettenvergleich, der läuft auch ohne Berücksichtigung von Groß- und Kleinschreibung ab. mfg Nico -- www.buchtips.net - Rezensionen online
php::bar PHP Wiki - Listenarchive