Funktion

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Funktion

    Ich habe eine kleine Funktion geschrieben, mit der ich
    User registrieren lassen möchte.
    Allerdings wird trotz Prüfung, ob ein Username schon
    vorhanden ist, die Funktion immer erfolgreich ausgegeben.
    Meine Fehlerausgabe steht auf error_reporting(E_ALL);
    und die SQL-Query hat mysql_error(); angehangen bekommen,
    aber es erscheint keinerlei Meldung.

    Meine Funktion sieht so aus:
    PHP-Code:
    if (isset($_POST['action']) && $_POST['action']=='register')
        {
            
    $username = (isset($_POST['username'])) ? $_POST['username'] : '';
            
    $password = (isset($_POST['password'])) ? $_POST['password'] : '';
            
    $email    = (isset($_POST['email']))    ? $_POST['email']    : '';
            
    RegisterUser ($username$password$email);
        }

      function 
    RegisterUser ($username$password$email) {
        
    $result mysql_query("SELECT id,username,email FROM user
                  WHERE username='
    $username' OR email='$email'") or mysql_error();
        
    $row mysql_fetch_array($result);

        if ( 
    mysql_num_rows($result) == )
        {
          
    header("Location: index.php?action=signup&status=failed");
        }
        else
        {
          
    header("Location: index.php?action=signup&status=okay");
        }
      } 
    Fällt jemandem auf, warum bei einem doppeltem Usernamen
    keine Weiterleitung zu failed stattfindet?

  • #2
    Hi,

    Vielleicht hilft es, wenn du die Variablen richtig aus dem String nimmst.
    PHP-Code:
     $result mysql_query("SELECT id,username,email FROM user
                  WHERE username='"
    .$username."' OR email='".$email."'") or mysql_error(); 
    Und lass dir username und email einmal ausgeben!

    Gruß Thomas

    Kommentar


    • #3
      und mach zusätzlich mal
      PHP-Code:
      var_dump($row); 
      ich glaub irgendwie, dass du evtl. mehr als einen Datensatz zurückkriegst und dein if entsprechend schaltet.
      Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
      Schön - etwas Geschichte kann ja nicht schaden.
      Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

      Kommentar


      • #4
        Danke für die schnellen Antworten

        Woran es letztlich lag war, dass ich die Spalte Email noch nicht
        in der MySQL Tabelle erstellt hatte.
        Dies habe ich herausbekommen, indem ich mir meine
        Variablen auslesen lies. Dies geschah jedoch nicht, da vorher
        ein row Fehler kam.

        Nochmals danke für die Hilfe.

        Kommentar

        Lädt...
        X