Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Registrieren

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Registrieren

    Wie der Titel schon sagt möchte ich bei einem Webshop eine Seite machen zum Registrieren. Doch wenn man sich registrieren will dann trägt er das einfach nicht in die Datenbank ein. Hier ist der Code.
    PHP-Code:
    $db = new mysqli("localhost""root""""tafel-shop");
    mysqli_set_charset($db"utf8");

    if (
    mysqli_connect_errno()) {
        echo 
    "Verbindung fehlgeschlagen!";
    } else {
        
    $time date("Y-m-d");
        
    $query "INSERT INTO kunden (Benutzername, Passwort,";
        
    $query2=") VALUES ('" $_GET["name"] . "','" $_GET['passwort'] . "',";
        if(!empty(
    $_GET['vorname'])){
            
    $query.="Vorname, ";
            
    $query2.="'" $_GET['vorname'] . "', ";
        }
        if(!empty(
    $_GET['nachname'])){
            
    $query.="Nachname, ";
            
    $query2.="'".$_GET['nachname']."', ";
        }
        if(!empty(
    $_GET['mail'])){
            
    $query.="E-Mail, ";
            
    $query2.="'".$_GET['mail']."', ";
        }
        if(!empty(
    $_GET['ort'])){
            
    $query.="Wohnort, ";
            
    $query2.="'".$_GET['ort']."', ";
        }
        if(!empty(
    $_GET['plz'])){
            
    $query.="plz, ";
            
    $query2.="'".$_GET['plz']."', ";
        }
        if(!empty(
    $_GET['str'])){
            
    $query.="Strasse, ";
            
    $query2.="'".$_GET['str']."', ";
        }
        if(!empty(
    $time)){
            
    $query.="MitgliedSeit, ";
            
    $query2.="'".$time."', ";
        }
        
    $query substr($query0, -2);
        
    $query2 substr($query20, -2);
        
    $query2 .= ")";
        
    $query.=$query2;
        echo 
    $query;
        
    $db -> query($query);
        
    header("Location: checkLogin.php?Name=" $_GET['name'] . "&Passwort=" $_GET['passwort']);



  • #2
    Dann zeig uns doch mal was echo $query ausgibt und was die query()-Methode zurückgibt.

    Kommentar


    • #3
      Also das wird mal ausgegeben
      INSERT INTO kunden (Benutzername, Passwort,Vorname, Nachname, E-Mail, Wohnort, plz, Strasse, MitgliedSeit) VALUES ('Beispiel','passwort','sdflj', 'fsdlkfj', 'fdslksdgjf', 'dfdsfgkj', '4879', 'kfdjgfgdfg', '2014-05-17')

      Sieht jemand den Fehler?

      Kommentar


      • #4
        Bitte noch mal das hier ausführen nach dem Query:
        PHP-Code:
        printf("Errormessage: %s\n"$mysqli->error); 

        Kommentar


        • #5
          Da sagt er mir
          Errormessage: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-Mail, Wohnort, plz, Strasse, MitgliedSeit) VALUES ('fdkj','fkldgfj','fdlkgjsd',' at line 1

          Kommentar


          • #6
            PHP-Code:
            $query "INSERT INTO kunden (Benutzername, Passwort,"
                
            $query2=") VALUES ('" $_GET["name"] . "','" $_GET['passwort'] . "',"
            das ganze kann man zusammen fassen in:
            PHP-Code:
            $query "INSERT INTO kunden (Benutzername, Passwort) VALUES ('" $_GET["name"] . "','" $_GET['passwort'] . "'; 
            weniger Code bedeutet auch bessere Übersicht bei der Fehlersuche

            Kommentar


            • #7
              Wenn du weiterlesen würdest würdest du sehen, dass das nicht geht

              Kommentar


              • #8
                Wenn du logisch denken würdest, würdest du wissen das man via GET keine Daten wie Passwörter usw weitergibt

                Kommentar


                • #9
                  Zitat von flo81000 Beitrag anzeigen
                  Errormessage: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-Mail, Wohnort, plz, Strasse, MitgliedSeit) VALUES ('fdkj','fkldgfj','fdlkgjsd',' at line 1
                  Da haben wir es ja, "check [...] for the right syntax to use near '-Mail, [...]"
                  Beim Namen des Attributs "E-Mail", genauer beim Bindestrich, liegt das Problem.

                  Zwei Lösungsmöglichkeiten:
                  1. Bennene das Attribut "E-Mail" in "Email" um oder
                  2. umgebe es mit back ticks: `E-Mail`

                  Kommentar


                  • #10
                    Ahhh jetz gehts. Es hat aber nur die 1.Lösungsmöglichkeit funktioniert. Die 2te nicht..

                    Kommentar

                    Lädt...
                    X