Login Script mit PHP und mySQL

Wilhelm

Grünschnabel
Hallo Leute,

ich habe da ein Problem, ich möchte mehrere PHP Seiten passwortgeschützt machen. Die sind wiederum an einer mySQL Datei gebunden.

Ich habe dann mit Hilfe der Post Methode folgendes Script geschrieben:

login.php
<?
require("/settings.php");

if ($REQUEST_METHOD == "POST")
$serverid = mysql_connect ($dbhost, $dbuser, $dbpass);
mysql_select_db ($dbname);

$sqlbefehl = "SELECT * FROM _members where user='".$user."' and passwort='".$passwort."' and _aktiv='checked'";
$ergebnis = mysql_query($sqlbefehl, $serverid);
while ($spalte = mysql_fetch_array ($ergebnis)) {
session_start();
session_register("loggedin");
session_register("user");
session_register("isadmin");
$loggedin = "youmakeit";
if ($spalte[14] == "checked") {
$isadmin = "true";
}
echo "<script language='Javascript'>location.href='index.php'</script>";
}
mysql_close ($serverid);
}
require("/head.php");
?>
<form method="post" action="<?=$SCRIPT_NAME; ?>" name="loginform">
<table align="center" height="98%" border="0" cellspacing="0" cellpadding="0"><tr><td>
<table align="center" border="0" cellspacing="5" cellpadding="5" bgcolor="<?= $tblcolor1 ?>">
<tr>
<td><font size="2"><b>Username : </b></font></td>
<td><input type="text" name="user" value="<?= $loginuser ?>"></td>
</tr>
<tr>
<td><font size="2"><b>Password : </b></font></td>
<td><input type="password" name="passwort" value="<?= $loginpass ?>"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Login" name="submit"></td>
</tr>
</table>
</td></tr></table>
</form>
<script language="Javascript">
document.loginform.user.focus();
</script>

logintrue.php
<?
session_register ("loggedin");
session_register ("user");
if ($loggedin != "youmakeit") {
echo "<script language='Javascript'>parent.location.href='login.php'</script>";
exit();
}
?>

Allerdings bekomme ich eine Fehlermeldung das die While Schleife fehlerhaft sei. Leider weiß ich nicht was daran falsch sein soll.

Wer kann mir helfen, oder ein Fehlerfreies Script mir hierein posten.
Das wäre glaube ich auch die bessere Lösung, da ich nicht so firm in PHP Programmierung bin.

Was muß ich denn dann in die darauffolgenden Scripte oben einsetzten, das die nur in verbindung mit dem pw aufgerufen werden können?!?

Danke für die Hilfe

Fehlermeldung ganz einfach gesagt: Fehler in Zeile 12
 
Zuletzt bearbeitet:
Wenn du mal posten könntest welche fehlermeldung er ausspuckt, dann wäre die fehlersuche einfacher (dazu gibts die dinger ja eigentlich auch :D )
 
Lass mich raten... Nato-Willi?

Das Problem liegt weiterhin in der While-Schleife weil du jedesmal eine Session starten und Werte zuweisen willst. Außerdem, warum benutzt du eine Schleife? Es wird sicherlich nur einen Benutzer oder keinen geben, auf den die Daten zutreffen. Du brauchst also nur auszulesen ob ein Datensatz gefunden wurde. Wenn ja, dann speichere die Werte in Variablen und registriere diese in der Session. Aber erst nachdem du den Variablen den Wert zugewiesen hast!
 
richtig :-) ...........NW,

aber wie geanu mache ich das ?!?

Hättest Du nicht ein fertiges script?, oder könnte mir jemand das Script lauffähig machen ?!? Leider weiß ich nicht mehr ganz weiter. :mad:

Vielen Dank im vorraus !
 
Also ich bin der Meinung, dass ansonsten der Wert auf der nächsten Seite verloren geht. PHP speichert doch die Variable erst mit dem Aufruf von session_register() in dem "Cookie", oder lieg ich da falsch?
Wenn es so ist, speichert er in deinem Fall erst die Variable in der Session und danach änderst du den Wert ohne, dass er übernommen wird.

Berichtigt mich mal einer wenn ich was falsches sage!
 
-

Also ich registrier ein Array in einer Session und füge später dann Werte dem Array hinzu. Und bei mir geht nichts verloren. Auf php.net steht auch nicht, dass die Variable/Array einen Wert haben muss. In den Beispielen dort, wird auch erst eine Variable registriert und dann ein Wert hinzugefügt.
 
session_register heißt, laut meinem php-büchlein: Variable in der Session anmelden. Das wiederum bedeutet, dass die variable mitgeschickt werden darf, innerhalb des scriptes aber beliebig verändert werden kann (on-the-fly) und beim wechseln zw. den seiten mit dem aktuellsten wert mitgeschickt wird.

da ich aber schon 2 fehler im buch gefunden habe, kann ich natürlich auch mal wieder mist erzählt haben, aber ich glaube, dies stimmt so :]
 

Neue Beiträge

Zurück