• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Loginberreich ohne Datenbank

Nudl

Neues Mitglied
Hy.
Ich habe mir einen Loginberreich ohne Datenbank "gebastelt".
Die Daten werden stattessen in einer .txt datei gespeichert.
Hier die Seiten erstmal:
regestrieren.html

HTML:
<form action="regestrieren.php" method="post">
Dein Username:<br>
<input type="text" size="24" maxlength="50"
name="username"><br>

Passwort:<br>
<input type="password" size="24" maxlength="50"
name="passwort"><br>

Passwort wiederholen:<br>
<input type="password" size="24" maxlength="50"
name="passwort2"><br>

<input type="submit" value="Regestrieren"><input type="Reset">
</form>
regestrieren.php
PHP:
<?php
$username = $_POST["username"];
$password = $_POST["passwort"];
$password2 = $_POST["passwort2"];



if ($password == $password2)
   {
   $user_vorhanden = array();
   $passwort = md5($password);


   $userdatei = fopen ("user.txt","r");
   while (!feof($userdatei))
      {
      $zeile = fgets($userdatei,500);
      $userdata = explode("|", $zeile);
      array_push ($user_vorhanden,$userdata[0]);
      }
   fclose($userdatei);



   if (in_array($username,$user_vorhanden))
      {
      echo "Username schon vorhanden <br> <a href=\"regestrieren.html\">zurück</a>";
      }

   else
      {
      $userdatei = fopen ("user.txt","a");
      fwrite($userdatei, $username);
      fwrite($userdatei, "|");
      fwrite($userdatei, $passwort);
      fwrite($userdatei, "\n");
      fclose($userdatei);
      echo "$username, deine Anmeldung war erfolgreich<br><a href=\"login.html\">zum Login</a>";
      }
   }

else
  {
  echo "Die Passwörter sind nicht identisch<br> <a href=\"regestrieren.html\">zurück</a> ";
  }

?>
login.html
HTML:
<form action="login.php" method="post">
Dein Username:<br>
<input type="text" size="24" maxlength="50"
name="username"><br><br>

Dein Passwort:<br>
<input type="password" size="24" maxlength="50"
name="password"><br>

<input type="submit" value="Login"><input type="reset">
</form>
login.php
PHP:
<?php
session_start();
$username = $_POST["username"];
$passwort = $_POST["password"];
$passwort = md5($passwort);
$log=0;

$userdatei = fopen ("user.txt","r");
while (!feof($userdatei))
   {
   $zeile = fgets($userdatei,500);
   $userdata = explode("|", $zeile);

   if ($userdata[0]==$username and $passwort==trim($userdata[1]))
      {
      $_SESSION['username'] = $username;
        echo "Login war erfolgreich. <a href=\"Mitgliederberreich.php\">Geschützer Bereich</a>";
      $log = 1;
      }
   }
fclose($userdatei);

if ($log==0)
   {
   echo "Zugriff verweigert <a href=\"login.html\">Zurück</a>";
   }
?>
Mitgliederberreich.php
PHP:
<?php
session_start();
if(!isset($_SESSION['username']));
   {
   echo "Bitte erst <a href=\"login.html\">einloggen</a>!";
   exit;
   }#Das hier funktioniert bei mir leider nicht könnter mir wer sagen warum?
?>

<html>
<head>
</head>
<body>
<b>Hier ist dann das ganze Layout von mir usw.....</b>
</body>
</html>
So, ich würde jetzt aber gerne noch dazumachen das man so lange regestriert bleibt bis man sich ausloggt.
Das man sich überhaupt ausloggen kann.
Das die Emailaddresse auch gespeichert wird und das der Mitgliederberreich funktioniert(so das man nur drauf kann wenn man eingeloggt ist.)
Nur ich wüsste nicht wie!
Kann mir jemand helfen?
 
okay, aber wie geht das,das man überhaupt eingeloggt bleibt? oder ist das bei mir eh schon so?^^
 
Wenn bei die Anmeldung erfolgreich ist, wird in einer Session der Benutzername gespeichert.
Hier:
PHP:
$_SESSION['username'] = $username;
Beim Zugriff auf die Mitgliederseiten, wird geprüft, ob die Session gesetzt ist. Ist dies nicht der Fall, wird der Inhalt nicht ausgegeben.
Hier:
PHP:
if(!isset($_SESSION['username']));
So funktioniert das "angemeldet bleiben".

Zum abmelden sollte es reichen eine Datei mit diesem Inhalt aufzurufen:
PHP:
<?php
// Session beginnen/aufrufen
session_start();

// Session zerstören
session_destroy();

echo "Erfolgreich abgemeldet";
?>
 
Vielen vielen dank :)
HM...
if(!isset($_SESSION['username']));
funktioniert nicht, wird trozdem angezeigt... :/
 
Das wichtigste ist, dass Du in jeder .php - Datei session_start(); schreibst. Sonst funktioniert das nicht.

lg, freakXHTML
 
Zurück
Oben