Entwickler-Ecke

Programmiersprachen (Server) - Daten werden nicht in DB gespeichert


Csharp-programmierer - Fr 11.11.16 17:45
Titel: Daten werden nicht in DB gespeichert
Hallo Forum,
über ein HTML Formular sollen verschiedne Daten an eine Datenbank übergeben werden.


PHP-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
if($conn)
    {
      $username = mysqli_real_escape_string($conn$_POST['username']);
      $geburtsdatum = mysqli_real_escape_string($conn$_POST['geburtsdatum']);
      $vorname = mysqli_real_escape_string($conn$_POST['vorname']);
      $nachname = mysqli_real_escape_string($conn$_POST['lastname']);
      $chem1 = mysqli_real_escape_string($conn$_POST['email_one']);
      $chem2 = mysqli_real_escape_string($conn$_POST['email_two']);  
      $safequestion = mysqli_real_escape_string($conn$_POST['safequestion']);
      $question_answer = mysqli_real_escape_string($conn$_POST['question_answer']);
      $chpass1 = mysqli_real_escape_string($conn$_POST['password1']);
      $chpass2 = mysqli_real_escape_string($conn$_POST['password2']);
      $gender = mysqli_real_escape_string($conn$_POST['gender']);
      $language = mysqli_real_escape_string($conn$_POST['language']);
      $kurzbeschreibung = mysqli_real_escape_string($conn$_POST["shortDescription"]);
      $interessen = mysqli_real_escape_string($conn$_POST["interessen"]);
      $website = mysqli_real_escape_string($conn$_POST["website"]);
      $wohnort = mysqli_real_escape_string($conn$_POST["wohnort"]);
      

        if($chpass1 == $chpass2
        {  
          echo $chpass1;
          if(strlen($chpass1) >= 6)
          {
            $checked_password = true;
          }
          else
          {
            echo "Das Passwort muss mindestens 6 Zeichen enthalten.";
            $checked_password = false;
          }
        } 
        else 
        {
          echo "<div class='alert alert-danger'>Die von Ihnen eingegebenen Passwörter stimmen nicht überein.</div>";
          $checked_password = false;
        }
        
        echo $_POST['agb'];
        if(isset($_POST['agb']))
        {
          $checked_agb = true;
        }
        else 
        {
          echo "<div class='alert alert-danger'>Sie müssen die AGB lesen.</div>";
          $checked_agb = false;
        }

        
        if($chem1 == $chem2)
        {
          $checked_email = true;
        } 
        else 
        {
          echo "<div class='alert alert-danger'>Die von Ihnen eingegebenen E-Mails stimmen nicht überein.</div>";
          $checked_email = false;
        }
        
        if($checked_agb && $checked_email && $checked_password)
        {
          $search = mysqli_query($conn,"SELECT `username`,`email` FROM `MainlysoftBenutzer` WHERE `username`='$username' AND `email`='$chem1'");
          $row = mysqli_fetch_row($search);

          if($row[1]==$chem1 && $row[0] == $username)
          {
            echo "Username and Email exists ";
          }
          else
          {  
            $regDatum = date(d);
            $regDatum .= ".";
            $regDatum .= date(m);
            $regDatum .= ".";
            $regDatum .= date(Y);
  
            $passwordHash = password_hash($chpass1, PASSWORD_DEFAULT);
            $administratorAccess = true;
            $accountBest = false;
            $EmailBest = false;
            
            $mysqli = mysqli_query($conn"INSERT INTO `MainlysoftBenutzer`(`passwort`, `name`, `vorname`, `username`, `wohnort`, `email`, `geburtsdatum`, `sicherheitsfrage`, `kurzbeschreibung`, `registrierungsdatum`, `interessen`, `website`, `antwort`, `gender`, `language`, `embest`, `adminacess`, `accbest`) 
                                VALUES ('
$passwordHash','$nachname','$vorname','$username','$wohnort','$chem1','$geburtsdatum','$safequestion','$kurzbeschreibung','$regDatum','$interessen','$website','$question_answer','$gender','$language','$EmailBest','$administratorAccess','$accountBest')");
  
            if ($mysqli)
            {

                header("Location: http://www.mainlysoft.com/reg_succes.html");
            }
            else
            {
              echo "Ein Fehler ist aufgetreten. Wahrscheinlich ist der Benutzername oder die Email schon vergeben.";
            }
          }
        }
        else
        {
          echo "Fehler";
        }
    
    }


Kann es eventuell an den Booleans liegen?
Als Fehler kommt immer diese Meldung: Ein Fehler ist aufgetreten. Wahrscheinlich ist der Benutzername oder die Email schon vergeben.

1


Csharp-programmierer - Sa 12.11.16 14:26

Ich habe mir den Fehler jetzt mal ausgeben lassen. Da kam folgendes raus:
Duplicate entry 'Was war Ihr erstes Haustier?' for key 'username'

Warum verstehe ich nicht. Es soll einmal der Username gespeichert werden und dann eine Sicherheitsfrage...


Christian S. - Sa 12.11.16 15:23

Die Meldung passt irgendwie nicht mit Deinem Posting zusammen. Auf dem Screenshot ist username kein Schlüssel. Und im Code sehe ich auch gerade nicht, dass Du versuchst, die Sicherheitsabfrage in die Spalte "username" zu schreiben :lupe: