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