Session Fehler im Login Script, login klappt nur bei gelöschten Sessions

melistik

Erfahrenes Mitglied
Hi, ich habe mich durch mehrere Tutorials geschlagen
und mir ein kleines Loginscript geschrieben, doch irgendwie klappt das mit dem array automatisch löschen/überschreiben irgendwie nicht.
Bitte seht mal mein Code durch, nach eventuellen Fehlern oder verbesserungen.

login
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Login</title>
<link href="css.css" rel="stylesheet" type="text/css" />
</head>

<form name="Login_Formular" method="post" action="admin.php?db=login">
    User:<br>
    <input name="user" type="text"><br>
	Passwort:<br>
    <input name="pass" type="text"><br><br>
    <input type="submit" name="Submit" value="Senden">
</form>
admin.php
PHP:
<?php
session_start(); 
session_register("loged","key","login");

$session_name = session_name()."=".session_id();
$fp = file("user.txt");
$lines = count($fp);
echo "<link href='css.css' rel='stylesheet' type='text/css'/>";
//---Login Check
if ($db == "login") {
for ($i=0;$i<=$lines;$i++) {
$zeile = $fp[$i];
list($username,$passwort) = explode ("|--|", $zeile);
if (($username == $_POST['user']) AND ($passwort == $_POST['pass'])) {
$loged = TRUE;
$log = TRUE;
$key = $_POST['pass'];
$login = $_POST['user'];
return;
}}
if ($log){
echo "<a href='$PHP_SELF?db=admin&$session_name'>Einen Moment...</a>";
echo "<meta http-equiv=\"Refresh\" content=\"1; url=$PHP_SELF?db=admin&$session_name\">";
}
}
//---Admin Start
if (($loged) AND ($db == "admin")) {
echo "Willkommen $login<br><br>";
echo "Hier gehts weiter<a href='$PHP_SELF?db=weiter&$session_name'>klicke hier</a><br>";
echo "Um dich auzuloggen<a href='$PHP_SELF?db=logout&$session_name'>klicke hier</a>";
}
if (($loged) AND ($db == "weiter")) {
echo "Hallo weiter $ulogin<br><br>";
}
//---Falsches Passwort oder Login
if (!$loged) {
echo "Falscher User oder Passwort";
session_unset();
session_destroy();
}
if ($db == "logout") {
session_unset();
session_destroy();
echo "ausglogged";
echo "<meta http-equiv=\"Refresh\" content=\"1; url=login.php\">";
}

?>
user.txt sie wie folgt aus:
Code:
melistik|--|mop|--|
meli|--|tot|--|

// Edit:
Habe Code an den jetzten der auch noch nicht klappt aktualisiert ...
hoffe jemand weiß rat !
 
Zuletzt bearbeitet:
Ich empfehle http://www.php.net wenn du befehle benutzt, mit denen du dich nicht aukennst sieh da nach, was die bringen oder wie man sie einsetzen muss...
ich war mir nicht sicher, wie es bei sessions ist, aber Cookies müssen gesetzt werden, bevor du Text ausgibst. Da sessions auf Cookies basieren steht auf php.net folgendes:
Anmerkung: Bei Verwendung Cookie-basierter Sessions müssen Sie session_start() aufrufen, bevor irgend etwas an den Browser geschickt wird.
 
Das Habe ich geändert, doch wirklich was bringen tut es nicht.
Weiß sonst jemand was dort der grobe schnitzer ist ?
Ich hoffe Hilfe kommt...
 
Ich habe nochmal ein anderes Tutorial durchgelesen,
doch irgendwie klappt das einloggen net !

PHP:
<?php
session_start();
$fp = file("user.txt");
$lines = count($fp);
echo "<head><title>Login</title><link href=\"css.css\" rel=\"stylesheet\" type=\"text/css\" /></head><body>";
if(($_POST['user'] == "") OR ($_POST['pass'] == "")) { 
echo "<form name=\"Login_Formular\" method=\"post\" action=\"$PHP_SELF\">
    User:<br>
    <input name=\"user\" type=\"text\"><br>
	Passwort:<br>
    <input name=\"pass\" type=\"text\"><br><br>
    <input type=\"submit\" name=\"Submit\" value=\"Senden\">
</form>";
}else{
//---Login Check
for ($i=0;$i<$lines;$i++) {
$zeile = $fp[$i];
list($username,$passwort) = explode ("|--|", $zeile);
if (($username == $_POST['user']) AND ($passwort == $_POST['pass'])) {
$log = TRUE;
$loged = TRUE; $key = $_POST['pass']; $login = $_POST['user'];
session_register('key');
session_register('loged');
session_register('login');
$session_name = session_name()."=".session_id();
echo "<p align=\"center\">LogIn erfolgreich! :-)<br><br><a href=\"admin.php?$session_name\">Weiter</a></p>";
}
}
if (!$log){
echo "Sorry Falscher Login";
session_unset();
session_destroy();
}
}
?>
</body>
</html>
Kann sich bitte jemand melden mit HIlfe ...
 
Zurück