User werden in Datenbank nicht angelegt

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • User werden in Datenbank nicht angelegt

    Hallo,

    ich habe ein Skript gebastelt, was User an legen soll, die betonung liegt auf "soll", das geschieht leider nicht.

    Ein Formular, mit Benutzername, Passwort und Emailadresse. Es wird auf einige Dinge geprüft, z.B. ob die Emailadresse eine Emailadresse ist.
    Soweit gibt es keine Fehler.
    Aber in der db.php, die in der insert_user.php included ist, gibt es anscheinend einen Fehler, den ich nciht finden kann

    Quellcode

    1. <?php
    2. $sql[1] = "localhost"; // Hoster
    3. $sql[2] = "footballteam"; // User
    4. $sql[3] = "cossacks"; //Passwort
    5. $sql[4] = "footballteam"; //Datenbankname
    6. // MySql - Fehler
    7. $error = "Fehler - Verbindung abgebrochen.";
    8. // MySql - Verbindung
    9. mysql_connect($sql[1],$sql[2],$sql[3]) or die ("$error");
    10. $connect = mysql_select_db($sql[4]) or die ("$error");
    11. if($connect)
    12. {
    13. echo "Verbindung hergestellt!";
    14. }
    15. else
    16. {
    17. echo "Keine Verbindung";
    18. }
    19. $db_name = "database";
    20. $create_db = "CREATE DATABASE $db_name";
    21. $result1 = "mysql_query ($create_db )";
    22. $use_db = "USE $db_name";
    23. $result2 = "mysql_query ($use_db)";
    24. $create_tb = "CREATE TABLE IF NOT EXISTS users (id INT(1) AUTO_INCREMENT,
    25. username VARCHAR(60),
    26. password VARCHAR(60),
    27. email VARCHAR(60,)";
    28. mysql_query($create_tb) or die(mysql_error());
    29. ?>
    Alles anzeigen



    Ausgabe-->
    Verbindung hergestellt!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 ')' at line 4

    Welche 4.Zeile bzw. welche zeile ist gemeint?

    Würde mich über schnelle Hilfe freuen!
  • jo schon gefunden,danke aber...


    Verbindung hergestellt!Incorrect table definition; there can be only one auto column and it must be defined as a key

    jetzt bekomme ich diesen fehler mit folgendem code...

    Quellcode

    1. $db_name = "database";
    2. $create_db = "CREATE DATABASE $db_name";
    3. $result1 = "mysql_query ($create_db )";
    4. $use_db = "USE $db_name";
    5. $result2 = "mysql_query ($use_db)";
    6. $create_tb = "CREATE TABLE IF NOT EXISTS users (id INT1 AUTO_INCREMENT,
    7. username VARCHAR(60),
    8. password VARCHAR(60),
    9. email VARCHAR(60))";
    10. mysql_query($create_tb) or die(mysql_error());
    Alles anzeigen


    Wo liegt jetzt das Problem an dem Code?
  • Quellcode

    1. $db_name = "database";
    2. $create_db = "CREATE DATABASE $db_name";
    3. $result1 = "mysql_query ($create_db )";
    4. $use_db = "USE $db_name";
    5. $result2 = "mysql_query ($use_db)";
    6. $create_tb = "CREATE TABLE IF NOT EXISTS users (id INTEGER AUTO_INCREMENT,
    7. username VARCHAR(60),
    8. password VARCHAR(60),
    9. email VARCHAR(60),
    10. PRIMARY KEY (id))";
    11. mysql_query($create_tb) or die(mysql_error());
    Alles anzeigen



    So richtig?
    jetzt zeigt er kein fehler mehr an, allerdings legt er den user auch nicht an..

    ich gebe mal den link..
    footballteam.fo.funpic.de/script/datenbank/insert_user.php

    das was nach dem user anlegen kommt, war für mich nur um was zuschauen, also nicht davon ablenken lassen..
  • Hallo,

    habe da eine idee.

    die dateien, die beiden-->

    Quellcode

    1. insert_user.php
    2. <?php include 'db.php'; ?>
    3. <html>
    4. <head>
    5. </head>
    6. <body>
    7. <form method="post">
    8. <label>Benutzername</label><input id="Benutzername" type="text" name="username"><br>
    9. <label>Password</label><input id="Password" type="password" name="password"><br>
    10. <label>Mail</label><input id="Mail" type="text" name="mail" ><br>
    11. <input type="submit" value="Benutzer Anlegen"><input type="reset" value="löschen">
    12. </form>
    13. </body>
    14. </html>
    15. <?php
    16. if(isset($_POST['username'])) {
    17. $username = trim(addslashes( stripslashes($_POST['username'])));
    18. if(!preg_match('/^[a-z][\da-z\-\_]{1,18}[^\-\_]$/i', $username))
    19. die("Benutzername ung&uuml;ltig.");
    20. if(!isset($_POST['password']))
    21. die("Kein Kennwort angegeben.");
    22. $password = trim(addslashes( stripslashes($_POST['password'])));
    23. if(strlen($password) < 6)
    24. die("Kennwort zu kurz.");
    25. if(!isset($_POST['mail']))
    26. die("Keine E-Mail-Adresse angegeben.");
    27. $mail = trim(addslashes( stripslashes($_POST['mail'])));
    28. if(!preg_match('/^\w[\w.+-]*(?<![.])@(?:[A-Z\d][A-Z\d-]*\.)+(?:[A-Z]{2,4}|museum|travel)$/i', $mail))
    29. die("Ung&uuml;ltige E-Mail-Adresse angegeben.");
    30. echo $strQuery = "INSERT INTO users VALUES (NULL, '$username', '$password', '$mail')";
    31. mysql_query($strQuery);
    32. }
    33. ?>
    Alles anzeigen



    Quellcode

    1. db.php
    2. <?php //1
    3. $sql[1] = "localhost"; // Hoster //2
    4. $sql[2] = "XXXXX"; // User //3
    5. $sql[3] = "XXXXX"; //Passwort //4
    6. $sql[4] = "XXXXX"; //Datenbankname //5
    7. //6
    8. // MySql - Fehler //7
    9. $error = "Fehler - Verbindung abgebrochen."; //8
    10. //9
    11. // MySql - Verbindung //10
    12. mysql_connect($sql[1],$sql[2],$sql[3]) or die ("$error");
    13. $connect = mysql_select_db($sql[4]) or die ("$error");
    14. //15
    15. $db_name = "database";
    16. $create_db = "CREATE DATABASE $db_name";
    17. $result1 = "mysql_query ($create_db )";
    18. $use_db = "USE $db_name";
    19. $result2 = "mysql_query ($use_db)";
    20. $create_tb = "CREATE TABLE IF NOT EXISTS users (id INTEGER AUTO_INCREMENT,
    21. username VARCHAR(60),
    22. password VARCHAR(60),
    23. email VARCHAR(60),
    24. PRIMARY KEY (id))"; //25
    25. mysql_query($create_tb) or die(mysql_error());
    26. $result3 = "mysql_query ($create_tb)";
    27. if(($connect) AND ($result1) AND ($result2) AND ($result3))
    28. {
    29. echo"<img src = 'db_works.jpg>";
    30. }
    31. else
    32. {
    33. echo "<img src = 'db_doesnt_work.jpg>";
    34. }
    35. ?>
    Alles anzeigen





    Kann das sein, dass ich kurz vor dem teil

    Quellcode

    1. echo $strQuery = "INSERT INTO users VALUES (NULL, '$username', '$password', '$mail')";
    2. mysql_query($strQuery);
    3. }


    noch USE $db_name reinschrieben muss, damit er diese datenbank benutzt (siehe db.php) und dann schriebt er genau in diese tabelle 'users' die daten?


    Bitte um eine schnelle Antwort!
  • al davon abgesehen, dass ich da keine wirkliche Frage rauslesen kann:

    Quellcode

    1. $result2 = "mysql_query ($use_db)";


    Frage ich mich, was das soll. Du schreibst in $result2 den String "mysql_query ($use_db)"; Falls du irgendein Fehler mittels MySQL machst, kannst du ihn dir ja mit mysql_error ausgeben lassen. Der Code macht meiner Meinung nach halt wenig Sinn... kA, was du da jetzt genau willst...
  • Da scheint ein Verständnisfehler vorzuliegen. Du versucht die MySQL-Anfrage erst mit echo auszugeben, was jedoch wenig Sinn macht. Diese Abfrage kannst du natürlich übersichtshalber in einer Variable speichern, dann reicht es aber, wenn du diese in die mysql_query übergiebst.

    Falls du Fehler ausgeben möchtest, müsste das wie folgt ausschauen:

    Quellcode

    1. $strQuery = "INSERT INTO users VALUES (NULL, '$username', '$password', '$mail')";
    2. mysql_query($strQuery) or die(mysql_error());