PHP - Anfänger: Login - Skript ist fehlerhaft

Beitrag lesen

Hallo!

Ich schreibe zur Zeit an einer neuen Webseite und bin bisher immer um PHP herum gekommen. Doch diesmal brauche ich ein PHP login script. Habe mir mehrere kostenlose heruntergeladen und umgebaut. Ich kann einen Admin festlegen in einer User.txt. Das Script funzt per Sessions! Das einloggen und ausloggen klappt auch. Es werden auch nur bestimmte Seiten angezeigt, wenn ich eingeloggt bin, gebe ich aber einen Benutzer ein, der nicht existiert, werde ich trotzdem eingeloggt und alle Seiten sind plötzlich sichtbar. Logge ich mich nun wieder aus und gebe den richtigen Benutzer mit Passwort ein, kommt plötzlich; Benutzer existiert nicht. Nach einiger Zeit funzt wieder alles, bis ich wieder einen falschen Benutzer eingebe!!?? Häääää?

Ich hoffe es war verständlich und jemand findet vielleicht meinen Fehler! Hier sind meine Dateien;

LOGIN.PHP:

<?php
session_start();
session_register("username");
?>
<?
include ("config.php");

$password=crypt($password,$schluessel);
$password .= "\n";
$log=0;

$userdatei = fopen ("user.txt","r");
while (!feof($userdatei))
{
$zeile = fgets($userdatei,50);
$userdata = explode("|", $zeile);
if ($userdata[0]==$username && $userdata[1]==$password)
{
$log=1;
}
}
fclose($userdatei);

if ($log==1)
{
?>

<HTML>
   <HEAD>
   </HEAD>
   <BODY bgcolor="#7FFF00">
      <table width="100%" border="0">
         <tr>
            <td><img src="images/login.ico"></img></td>
            <td align="right" valign="middle"><font size="+1" color="#008000"><b>LOGGED IN</b></font></td>
         </tr>
      </table>
      <center><b>Das Administratortool steht Ihnen nun im vollen Umfang zur Verf&uuml;gung.</b></center>
      <br><center><? echo "<a href="$logoutseite"><b>Logout</b></a>"; ?></center>
   </BODY>
</HTML>

<?
}
else
{
echo "<center><font color=FF0000><b>Login fehlgeschlagen!</b><br><br><b>Benutzer existiert nicht oder das Passwort ist falsch!</b></font><br><br><a href="$loginfailed"><b>zur&uuml;ck</b></a>";
}
?>

CONFIG.PHP:

<?
$schluessel = "TD";
$loginseite = "index.html";
$loginfailed = "login.html";
$logoutseite = "logout.php";
?>

LOGOUT.PHP:

<?php
session_start();
?>
<?php
session_start();
session_unregister("username");
?>

<HTML>
   <HEAD>
   </HEAD>
   <BODY bgcolor="#FF0000">
      <table width="100%" border="0">
         <tr>
            <td><img src="images/logout.ico"></img></td>
            <td align="right" valign="middle"><font size="+1" color="#FFFFFF"><b>LOGGED OUT!</b></font></td>
         </tr>
      </table>
      <br><center><font color="#FFFFFF"><b>Sie haben sich erfolgreich ausgeloggt und Ihre Session wurde beendet.</b></font></center>
   </BODY>
</HTML>

ANMELDEN.PHP:

<?
include("config.php");

$user_name = array();
if ($username == "" || $password == "")
{
echo "<b><font color="#FF0000">Sie haben nicht alle Felder ausgefüllt!</b></font><br><a href="" onClick="history.forward()">zurück</a>";
}
else
{
$userdatei = fopen ("user.txt","r");
while (!feof($userdatei))
{
$zeile = fgets($userdatei,100);
$userdata = explode("|", $zeile);
array_push ($user_name,$userdata[0]);
}
fclose($userdatei);

if (in_array($username,$user_name))
{
echo "<b><font color="#FF0000">Dieser Benutzername existiert schon!</b></font><br><a href="" onClick="history.forward()">zurück</a>";
}
else
{
if ($password==$password2)
{
$userdatei = fopen ("user.txt","a");
fwrite($userdatei, $username);
fwrite($userdatei, "|");
$password=crypt($password,$schluessel);
fwrite($userdatei, $password);
fwrite($userdatei, "\n");
fclose($userdatei);
header('Location: index.php?check=refresh');
}
else
{
echo "<b><font color="#FF0000">Ihr angegebenes Passwort stimmt nicht mit dem zu Widerholenden überein!</b></font><br><a href="$loginseite">zurück</a>";
}
}
}
?>

Bitte helft mir, ich verzweifele!!!

Mfg.