Mailinglisten-Archive |
Thomas Letzner schrieb: > Hi > > ich habe vor zwei Jahren mal ein Loginscript geschrieben welches auch > funktionierte, jetzt habe ich den Provider gewechselt und nun > funktioniert das Script nicht mehr. Ich habe von verschiedenen Sachen > gelesen und einiges probiert aber irgendwie bekomme ich das script nicht > mehr zum laufen. > Das Problem besteht eigentlich darin das die Session von framelogin.php > nicht mehr gesetzt werden und somit auch nicht in verify.php vorhanden > sind. Zuerst dachte ich daran das es mit der Einstellung register > globals zusammenhängt aber eine Änderung der Einstellung brachte leider > nicht den gewünschten Erfolg. Installierte PHP-Version ist PHP Version > 4.3.10-18. Ich poste daher mal die zwei besagten scripte: > > >>>>>>>>>>>>>>>>framelogin.php<<<<<<<<<<<<<<<<<<<<<<<<<<< > <?php session_start (); ?> > <!doctype html public "-//W3C//DTD HTML 4.0 //EN"> > <html> > <head> > <title></title> > </head> > <body text="#FFFFFF" bgcolor="#000000" link="#FF0000" alink="#FF0000" > vlink="#FF0000"> > <TABLE bordercolor="#7B0000" BORDER=1 CELLSPACING=0 CELLPADDING=1 > WIDTH="140"> > <tr> > <td bgcolor="#393C39">Login</td> > </tr> > </table> > <table> > > <?php > if (!isset ($_SESSION["userid"])) > { > echo "<form action=\"verify.php\" target=\"mitte\" method=\"post\"> > <font size=\"-1\">Username : </font><br> > <input type=\"text\" name=\"username\" size=\"10\" maxlength=\"15\"><br> > <font size=\"-1\">Passwort : </font><br> > <input type=\"password\" name=\"passwort\" size=\"10\" maxlength=\"15\"><br> > <input type=\"submit\" name=\"absenden\" value=\"einloggen\">\n"; > } > else > { > echo "<form action=\"logout.php\" target=\"mitte\" method=\"post\"> > <font size=\"-1\">Username : </font><br> > <input type=\"text\" name=\"username\" size=\"10\" maxlength=\"15\"><br> > <font size=\"-1\">Passwort : </font><br> > <input type=\"password\" name=\"passwort\" size=\"10\" maxlength=\"15\"><br> > <input type=\"submit\" name=\"absenden\" value=\"ausloggen\">\n"; > } > ?> > </form> > </table> > </body> > </html> > > > >>>>>>>>>>>>>><<verify.php<<<<<<<<<<<<<<<<<<<<<<<<<< > > <?php session_start(); > > include ("../include/var.inc.php"); > if ((!isset($_SESSION["username"])) OR (!isset($_SESSION["passwort"]))) > { > die ("Sorry, aber ohne Name bzw. Passwort geht hier nichts"); > } woher soll bitte beim ERSTEN Aufruf $_SESSION["username"] und $_SESSION["passwort"] kommen? Oder wird das in der var.inc.php gesetzt? wenn du die Daten aus dem Formular abfragen willst brauchst du $_REQUEST['username'] und $_REQUEST['passwort'] > $conn = mysql_connect($host,$dbuser,$dbpass); > if (!$conn) > { > die ("Sorry, Verbindungsversuch zur Datenbank ist fehlgeschlagen"); > } > mysql_select_db($dbname,$conn); > $query = "SELECT password, level, email FROM login WHERE username = > '".$username."'"; > $result = mysql_query($query,$conn); > $result = mysql_query("SELECT userid, password, level, email FROM login > WHERE username = '$username'",$conn); Warum machst du das zweimal? > $zeileholen = mysql_fetch_array($result,MYSQL_ASSOC); > mysql_close($conn); > if (!$zeileholen) > { > die ("Sorry, aber dieser Name ist leider nicht bekannt !"); > } > if ($zeileholen["password"] <> $passwort) > { > die ("Sorry, aber dieses Passwort passt nicht zum Usernamen !"); > } Und was machst du wenn zwei Benutzer den gleichen Benutzernamen haben? oder geht das nicht? > $level = 0; > $level = $zeileholen["level"]; > $userid = 0; > $userid = $zeileholen["userid"]; > $email = $zeileholen["email"]; initialisieren von Variablen ist zwar gut, aber überflüssig wenn du eh direkt danach einen Wert zuweißt. > if ($level == 1){ > $_SESSION('username'); > $_SESSION('level'); > $_SESSION('userid'); > $_SESSION('email'); Was soll das sein? -- Sebastian Mendel www.sebastianmendel.de
php::bar PHP Wiki - Listenarchive