Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: anmeldeformular funktioniert nicht (PHP/MySQL)

  1. #1
    HTML Newbie
    Registriert seit
    12.06.2007
    Beiträge
    8
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard anmeldeformular funktioniert nicht (PHP/MySQL)

    Ich hab ein Anmeldeformular geschrieben, indem der User seine Daten eintragen kann und die Daten anschliessend in der Tabelle "users" in einer Datenbank gespeichert werden. Das Problem: Es funktioniert irgendwie net. Die Verbindung mit der Datenbank kann ich aufbauen, aber dann kann ich's irgendwie nich eintragen...

    Der Code (die Datei heisst anmeldung.php)
    Code:
    <html>
    
    <head>
    <?php
       if &#40;isset&#40;$_POST&#91;"gesendet"&#93;&#41;&#41;
       &#123;
    mysql_connect&#40;localhost, frankenstein007, *passwort*&#41;;
    mysql_select_db&#40;"frankenstein007"&#41;;
    // Verbindung zur Datenbank herstellen
    
    
    $sqlab = "insert users";
          $sqlab .= "&#40;vorname, Nachname, username,";
          $sqlab .= " userpass, usermail&#41; values ";
          $sqlab .= "&#40;'" . $_POST&#91;"vor"&#93; . "', ";
          $sqlab .= "'" . $_POST&#91;"nach"&#93; . "', ";
          $sqlab .= $_POST&#91;"nick"&#93; . ", ";
          $sqlab .= $_POST&#91;"pass"&#93; . ", ";
          $sqlab .= "'" . $_POST&#91;"mail"&#93; . "'&#41;";
    
          mysql_query&#40;$sqlab&#41;;
    
          $num = mysql_affected_rows&#40;&#41;;
          if &#40;$num>0&#41;
          &#123;
             echo "<font color='#00aa00'>";
             echo "Es wurde 1 Datensatz hinzugefügt
    
    ";
             echo "</font>";
          &#125;
          else
          &#123;
             echo "<font color='#ff0000'>";
             echo "Es ist ein Fehler aufgetreten, ";
             echo "es wurde kein Datensatz hinzugefügt
    
    ";
             echo "</font>";
          &#125;
        &#125;
    ?>
    
    </head>
    
    <body>
    Geben Sie einen vollständigen Datensatz ein
    
    und senden Sie das Formular ab&#58;
    <form action = "anmeldung.php" method = "post">
        <input name="vor"> Vorname
    
    
        <input name="nach"> Nachname
    
    
        <input name="nick"> gewünschter Nickname
    
    
        <input type="password" name="pass"> Passwort
    
    
        <input name="mail"> E-Mail 
    
    
        <input type="submit" name="gesendet">
        <input type="reset">
    </form>
    
    </body>
    </html>
    Die Tabelle in die der Datensatz eingefügt werden sollte (php myadmin):


    Die SQL-Daten (natürlich ohne Passwort)


    Falls jemand noch weitere Daten braucht, einfach melden. Mir ist auch recht, wenn jemand einen total anderen Code hat der funktioniert. Ich sitz da schon 3 tage an diesem Code und finde den Fehler nich, gegoogelt hab ich auch schon... Hoffe jemand findet den Fehler..
    Ach ja, als Fehlermeldung kommt übrigens die von mir angegebene ("Es ist ein Fehler aufgetreten, es wurde kein Datensatz hinzugefügt") Die Verbindung zur DB konnte aber aufgebaut werden, ich hab das ausgeben lassen mit echo, das hab ich hier jetzt aber weggelassen.

    mfg T.B.S.[/code]
    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
    König(in)
    Registriert seit
    06.06.2007
    Ort
    Bi
    Beiträge
    1.015
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hi deine SQL-Query ist nicht ganz korrekt

    $sqlab = "INSERT INTO users";
    $sqlab .= "(Vorname, Nachname, Username,";
    $sqlab .= " Userpass, Usermail) values ";
    $sqlab .= "('" . $_POST["vor"] . "', ";
    $sqlab .= "'" . $_POST["nach"] . "', ";
    $sqlab .= $_POST["nick"] . ", ";
    $sqlab .= $_POST["pass"] . ", ";
    $sqlab .= "'" . $_POST["mail"] . "')";

    das müsste gehen
    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.

    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  3. #3
    HTML Newbie
    Themenstarter

    Registriert seit
    12.06.2007
    Beiträge
    8
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    hmm.. geht irgendwie noch immer net...
    trotzdem danke schonmal für die schnelle antwort..
    Hat jemand noch ne andere Idee?

  4. #4
    Interessierte/r
    Registriert seit
    19.05.2007
    Beiträge
    105
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Versuchs mal so:

    Code:
    $sqlab = "INSERT INTO users";
    $sqlab .= "&#40;Vorname, Nachname, Username,";
    $sqlab .= " Userpass, Usermail &#41; values ";
    $sqlab .= "&#40;'" . $_POST&#91;"vor"&#93; . "', ";
    $sqlab .= "'" . $_POST&#91;"nach"&#93; . "', ";
    $sqlab .= $_POST&#91;"nick"&#93; . ", ";
    $sqlab .= $_POST&#91;"pass"&#93; . ", ";
    $sqlab .= "'" . $_POST&#91;"mail"&#93; . "'&#41;";

    Kleiner Tipp: benutze nur kleingeschriebene Wörter für die datenbank. Dann gibts keine Probleme wenn du mal kleine Benutzt und dann wieder große...

  5. #5
    König(in)
    Registriert seit
    06.06.2007
    Ort
    Bi
    Beiträge
    1.015
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    arg natpürlich konnte das nicht gehen :X

    Code:
    $sqlab = "INSERT INTO users";
    $sqlab .= "&#40;Vorname, Nachname, UserName,";
    $sqlab .= " UserPass, UserMail&#41; values ";
    $sqlab .= "&#40;'" . $_POST&#91;"vor"&#93; . "', ";
    $sqlab .= "'" . $_POST&#91;"nach"&#93; . "', ";
    $sqlab .= $_POST&#91;"nick"&#93; . ", ";
    $sqlab .= $_POST&#91;"pass"&#93; . ", ";
    $sqlab .= "'" . $_POST&#91;"mail"&#93; . "'&#41;";
    Versuch dem Tip mit dem Kleinschreiben , auch bei mir lag es daran das ich bei "UserName" einfach "Username" geschrieben hatte... aber nun müsste es gehen
    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.

    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  6. #6
    HTML Newbie
    Registriert seit
    12.06.2007
    Beiträge
    6
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Ich hätte es anders gecodet:

    <html>

    <head>
    <?php
    if (isset($_POST["gesendet"]))
    {
    mysql_connect(localhost, frankenstein007, *passwort*);
    mysql_select_db("frankenstein007");
    // Verbindung zur Datenbank herstellen

    $liste="INSERT INTO $tabellenname (vorname, Nachname, username,userpass, usermail)
    VALUES ('$_POST["vor"]','$_POST["nach"]','$_POST["nick"]','$_POST["passwort"]','$_POST["mail"]')";
    $ergebnis=@mysql_query($liste);





    if ($ergebnis)
    {
    echo "<font color='#00aa00'>";
    echo "Es wurde 1 Datensatz hinzugefügt

    ";
    echo "</font>";
    }
    else
    {
    echo "<font color='#ff0000'>";
    echo "Es ist ein Fehler aufgetreten, ";
    echo "es wurde kein Datensatz hinzugefügt

    ";
    echo "</font>";
    }
    }
    ?>

    </head>

    <body>
    Geben Sie einen vollständigen Datensatz ein

    und senden Sie das Formular ab:
    <form action = "anmeldung.php" method = "post">
    <input name="vor"> Vorname


    <input name="nach"> Nachname


    <input name="nick"> gewünschter Nickname


    <input type="password" name="pass"> Passwort


    <input name="mail"> E-Mail


    <input type="submit" name="gesendet">
    <input type="reset">
    </form>

    </body>
    </html>
    müsste klappen, probiers mal

  7. #7
    HTML Newbie
    Themenstarter

    Registriert seit
    12.06.2007
    Beiträge
    8
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    langsam wird mir das ganze fast schon peinlich... Ihr bemüht euch so, aber ich muss euch leider enttäuschen... Keiner der drei Vorschläge funktioniert..

    @ Riester-Rente: Bei deinem Code hab ich noch das Passwort und den Tabellennamen eingefügt (für $tabellenname in Zeile 11)
    Ausserdem musst ich noch in Zeile 12 den Wert $_POST["passwort"] in $_POST["pass"] umwandeln (siehe Name von Textfeld)... Das war richtig soweit oder?
    Nun hatte ich also folgenden Code:
    Code:
    <html> 
    
    <head> 
    <?php 
    if &#40;isset&#40;$_POST&#91;"gesendet"&#93;&#41;&#41; 
    &#123; 
    mysql_connect&#40;localhost, frankenstein007, *passwort*&#41;; 
    mysql_select_db&#40;"frankenstein007"&#41;; 
    // Verbindung zur Datenbank herstellen 
    
    $liste="INSERT INTO users &#40;vorname, Nachname, username,userpass, usermail&#41; 
    VALUES &#40;'$_POST&#91;"vor"&#93;','$_POST&#91;"nach"&#93;','$_POST&#91;"nick"&#93;','$_POST&#91;"pass"&#93;','$_POST&#91;"email"&#93;'&#41;"; 
    $ergebnis=@mysql_query&#40;$liste&#41;; 
    
    
    
    
    
    if &#40;$ergebnis&#41; 
    &#123; 
    echo "<font color='#00aa00'>"; 
    echo "Es wurde 1 Datensatz hinzugefügt
    
    "; 
    echo "</font>"; 
    &#125; 
    else 
    &#123; 
    echo "<font color='#ff0000'>"; 
    echo "Es ist ein Fehler aufgetreten, "; 
    echo "es wurde kein Datensatz hinzugefügt
    
    "; 
    echo "</font>"; 
    &#125; 
    &#125; 
    ?> 
    
    </head> 
    
    <body> 
    Geben Sie einen vollständigen Datensatz ein
     
    und senden Sie das Formular ab&#58; 
    <form action = "anmeldung.php" method = "post"> 
    <input name="vor"> Vorname
    
     
    <input name="nach"> Nachname
    
     
    <input name="nick"> gewünschter Nickname
    
     
    <input type="password" name="pass"> Passwort
    
     
    <input name="email"> E-Mail 
    
     
    <input type="submit" name="gesendet"> 
    <input type="reset"> 
    </form> 
    
    </body> 
    </html>
    folgende Fehlermeldung:
    Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in *Verzeichnis* on line 12.
    Falls jemand den Fehler findet bitte melden.

    @ K.Y.L.T. und Koma: Eure Scripts hab ich auch ausprobiert, ich hab in der MySQL-Tabelle nun alles klein geschrieben und auch die Werte entsprechend geändert. Der Code sieht jetzt so aus:
    Code:
    <html>
    
    <head>
    <?php
       if &#40;isset&#40;$_POST&#91;"gesendet"&#93;&#41;&#41;
       &#123;
    $link = mysql_connect&#40;localhost, frankenstein007, *passwort*&#41;;
    $db = mysql_select_db&#40;"frankenstein007"&#41;;
    // Verbindung zur Datenbank herstellen
    
    if &#40;$link&#41;
    echo "Verbindung hergestellt.
     ";
    else 
    echo "Verbindung konnte nicht hergestellt werden. 
    ";
    
    if &#40;$db&#41;
    echo "Mit Datenbank verbunden. 
    ";
    else
    echo "Datenbank konnte nicht gefunden werden. 
    ";
    
    $sqlab = "INSERT INTO users"; 
    $sqlab .= "&#40;vorname, nachname, username,"; 
    $sqlab .= " userpass, usermail &#41; values "; 
    $sqlab .= "&#40;'" . $_POST&#91;"vor"&#93; . "', "; 
    $sqlab .= "'" . $_POST&#91;"nach"&#93; . "', "; 
    $sqlab .= $_POST&#91;"nick"&#93; . ", "; 
    $sqlab .= $_POST&#91;"pass"&#93; . ", "; 
    $sqlab .= "'" . $_POST&#91;"mail"&#93; . "'&#41;";  
    
    
          mysql_query&#40;$sqlab&#41;;
    
          $num = mysql_affected_rows&#40;&#41;;
          if &#40;$num>0&#41;
          &#123;
             echo "<font color='#00aa00'>";
             echo "Es wurde 1 Datensatz hinzugefügt
    
    ";
             echo "</font>";
          &#125;
          else
          &#123;
             echo "<font color='#ff0000'>";
             echo "Es ist ein Fehler aufgetreten, ";
             echo "es wurde kein Datensatz hinzugefügt
    
    ";
             echo "</font>";
          &#125;
        &#125;
    ?>
    
    </head>
    
    <body>
    Geben Sie Ihre Daten ein
    
    und senden Sie das Formular ab&#58;
    <form action = "anmeldung.php" method = "post">
        <input name="vor"> Vorname
    
    
        <input name="nach"> Nachname
    
    
        <input name="nick"> gewünschter Nickname
    
    
        <input type="password" name="pass"> Passwort
    
    
        <input name="mail"> E-Mail 
    
    
        <input type="submit" name="gesendet">
        <input type="reset">
    </form>
    
    </body>
    </html>
    Nachdem ich etwas in die Felder eingetippt habe und auf abschicken geklickt habe, folgende Ausgabe:
    "Verbindung hergestellt.
    Mit Datenbank verbunden.
    Es ist ein Fehler aufgetreten, es wurde kein Datensatz hinzugefügt"

    Falls das hier anscheinend nicht klappen würde, weiss einer wo ich sonst ein Anmeldescript herbekomme? Oder findet noch jemand nen Fehler?
    Nochmal ein herzliches Dankeschön an alle, die sich hier bemühen.

    mfg T.B.S.

    EDIT// Vielleicht nützt es was, wenn ihr mal schnell selber die Datenbank "users" anlegt. (Die Daten habt ihr ja). Mit PHP Myadmin ist das eine sache von 5 Minuten. Ich kann das nich so gut beurteilen, aber vielleicht ist es einfacher den Fehler zu finden wenn man den Code und die DB selber hat und daran herumbasteln kann.

  8. #8
    HTML Newbie
    Themenstarter

    Registriert seit
    12.06.2007
    Beiträge
    8
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    hmm.. Wenn den Fehler anscheinend niemand findet, hat jemand ein anmeldescript, das er mir zur Verfügung stellen könnte. (Anpassen an die DB würd ich selbstverständlich selber).. Oder weiss jemand wo ich eins herbekomme?

    Danke im voraus.

    mfg T.B.S.

  9. #9
    Kaiser(in)
    Registriert seit
    09.12.2005
    Alter
    29
    Beiträge
    2.496
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    der mysql error wäre ganz praktisch

    häng mal hinter die abfrage or die(mysql_error());
    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  10. #10
    HTML Newbie
    Themenstarter

    Registriert seit
    12.06.2007
    Beiträge
    8
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Ich kann nich viel daraus schliessen, aber könnt was bringen. Folgende ausgabe:

    Verbindung hergestellt.
    Mit Datenbank verbunden.
    Unknown column '*Eingabe_vom_Feld_nick*' in 'field list'

    Es hat einfach ausgegeben, den Nick den ich eingetippt habe in field list.... bin noch zu unerfahren um den Fehler zu finden, findet ihn jemand. Klar ist wohl dass es was mit dem Nick ist...

    Auf deutsch soviel wie "Unbekannte Spalte *Eingabe* im Feld list(e)....
    Ist das ungefähr richtig übersetzt?

Ähnliche Themen

  1. Anmeldeformular
    Von Coolzero im Forum HTML & CSS Forum
    Antworten: 5
    Letzter Beitrag: 19.12.2007, 00:23
  2. Mysql Abfrage funktioniert ned Richtig
    Von Neonlight87 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 6
    Letzter Beitrag: 11.02.2007, 15:02
  3. Frage zum Anmeldeformular?
    Von Bianca im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 27.12.2006, 13:14
  4. anmeldeformular
    Von SonicChriz im Forum HTML & CSS Forum
    Antworten: 1
    Letzter Beitrag: 26.03.2005, 21:01
  5. mySQL connect funktioniert nicht
    Von scout1979 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 11.09.2004, 17:17

Stichworte

Berechtigungen

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