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

Einfaches Login-System

ceddy17

Mitglied
Erstmal zu sagen: Ich bin Anfänger in PHP also bitte Rücksicht nehmen....

Ich suche (ja auch schon Google) ein einfaches Login-System! Alles was es können sollte ist:

Passwort und Nutzername sollte im Script drin stehen, und er prüft nur, ob die Eingabe richtig ist. Außerdem sollte man sich ausloggen und (ist ja schon klar) sicher sein.

Im Netz fand ich immer nur fehlerhafte Scripts, eigene Scripts waren schon in Versuchung. Aber ich kann ja durch Codes auch lernen...

Ich freue mich über jeden Link oder einer Eigenkreation. Es sollte auf jeden Fall sicher sein!

Gruß Ceddy17
 
Werbung:
http://www.php-einfach.de/php-tutorial/php-tutorial.php Ist sehr einfach. Speziell die Übung wäre für dich interessant. Weiter gehts dann mit Sessions, zum Stichpunkt ausloggen.

Ps. md5 sollte man nicht (mehr) benutzen.

Mfg
Danke wurde cool erklärt, doch eins besorgt mich:

Ich habe das mal gedownloaded und in meinen Server gesteckt, wo ich alles teste. Das kam dabei raus (ich weis ich mach dann daraus noch index.html): http://rechnen24.funpic.de

So klappt ja auch alles wenn man auf login.html geht und sich voher registriert.

Aber wenn du http://rechnen24.funpic.de/geheim.php eingibst, dann bist du auch drin... Alle anderen Logins auf Seiten schmeissen dich dann runter. Geht das evt. auch ein bisschen sicherer?
 
Werbung:
Ohne deine Scripte zu kennen, können wir nur raten, und da wir hier nicht in einer Quizshow sind ... :D
 
Ups, ja hier:

eintragen.html
HTML:
<html>
<head>
<title>Neuen Benutzernamen Registieren</title>
<meta name="author" content="Andavos">
<meta name="generator" content="Symtec Development Studio 2.0">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">




<form action="eintragen.php" method="post" name="form1">
Dein User-Name:<br>
<input type="text" size="24" maxlength="50" name="username" value="">    <br><br>


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

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

<input type="submit" value="Registieren">
</form>


</body>
</html>

eintragen.php
PHP:
<html>
<head>
<title>Neuen Benutzernamen Registieren></title>
<meta name="author" content="Andavos">
<meta name="generator" content="Symtec Development Studio 2.0">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">


<?php
$username = $HTTP_POST_VARS["username"];
$password = $HTTP_POST_VARS["passwort"];
$password2 = $HTTP_POST_VARS["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=\"eintragen.html\">zur&uuml;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&ouml;rter sind nicht identisch<br> <a href=\"eintragen.html\">zur&uuml;ck</a> ";
  }

?>

geheim.php
PHP:
<?php
session_start();
if(!isset($_SESSION['username']))
  {
  echo "Bitte erst <a href=\"login.html\">einloggen</a>";
  exit;
  }
?>

<html>
<head>
<title></title>
<meta name="author" content="Andavos">
<meta name="generator" content="Ulli Meybohms HTML EDITOR">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
Herzlich Willkommen im gesch&uuml;tzen Bereich
</body>
</html>

login.html
HTML:
<html>
<head>
<title>Login</title>
<meta name="author" content="Andavos">
<meta name="generator" content="Ulli Meybohms HTML EDITOR">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">

<form action="login.php" method="post" name="form1">
Dein User-Name:<br>

<input type="text" size="24" maxlength="50" name="username" value="">    <br>


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

<input type="submit" value="Login">
</form>

</body>
</html>

login.php
PHP:
<?php
session_start();
?>
<html>
<head>
<title>Login</title>
<meta name="author" content="Andavos">
<meta name="generator" content="Ulli Meybohms HTML EDITOR">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">


<br><br>



<?php
$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=\"geheim.php\">Gesch&uuml;tzer Bereich</a>";
      $log = 1;
      }
  }
fclose($userdatei);

if ($log==0)
  {
  echo "Zugriff verweigert <a href=\"login.html\">Zur&uuml;ck</a>";
  }
?>






</body>
</html>



Von http://www.php-einfach.de/tuts_php_login_sessions_dateien.php

Hoffe ihr könnt mir helfen
 
Das ist meist das Problem an Tutotrials, veraltet und zu umständlich, weil es sich so einfacher erklären lässt. Das ist alles nicht das Gelbe vom Ei. Du solltest nach was Aktuellerem suchen.
 
Werbung:
Hab' mal auf die schnelle was zusammengeschraubt:
PHP:
<?php
  // Variable für Fehlertext initialisieren
  $errorText = "";

  // Wurde das Scrpt vom Formulat aufgerufen
  if (isset($_POST['username']))
  {
    // Wurde ein Benutzername eingeben
    if (strlen($_POST['username']))
    {
        // Wurde ein Passwort eingeben und stimmen diese überein
        if (strlen($_POST['passwort']) && $_POST['passwort'] == $_POST['passwort2'])
        {
          // Name der Datei
          $userdatei = "user.txt";
      
          // Wenn die Datei existiert, einlesen
          if (file_exists($userdatei))
              $data = file_get_contents($userdatei);
          else
              $data = "";
      
          // Wenn der Benutzername noch nicht exsitiert
          if (strpos($data, $_POST['username'] . "|") === false)
          {
              // Benutzername und Passwort anhängen
              // md5 ist nicht mehr ideal, aber für den Anfang sollte es reichen
              $data .= $_POST['username'] . "|" . md5($_POST['passwort']) . "\n";
            
              // Datei schreiben
              if (file_put_contents($userdatei, $data))
              {
                  // Zum Login weiterleiten
                  header("Location: login.php");
                  exit();
              }
              else
                $errorText ("Fehler beim Schreiben der Datei");
          }
          else
              $errorText = "Benutzername " . $_POST['username'] . " existiert bereits";
        }
        else
          $errorText = "Passwörter stimmen nicht überein oder nicht eingegeben";
      }
      else
          $errorText = "Benutzername nicht eingegeben";
  }
?>
<html>
<head>
<title>Neuen Benutzernamen Registieren</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<?php
  if (strlen($errorText))
    echo $errorText . "<br />\n";
?>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post" name="form1">
  Dein User-Name:<br>
  <input type="text" size="24" maxlength="50" name="username" value="">    <br><br>
  Dein Passwort:<br>
  <input type="password" size="24" maxlength="50" name="passwort" value="">    <br>
  Passwort wiederholen:<br>
  <input type="password" size="24" maxlength="50" name="passwort2" value="">    <br>  <br>
  <input type="submit" value="Registieren">
  </form>
  </body>
</html>
Auch daran lässt sich noch optimieren, aber für den Anfang und als Lerneffekt sollte es dich weiterbringen
 
Ich hab noch ein einfaches halbwegs aktuelles von mir herum liegen siehe Anhang viel Spaß damit.
Mfg Splasch
 

Anhänge

  • login_simple_v02.zip
    5,4 KB · Aufrufe: 95
Werbung:
Zurück
Oben