Problem mit "Funktion anmelden"

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

  • Problem mit "Funktion anmelden"

    Hallo zusammen!

    Komischerweise klemmt es gerade bei der Anmeldung zu meinem Login (bis vor kurzem bekam ich hier keine Fehlermeldung).


    login-verw.php

    - bei Aufruf der Seite werden URL-Parameter mitgegeben (siehe IF-Anweisung)
    - hier kann sich ein User mit seinen Daten anmelden
    -
    Code:

    PHP-Code:
    if (isset ($_GET['anmelden'])) {
        echo "<h2>Anmelden</h2>";
        echo '<p><form method="post" action="'.$_SERVER['PHP_SELF'].'?anmelden=yes">';
    ?>  
    <table cellspacing="1" cellpadding="2" border="0">
        <tr>
        <td><font size="2">Benutzername:</font></td>
        <td><font size="2"><input type="text" name="username" maxlength="12" size="12" ></font></td>
      </tr>
      <tr>
        <td><font size="2">Passwort:</font></td>
        <td><font size="2"><input name="userpass" type="password"  id="userpass" size="12" maxlength="12"></font></td>
      </tr>
      <tr>
        <td><font size="2">Wiederholen:</font></td>
        <td><font size="2"><input name="userpass2" type="password"  id="userpass2" size="12" maxlength="12"></font></td>
      </tr>
      <tr>
        <td><font size="2">E-Mail:</font></td>
        <td><font size="2"><input type="text" name="email" ></font></td>
      </tr>
      <tr>
        <td colspan="2" align="center"><input type="submit" name="anmelden" value="anmelden"></td>
      </tr>
    </table>
    </form></p>
    <a href="../html/home.html">zur&uuml;ck zur Homepage</a><br>
    <?    //function anmelden aufrufen
        $userid=anmelden($_POST['username'], $_POST['userpass'], $_POST['userpass2'], $_POST['email']);
    Die Methode anmelden() ist in einer weiteren PHP-Datei gekapselt.

    PHP-Code:
    function anmelden($name$pass$pass2$email) {
        
    $sql "SELECT UserId FROM users 
            WHERE UserName='" 
    $name "' LIMIT 1";
        
    $result mysql_query($sql) or die(mysql_error());
        if (
    mysql_num_rows($result) == 1) {
            echo 
    'Username bereits vorhanden, bitte w&auml;hlen Sie einen anderen Usernamen.';
        } else
            if (
    $name == "" OR $pass == "" OR $pass2 == "" OR $email == "") {
                echo 
    "Sie haben mindestens ein Feld nicht ausgefüllt!";
            } else
                if (
    $pass != $pass2) {
                    echo 
    "Ihr Passwort ist ungleich Ihrer Wiederholung!";
                } else {
                    
    $insert $sql "INSERT INTO users (UserName, UserPass, UserMail) VALUES ('" $name "', MD5('" $pass "'), '" $email "')";
                    
    mysql_query($insert);
                    echo 
    "Erfolgreich angemeldet! Sie können sich nun einloggen:<br>";
                }

    Die Parameter $name, $pass, $pass2, $email wurden alle richtig übergeben (geprüft durch echo).

    Trotzdem erhalte ich folgende Fehlermeldung, wenn ich die Seite login-verw.php?anmelden=yes":

    Notice: Undefined index: username in C:\Xampp\htdocs\workspace\WebseiteWD\WebContent\php\login-verw.php on line 87

    Notice: Undefined index: userpass in C:\Xampp\htdocs\workspace\WebseiteWD\WebContent\php\login-verw.php on line 87

    Notice: Undefined index: userpass2 in C:\Xampp\htdocs\workspace\WebseiteWD\WebContent\php\login-verw.php on line 87

    Notice: Undefined index: email in C:\Xampp\htdocs\workspace\WebseiteWD\WebContent\php\login-verw.php on line 87

    In der Datenbank wurde auch kein neuer User hinzugefügt.
    Zuletzt geändert von DorfbewohnerBD; 29.03.2007, 14:09.

  • #2
    was ist zeile 87?

    Kommentar


    • #3
      $userid=anmelden($_POST['username'], $_POST['userpass'], $_POST['userpass2'], $_POST['email']);

      Kommentar


      • #4
        und ich wette, diese zeile wird ausgeführt, auch wenn kein submit-button betätigt wurde. richtig?

        Kommentar


        • #5
          richtig, habe das nun mal geändert:

          PHP-Code:

          //function anmelden aufrufen
          if ($_POST['anmelden']) { 
              
          $userid anmelden($_POST['username'], $_POST['userpass'], $_POST['userpass2'], $_POST['email']); } 

          Jetzt erhalte ich die Fehlermeldung:

          Notice: Undefined index: anmelden in C:\Xampp\htdocs\workspace\WebseiteWD\WebContent\php\login-verw.php

          Kommentar


          • #6
            fast richtig.

            isset()


            p.s. und bevor du über das nächste problem stolperst: achte darauf, was passiert, wenn man in dem formular in einem text-input-feld etwas eingibt und dann enter drückt. wird die anmelde-routine gestartet?

            Kommentar


            • #7
              ok, jetzt frage ich mich allerdings immer noch wieso er es nicht in die DB schreibt.

              Kommentar


              • #8
                lass dir $_POST mittels print_r() ausgeben.

                Kommentar


                • #9
                  Array ( [username] => test [userpass] => test [userpass2] => test [email] => test@test.de [anmelden] => anmelden )

                  Kommentar


                  • #10
                    ich hab´s. Die Emailadresse hatte ich schon in der DB gespeichert, das hat er abgefangen.

                    Er startet übrigens bei ENTER die Anmelde-Routine.

                    Kommentar


                    • #11
                      es geht nicht nur um enter, sondern darum, dass dein cursor in dem augenblick in einem text-feld sein muss.

                      Kommentar


                      • #12
                        @DorfbewohnerBD: Das ist übrigens dasselbe Phänomen wie bei Deinem Xoops-Problem.

                        Kommentar


                        • #13
                          was kann ich denn eurer Meinung da genau verbessern?

                          Kommentar


                          • #14
                            wann gilt deiner meinung nach als faktor "form abgesendet"?

                            Kommentar


                            • #15
                              wenn ich auf anmelden klicke

                              Kommentar

                              Lädt...
                              X