Ergebnis 1 bis 4 von 4

Thema: Registrierunsscript

  1. #1
    Azubi(ne)
    Registriert seit
    18.04.2010
    Beiträge
    83
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Registrierunsscript

    Hi,

    Ich bastel mir gerade ein Registrierungsscript, hab da wohl ein paar Fehler gemacht, wobei ich die nicht wirklich lösen kann.

    Also Die Überprüfen funktionieren alle und er schreibt mir, wenn alles richtig ausgefüllt wurde, auch neue Datensätze in die Datenbank. Die Fehlermeldungen "spielen aber verrückt".

    So hier die php Datei (Sieht zwar im ersten Moment bissl viel aus, wenn man die Kommentar aber weglässt egeintlich wirklich wenig)

    PHP-Code:
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
        <input class="input" type="text" name="username" value="Username" /><br />
        <input class="input" type="text" name="password" value="Password" /><br />
        <input class="input" type="text" name="password2" value="Password wiederholen" /><br />
        <input class="input" type="text" name="email" value="EMail" /><br />
     <!--Button-->
        <input id="buttunlogin" name="Login" type="submit" value="Registrieren" /><input id="buttunreset" name="Reset" type="reset" value="Zurücksetzen" />
    </form>
      
    <?php
    //---Mysql_connect enthält den Verbindungsaufbau. vairbalen.php enthält verschiedene Variablen, z.B.: Fehlermeldungen und auch die Daten für den MySQL_Verbindungsaufbau
    include_once("variablen.php");
    include_once(
    "mysql_connect.php");
    //---Daten vom Eingabeformular entgegen nehmen
    $username $_POST['username'];
    $password $_POST['password'];
    $password2 $_POST['password2'];
    $email $_POST['email'];

    /*
     *
     *
     * Der Wert der Variable status wird beim registrieren in die Tabelle Status eingetragen. Der Variable enthält den Zeichenstring "deaktiviert". 
     * Sobald der User den Aktivierungslink
     * bestätigt, wird dieser Wert in aktiviert umgewandelt. 
     *
     *
     */
    $status "deaktiviert";
     
    /* 
     *
     *
     * Nun wird überprüft, ob die Variablen, die vom Formular entgegen genommen werden, auch Werte enthalten.  
     * Sollte ein Feld nicht ausgefüllt worden sein, wird das script abgebrochen und eine Fehlermeldung ausgegeben. 
     * Die Variable $fehler_Felder enthält den Wert "Bitte füllen Sie alle Felder aus! Und es wird überprüft ob 
     * Passwort Eins mit Passwort Zwei übereinstimmt, wenn nicht, wird die Variable $fehler_password ausgegeben" 
     *
     *
     */
    if ($password != $password2 && $username "" && $password "" && $password2 "" && $email "") {
          echo 
    "$fehler_Felder";
       exit();
    }
    //---Password wird mittels md5 verschlüsselt
    $password md5($password);
    //---Hiermit wird abgefragt, wie viele Datensätze gefunden werden, mit dem angegebenden Username.
    $result mysql_query("SELECT id FROM users WHERE username LIKE '$username'"); 
    $anzahl mysql_num_rows($result); 
    //---Nun wird überprüft, wie oft der Username in der Variable $anzahl vorkommt. Wenn nicht, wird der User in die Datenbank eingetragen.
    if ($anzahl == 0) {
          
    $eintrag  "INSERT INTO users (username, password, email, status) VALUES ('$username', '$password', '$email', '$status')";
       
    $ergebnis mysql_query($eintrag);
       
    //---Mit is_resource wir geprüft, ob die variable $ergebnis eine resource (in dem Fall object) ist
       
    if ($ergebnis == true) {
       
    //---Die folgende Variable gibt eine Positive Meldung (Benutzerkonto wurde erstellt) aus.
       
    echo "$meldung_registrierung";
       
    mail($empfaenger$betreff$from$text);
       }
      else
          {
       
    //---Die folgende Variable gibt eine Negative Meldung (Benutzerkonto konnte nicht erstellt werden) aus.
       
    echo "$fehler_eintrag";
      }
     }
     else 
    //---Falls der Benutzname schon existiert
        
    {
     echo 
    "$fehler_benutzername";
    }
    ?>
    Also die Überprüfung, ob alles Felder ausgefüllt worden sind klappt. Passwort vergleichen funktioniert auch und die überprüfung, ob der Username schon in der Tabelle vorhanden ist funktioniert auch.

    Die Fehlermeldungen sich aber irgendwie durcheinander

    Die Fehlermeldungen speicher ich in Variablen ab, diese Lade ich am anfang des scriptes rein. Jetzt kommen die Fehlermeldungen die derzeit im Script ausgegeben werden sollten:
    PHP-Code:
    <?php
    $meldung_registrierung 
    "Ihr Benutzerkonto wurde erfolgreich erstellt! Bitte steigen sie bei ihrem Emailkonto ($email) ein und aktivieren sie ihr Benutzerkonto.";
    $fehler_Felder "Bitte füllen Sie alle Felder korrekt aus!";
    $fehler_eintrag "Dein Benutzerkonto konnte nicht erstellt werden";
    $fehler_benutzername "Der Benutzname existiert bereits.";
    ?>
    Okay, also, hier kann man sich das Ganze ansehen und testen: http://www.game.nicolas-pecher.com/test.php

    Wenn man die Seite nur aufruft kommt schon die fehlermeldung - Der Benutzname existiert bereits.

    Und wenn man 2 unterschiedliche PWs eingibt bleibt die - Der Benutzname existiert bereits. - Fehlermeldung. Dabei müsste aber kommen: "Bitte füllen Sie alle Felder korrekt aus!"

    Also versteht ihr was ich mein? Die Überprüfung klappt zwar und er tragt bei Fehlerhaften ausfüllen des Formulars auch nix in die DB, aber Fehlermeldungen stimmen nicht

    Wäre euch sehr dankbar wenn ihr mir wiedermal weiterhelfen könntet!
    Grüße
    Nico
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Pion
    Gast

    Standard AW: Registrierunsscript

    Lern doch mal Grundlagen bevor du dich an eine Registrierung waagst....

    1. $username = "" , vergleiche werden mit == oder === gemacht

    2.
    PHP_SELF nicht ungesichert( gegen XSS htmlspezialchars zb) verwenden

    3. Richtig debuggen
    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL); und ini_set("display_errors", true);
    3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
    5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
    Geändert von Pion (30.09.2010 um 18:05 Uhr)

  3. #3
    Azubi(ne)
    Themenstarter

    Registriert seit
    18.04.2010
    Beiträge
    83
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Registrierunsscript

    Ich Lerne, indem ich Scripts schreibe und mir so mehr Kenntnisse anschaff.

    Danke, hab ich übersehen.

    //EDIT: Fehlermeldung erscheitn nachwievor
    Geändert von Nico1994 (30.09.2010 um 18:07 Uhr)

  4. #4
    Pion
    Gast

    Standard AW: Registrierunsscript

    Wie schnell du das Editiert hast kannst du gar nicht Punkt 3 von meinen Posting durchgearbeitet haben,.... Wir geben Hilfe zur Selbhilfe machen aber äußerst selten komplett Lösungen

    Aber von mir aus hier noch ein unnötiger Tipp:
    Berechne / Verarbeite das Formular erst nachdem es abgeschickt wurde das geht zb mit
    Code:
    if(isset($_POST['muh'])) { // deine verarbeitung}

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •