Ein einfacher Login auf TXT-Basis

Walemann

Mitglied
Hallo zusammen,
habe ien kleines problem und zwar gestalte ich zur zeit ein passwort geschützten Bereich für meine Homepage.
der wie folgt aussieht.

Dazu benötige ich eine TXT Datei mit Benutzer und Passwort bsp:

admin.txt
Code:
admin#21232f297a57a5a743894a0e4a801fc3

ein Login script mit folgendem Inhalt

HTML:
<form action="check.php" method="post">
<table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Name:</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="pass"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="login" value="Login">
</td>
</tr>
</table>
</form>

ein Script (check.php) zu Überprüfung der Eingaben mit diesem inhalt

PHP:
<?php
session_start();

$trennzeichen = "#";
if($login)
{
$name = $_POST['name'];
$pass = $_POST['pass'];

$pass = md5($pass);
if(file_exists("user/".$name.".txt"))
{
$file = file("user/".$name.".txt");
$true = TRUE;
}
else
{
echo "Benutzername nicht gefunden";
$true = FALSE;
}
if($true)
{
$arr = explode($trennzeichen, $file['0']);
$a_name = $arr['0'];
$a_pass = $arr['1'];
if($a_name == $name && $a_pass == $pass)
{
$logedin = TRUE;
session_register("logedin");
echo "Login erfolgreich!<br>Bitte klicken Sie <a href=\"index.php\">hier</a> um zur Startseite zu gelangen.";
}
else
{
echo "Die Daten waren falsch.";
}
}
}
?>

und jede zu schützende datei ist so aufgebaut
PHP:
<?php
session_start();
if(session_is_registered("logedin") && $_SESSION['logedin'])
{
echo "Sie sind eingeloggt.<br><a href=\"logout.php\">Ausloggen</a>";
}
else
{
echo "Sie sind nicht eingeloggt.";
}
?>

und zum logout wird dies ausgeführt
PHP:
<?php
session_start();
session_unset ("logedin");
session_destroy();
echo "Erfolgreich ausgeloggt!<br><a href=\"index.php\">zur Startseite</a>";
?>

Das script läuft bei mir zu hause eigentlich ohne einen fehler aber auf meinem webserver kommt nach dem login script nichts mehr gar nichts mehr nicht einmal ein fehlertext. die check.php bleibt mit lehrem quelltext stehen.

jetzt meine frage an was kann das liegen und wie kann ich den fehler eingrenzen.

auf dem server läuft PHP 5.0.2 fals das was hilft

Vielen Dank für eure Mühe

MFG Walemann
 
Code:
<?php
session_start();

$trennzeichen = "#";
if($login)
probiere mal stattdessen
Code:
if(isset($_POST['login']))
, so wie du es bei $name und $pass korrekt getan hast.
 
Setzt mal zum Test in der check.php vor den PHP Schlusstag ?> noch ein else Zweig.
PHP:
//...
else
{
    echo "der Button wurde nicht gedrückt";
}

Wenn dann dieser Text erscheint probiere mal alle Daten die aus dem Formular kommen mit
$_POST[FELDNAME]
anzusprechen.
 
fanste hat gesagt.:
Setzt mal zum Test in der check.php vor den PHP Schlusstag ?> noch ein else Zweig.
PHP:
//...
else
{
    echo "der Button wurde nicht gedrückt";
}

Wenn dann dieser Text erscheint probiere mal alle Daten die aus dem Formular kommen mit
$_POST[FELDNAME]
anzusprechen.

hab das gemacht und es wird der text angezeigt aber ich spreche doch die daten mit $_POST an
PHP:
$name = $_POST['name'];
$pass = $_POST['pass'];
oder verstehe ich das jetzt falsch
 
Walemann hat gesagt.:
hab das gemacht und es wird der text angezeigt aber ich spreche doch die daten mit $_POST an
PHP:
$name = $_POST['name'];
$pass = $_POST['pass'];
oder verstehe ich das jetzt falsch

ja..."pass" und "name", aber nicht "login"....
 
Sven Mintel hat gesagt.:
Code:
<?php
session_start();

$trennzeichen = "#";
if($login)
probiere mal stattdessen
Code:
if(isset($_POST['login']))
, so wie du es bei $name und $pass korrekt getan hast.

wenn ich dein Vorschlag verwende kommt jetzt nicht "nichts" mehr sondern ich bleibe im login formular
 
Kann es jetzt wenn ich

PHP:
if(isset($_POST['login']))

verwende sein das meine session id nicht gespeichert wird das ich deshalb immer auf das loginfenster zurück komme
 
Code:
if(isset($_POST['login'])) 
//prüft, ob die $_POST-Variable 'login' existiert

if($_POST['login']) 
//prüft, ob die $_POST-Variable 'login' den Wert "true" hat

Das sind 2 verschiedene paar Schuhe.
 
a jetzt ja das leuchtet mir ein
kann es sein das ich mit
PHP:
$logedin = TRUE;
session_register("logedin");
die sessin _register gar nicht auf true setzte das ich deshalb immer auf mein login script zurück komme.
 
Zurück