Skript für Loginsystem

Von: , Frage gestellt am Fr, 4. Sep 2009

Hallo,

ich bräuchte ein Skript für ein Login System (php + MySQL).
In der Anmeldung sollen Folgende Angaben sein:
- Name
- Vorname
- E-Mail Adresse
- Passwort
- Passwort wiederholung
- Land
- PLZ
- Zustimmen der Nutzungsbestimmungen.

Außerdem soll der Nutzer eine E-Mail mit einem Link erhalten, der Sein Konto Aktiviert.

Könnt ihr mir da helfen?

Schöne Grüße,
K00S

8 Antworten zu dieser Frage

  1. Antwort von nach einer Stunde 0 hilfreich
    Re: Skript für Loginsystem

    Hallo

    Also, der Nutzer meldet sich auf einer Website an, bekommt dann eine Email und klickt darin auf einen Link um freigeschaltet zu werden.
    Dann sieht er ein Loginformular und gibt da seine Daten ein und klickt auf OK.
    Und was passiert dann?

    Johannes

    • Antwort von nach 6 Stunden 0 hilfreich
      Re^2: Skript für Loginsystem

      Dann soll sein Account Aktiviert sein und er sich anmelden können um beispielsweise Dateien zu downloaden, Forumsbeitäge zu schreiben ...

      • Antwort von nach 14 Stunden 0 hilfreich
        Re^3: Skript für Loginsystem

        Dann braucht es ja zusätzlich eine Download- und Forensoftware, die mit dem Login verknüpft ist. Hast du die schon und willst da jetzt ein Login reinbasteln oder suchst du das Ganze als Komplettpaket?

        Johannes

        • Antwort von nach einem Tag 0 hilfreich
          Re^4: Skript für Loginsystem

          nein das geht schon ich bin nach dieser anleitung vorgegangen:
          <url>http://www.webmaster-eye.de/Datenbankbasiertes-LogIn...>

          Kann jemand den Quelltext auf Fehler durchsuchen?
          <code><?php
          session_start();
          require("connect.inc.php");
          ?>
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
          <head>
          <title>Neuen Benutzer anlegen</title>
          <link rel="stylesheet" type="text/css" href="style.css">
          </head>


          <body>
          <?php
          $name = $_GET['name'];
          $email = $_GET['email'];
          $aktivierungscode = $_GET['aktivierungscode'];
          $hello = "yes";
          if ( $name != "" and $mail != "" and $aktivierungscode != "")
          { $aendern = "UPDATE user Set best = '$hello'
          WHERE name, aktivierungscode, mail LIKE '$name', '$aktivierungscode', '$email'";
          $update = mysql_query($aendern);}
          ?>

          <?php if(!isset($_POST['submit'])) { ?>
          <form method="post">
          <table style="width: 100%">
          <tr>
          <td>Name:</td>
          <td><input name="name" size="20" type="text"></td>
          </tr>
          <tr>
          <td>Vorname:</td>
          <td><input name="vorname" size="20" type="text"></td>
          </tr>
          <tr>
          <td>Wohnort:</td>
          <td><input name="wohnort" size="20" type="text"></td>
          </tr>
          <tr>
          <td>PLZ:</td>
          <td><input name="PLZ" size="20" type="text"></td>
          </tr>
          <tr>
          <td>Stra�e und Hausnummer:</td>
          <td><input name="strundhnr" size="20" type="text"></td>
          </tr>
          <tr>
          <td>Land:</td>
          <td><input name="land" size="20" type="text"></td>
          </tr>
          <tr>
          <td> </td>
          <td> </td>
          </tr>
          <tr>
          <td>Benutzername:</td>
          <td><input name="username" size="20" type="text"></td>
          </tr>
          <tr>
          <td>E-Mail Adresse:</td>
          <td><input name="email" size="20" type="text"></td>
          </tr>
          <tr>
          <td>Passwort:</td>
          <td><input name="password" type="password"></td>
          </tr>
          <tr>
          <td>Passwort wiederholen:</td>
          <td><input name="password2" type="password"></td>
          </tr>
          <tr>
          <td> </td>
          <td> </td>
          </tr>
          <tr>
          <td>Best�tigen der Nutzungsbedingungen:</td>
          <td><input name="nutzungsbedingungen" type="checkbox"></td>
          </tr>
          <tr>
          <td>
          <form method="post">
          <input name="submit" type="submit" value="Anmelden"></form></td>
          <td> </td>
          </tr>
          </table>
          </form>


          <?php
          }elseif(!isset($_POST['username']) || $_POST['username'] == ""){
          echo '<p align="center">
          Einen Benutzernamen brauchen wir schon ;-)
          <br /><br />Zur�ck</p>';
          }elseif(!isset($_POST['password']) || $_POST['password'] == "") {
          echo '<p align="center">
          Ein Passwort brauchen wir schon ;-)<br /><br />Zur�ck</p>';
          }elseif($_POST['password'] != $_POST['password2']) {
          echo '<form action="neu.php" method="post">';
          echo '<p align="center">Die Passw�rter stimmen nicht �berein!<br /><br />';
          echo '<input type="hidden" name="username" value="'.$_POST['username'].'">';
          echo '<input type="submit" name="zurueck" value="Zur�ck"></p>';
          echo '</form>';
          }elseif(!isset($_POST['email']) || $_POST['email'] == ""){
          echo '<p align="center">
          Bitte geben Sie Ihre E-Mail Adresse an!
          <br /><br />Zur�ck</p>';
          }elseif(!isset($_POST['name']) || $_POST['name'] == ""){
          echo '<p align="center">
          Bitte geben Sie Ihren Namen an!
          <br /><br />Zur�ck</p>';
          }elseif(!isset($_POST['vorname']) || $_POST['vorname'] == ""){
          echo '<p align="center">
          Bitte geben Sie Ihren Vornamen an!
          <br /><br />Zur�ck</p>';
          }elseif(!isset($_POST['wohnort']) || $_POST['wohnort'] == ""){
          echo '<p align="center">
          Bitte geben Sie Ihren Wohnort an!
          <br /><br />Zur�ck</p>';
          }elseif(!isset($_POST['PLZ']) || $_POST['PLZ'] == ""){
          echo '<p align="center">
          Bitte geben Sie Ihre PLZ an!
          <br /><br />Zur�ck</p>';
          }elseif(!isset($_POST['strundhnr']) || $_POST['strundhnr'] == ""){
          echo '<p align="center">
          Bitte geben Sie Ihre Stra�e und Ihre Hausnummer an!
          <br /><br />Zur�ck</p>';
          }elseif(!isset($_POST['land']) || $_POST['land'] == ""){
          echo '<p align="center">
          Bitte geben Sie Ihr Land an!
          <br /><br />Zur�ck</p>';
          }elseif(!isset($_POST['nutzungsbedingungen']) || $_POST['nutzungsbedingungen'] == ""){
          echo '<p align="center">
          Sie m�ssen den Nutzungsbestimmungen zustimmen, damit Sie sich erfolgreich anmelden k�nnen!
          <br /><br />Zur�ck</p>';


          }else{
          $query = @mysql_query("SELECT user FROM users WHERE user = '".$_POST['username']."'");
          $result = @mysql_fetch_array($query);
          if($_POST['username'] == $result['user']) {
          echo '<p align="center">Sorry, dieser Benutzername ist leider schon vergeben!<br /><br />Zur�ck</p>';
          die;
          }else{
          $username = $_POST['username'];
          $pass = md5($_POST['password']);
          $email = $_POST['email'];
          $name = $_POST['name'];
          $vorname = $_POST['vorname'];
          $wohnort = $_POST['wohnort'];
          $plz = $_POST['PLZ'];
          $strundhausnr = $_POST['strundhnr'];
          $Land = $_POST['land'];
          srand(microtime()*1000000);
          $aktivierungscode = rand(1,1000);

          $query = "INSERT INTO users(user,pass,email,name,vorname,wohnort,plz,strundhnr,Land, aktivierungscode) VALUES('$username', '$pass', '$email' '$name', '$vorname', '$wohnort', '$PLZ', '$strundhnr', '$land', '$aktivierungscode',)";
          if(mysql_query($query)){
          echo '<p align="center">Der neue Benutzer wurde erfolgreich angelegt und ihnen wurde eine E-Mail mit einem Best�tigungslink gesendet!<br /><br />Zur Admin-
          Seite
          </p>';

          $email = "Sehr geehrter Besucher der Seite http://www.pcundsoftware.de/,<br><br> Sie erhalten diese Nachricht, da Sie auf der oben genannten Seite registriert wurden. Sollten Sie dies nicht getan haben, so l�schen Sie diese Mail einfach.<br>

          Um Ihre Registrierung zu best�tigen, klicken Sie bitte auf den folgenden Link: <br><br>


          <a href=\"http://www.pcundsoftware.de/Login/neu.php?name=$user..." target=\"_blank\">http://www.pcundsoftware.de/Login/neu.php?name=$user...>
          <br><br>


          Besuchen Sie unsere Seite bald wieder. <br><br>
          Mit freundlichen Gr��en,<br><br>
          Das Team von PC und Software .de";
          $absender = "PcundSoftware.de";
          $amail = "[E-Mail-Adresse entfernt]";
          $extra = "From: $absender <$amail>\n";
          $extra .= "Content-Type: text/html\n
          Content-Transfer-Encoding: 8bit\n";
          mail($email, "Registrierung auf pcundsoftware.de - Best�tigung", $email, $extra);


          }else{
          echo '<p align="center">
          Beim Anlegen des neuen Benutzers trat leider ein Fehler auf!<br /><br /><a
          href="neu.php">Zur�ck</a></p>';
          }
          }
          }
          ?>
          </body>
          </html></code>

          • Antwort von nach einem Tag 0 hilfreich
            Re^5: Skript für Loginsystem

            Hallo,

            ich habe das Skript mal umformatiert und dann auf Fehler untersucht. Durch die kompakte Schreibweise haben sich einige Fehler in der Verschachtelung eingeschlichen.
            Deswegen erstmal ein Tip: Bitte immer mit Einrückungen arbeiten, damit man den die Teile die zusammgehören immer finden kann. Viele Editoren unterstützen einem da auch mit speziellen Funktionen dazu.
            In der Endversion kann man die Formatierungen herausnehmen, damit der Quellcode schneller verarbeitet wird.
            (Leider werden die Einrückungen hier herausgenommen)
            In der Echo-Funktion sind die einfachen und doppelten Anführungszeichen fröhlich vermischt worden. Deswegen immer erst eine Zeile mit echo schreiben, damit wenn eine Fehlermeldung kommt, die Fehlerzeile auch wirklich die richtige Zeile ist.
            Letzter Tipp: Die die()-Funktion beendet die Ausführung des Skripts (Zeile 186). Die Funktion "die" wirklich nur dort einsezten wo sie gebraucht wird.

            Falls du die formatierte neu.php haben möchtest, kurze Rückantwort mit deiner Emailadresse.


            Viel Spaß beim ausprobieren

            Achim 3008
            ------------------------------------------------------------------

            <?php
            session_start();
            require("connect.inc.php");
            ?>

            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

            <html>
            <head>
            <title>Neuen Benutzer anlegen</title>
            <link rel="stylesheet" type="text/css" href="style.css">
            </head>

            <body>

            <?php
            $name = $_GET['name'];
            $email = $_GET['email'];
            $aktivierungscode = $_GET['aktivierungscode'];
            $hello = "yes";

            if ($name != "" and $mail != "" and $aktivierungscode != "")
            {
            $aendern = "UPDATE user Set best = '$hello' WHERE name, aktivierungscode, mail LIKE '$name', '$aktivierungscode', '$email'";
            $update = mysql_query($aendern);
            }

            if (!isset($_POST['submit']))
            {
            ?>

            <form method="post">
            <table style="width: 100%">
            <tr>
            <td>Name:</td>
            <td><input name="name" size="20" type="text"></td>
            </tr>

            <tr>
            <td>Vorname:</td>
            <td><input name="vorname" size="20" type="text"></td>
            </tr>

            <tr>
            <td>Wohnort:</td>
            <td><input name="wohnort" size="20" type="text"></td>
            </tr>

            <tr>
            <td>PLZ:</td>
            <td><input name="PLZ" size="20" type="text"></td>
            </tr>

            <tr>
            <td>Straße und Hausnummer:</td>
            <td><input name="strundhnr" size="20" type="text"></td>
            </tr>

            <tr>
            <td>Land:</td>
            <td><input name="land" size="20" type="text"></td>
            </tr>

            <tr>
            <td> </td>
            <td> </td>
            </tr>

            <tr>
            <td>Benutzername:</td>
            <td><input name="username" size="20" type="text"></td>
            </tr>

            <tr>
            <td>E-Mail Adresse:</td>
            <td><input name="email" size="20" type="text"></td>
            </tr>

            <tr>
            <td>Passwort:</td>
            <td><input name="password" type="password"></td>
            </tr>

            <tr>
            <td>Passwort wiederholen:</td>
            <td><input name="password2" type="password"></td>
            </tr>

            <tr>
            <td> </td>
            <td> </td>
            </tr>

            <tr>
            <td>Bestätigen der Nutzungsbedingungen:</td>
            <td><input name="nutzungsbedingungen" type="checkbox"></td>
            </tr>

            <tr>
            <td><input name="submit" type="submit" value="Anmelden"></td>
            <td> </td>
            </tr>
            </table>
            </form>

            <?php
            }
            elseif (!isset($_POST['username']) || $_POST['username'] == "")
            {
            echo '<p align="center">
            Einen Benutzernamen brauchen wir schon ;-)
            <br /><br />Zurück</p>';
            }
            elseif (!isset($_POST['password']) || $_POST['password'] == "")
            {
            echo '<p align="center">
            Ein Passwort brauchen wir schon ;-)<br /><br />Zurück</p>';
            }
            elseif($_POST['password'] != $_POST['password2'])
            {
            echo '<form action="neu.php" method="post">';
            echo '<p align="center">Die Passwörter stimmen nicht überein!<br /><br />';
            echo '<input type="hidden" name="username" value="'.$_POST['username'].'">';
            echo '<input type="submit" name="zurueck" value="Zurück"></p>';
            echo '</form>';
            }
            elseif(!isset($_POST['email']) || $_POST['email'] == "")
            {
            echo '<p align="center">
            Bitte geben Sie Ihre E-Mail Adresse an!
            <br /><br />Zurück</p>';
            }
            elseif(!isset($_POST['name']) || $_POST['name'] == "")
            {
            echo '<p align="center">
            Bitte geben Sie Ihren Namen an!
            <br /><br />Zurück</p>';
            }
            elseif(!isset($_POST['vorname']) || $_POST['vorname'] == "")
            {
            echo '<p align="center">
            Bitte geben Sie Ihren Vornamen an!
            <br /><br />Zurück</p>';
            }
            elseif(!isset($_POST['wohnort']) || $_POST['wohnort'] == "")
            {
            echo '<p align="center">
            Bitte geben Sie Ihren Wohnort an!
            <br /><br />Zurück</p>';
            }
            elseif(!isset($_POST['PLZ']) || $_POST['PLZ'] == "")
            {
            echo '<p align="center">
            Bitte geben Sie Ihre PLZ an!
            <br /><br />Zurück</p>';
            }
            elseif(!isset($_POST['strundhnr']) || $_POST['strundhnr'] == "")
            {
            echo '<p align="center">
            Bitte geben Sie Ihre Straße und Ihre Hausnummer an!
            <br /><br />Zurück</p>';
            }
            elseif(!isset($_POST['land']) || $_POST['land'] == "")
            {
            echo '<p align="center">
            Bitte geben Sie Ihr Land an!
            <br /><br />Zurück</p>';
            }
            elseif(!isset($_POST['nutzungsbedingungen']) || $_POST['nutzungsbedingungen'] == "")
            {
            echo '<p align="center">';
            echo 'Sie müssen den Nutzungsbestimmungen zustimmen, damit Sie sich erfolgreich anmelden können!';
            echo '<br /><br />Zurück</p>';
            }
            else
            {
            $query = @mysql_query("SELECT user FROM users WHERE user = '".$_POST['username']."'");
            $result = @mysql_fetch_array($query);

            if($_POST['username'] == $result['user'])
            {
            echo '<p align="center">Sorry, dieser Benutzername ist leider schon vergeben!<br /><br />Zurück</p>';
            Echo 'Diese Zeile mit "die" entfernen';
            }
            else
            {
            $username = $_POST['username'];
            $pass = md5($_POST['password']);
            $email = $_POST['email'];
            $name = $_POST['name'];
            $vorname = $_POST['vorname'];
            $wohnort = $_POST['wohnort'];
            $plz = $_POST['PLZ'];
            $strundhausnr = $_POST['strundhnr'];
            $Land = $_POST['land'];
            srand(microtime()*1000000);
            $aktivierungscode = rand(1,1000);

            $query = "INSERT INTO users(user,pass,email,name,vorname,wohnort,plz,strundhnr,Land, aktivierungscode) VALUES('$username', '$pass', '$email' '$name', '$vorname', '$wohnort', '$PLZ', '$strundhnr', '$land', '$aktivierungscode',)";

            if(mysql_query($query))
            {
            echo '<p align="center">Der neue Benutzer wurde erfolgreich angelegt und ihnen wurde eine E-Mail mit einem Bestätigungslink gesendet!<br /><br />Zur Admin-Seite</p>';

            echo 'Sehr geehrter Besucher der Seite http://www.pcundsoftware.de/,<br&g...> Sie erhalten diese Nachricht, da Sie auf der oben genannten Seite registriert wurden. Sollten Sie dies nicht getan haben, so löschen Sie diese Mail einfach.<br>';

            echo 'Um Ihre Registrierung zu bestätigen, klicken Sie bitte auf den folgenden Link: <br><br>';

            echo 'http://www.pcundsoftware.de/Login/neu... <br><br>';

            echo 'Besuchen Sie unsere Seite bald wieder. <br><br>';
            echo 'Mit freundlichen Grüßen,<br><br>';
            echo 'Das Team von PC und Software.de';

            $absender = "PcundSoftware.de";
            $amail = "[E-Mail-Adresse entfernt]";
            $extra = "From: $absender <$amail>\n";
            $extra .= "Content-Type: text/html\nContent-Transfer-Encoding: 8bit\n";

            mail($email, "Registrierung auf pcundsoftware.de - Bestätigung", $email, $extra);
            }
            else
            {
            echo '<p align="center">';
            echo 'Beim Anlegen des neuen Benutzers trat leider ein Fehler auf!<br /><br /><a';
            echo 'href="neu.php">Zurück</p>';
            }
            }
            }
            ?>

            </body>

            </html>

            • Antwort von nach 2 Tagen 0 hilfreich
              Re^6: Skript für Loginsystem

              Danke das du dir die Arbeit gemacht hast!
              Meine E-Mail Adresse lautet: [E-Mail-Adresse entfernt]

              Schöne Grüße
              K00S

            • Antwort von nach 2 Tagen 0 hilfreich
              Re^7: Skript für Loginsystem

              Als ich aber dieses System prbiert habe erscheint: Bei der Anmeldung trat Leider ein Fehler auf!.
              D.h. es muss noch was nict stimmen

            • Antwort von nach 3 Tagen 0 hilfreich
              Re^8: Skript für Loginsystem

              Hallo

              Alle Variablen mit unbekanntem Inhalt müssen vor Verwendung in Datenbankbefehlen mit mysql_real_escape_string() behandelt werden. Ansonsten handelt man sich regelmäßige Fehlermeldungen und eine große Sicherheitslücke ein.

              also:

              $username = mysql_real_escape_string($_POST['username']);
              $pass = mysql_real_escape_string(md5($_POST['password']));
              $email = mysql_real_escape_string($_POST['email']);
              

              usw.
              Wenn man weiß dass eine Variable nur Buchstaben und Zahlen enthält (wie in diesem Fall Passwort-Hash und Aktivierungscode), dann kann man auf das Escapen verzichten, aber besser zuviel als zu wenig.

              Wenn die Fehlermeldung dann immer noch kommt, dann schreib mal folgende Zeile nach
              echo 'Beim Anlegen des neuen Benutzers trat leider ein Fehler auf!<br /><br /><a';


              echo $query.'<br />'.mysql_error().'<br />';

              und schreib mal was auf dem Bildschirm angezeigt wird.

              Und das mit der Email macht auch nicht wirklich Sinn.

              Probiers mal so (Änderungen fett):
              ob_start();
              
              echo 'Sehr geehrter Besucher der Seite http://www.pcundsoftware.de/,<br&g...> Sie erhalten ...
              
              echo 'Um Ihre Registrierung zu bestätigen, klicken Sie bitte auf den folgenden Link: <br><br>';
              
              echo '<a href="http://www.pcundsoftware.de/Login/neu..." target="_blank">http://www.pcundsoftware.de/Login/neu... <br><br>';
              
              echo 'Besuchen Sie unsere Seite bald wieder. <br><br>';
              echo 'Mit freundlichen Grüßen,<br><br>';
              echo 'Das Team von PC und Software.de';
              
              $mailtext = ob_get_clean();
              $absender = "PcundSoftware.de";
              $amail = "webmaster@pcundsoftware.de";
              $extra = "From: $absender <$amail>\n";
              $extra .= "Content-Type: text/html\nContent-Transfer-Encoding: 8bit\n";
              $email = str_replace(array("\r","\n"),'',$_POST['email']);
              
              mail($email, "Registrierung auf pcundsoftware.de - Bestätigung", $mailtext, $extra);
              


              Johannes

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!