[Erledigt] Register-Skript geht nicht?

Wir sammeln alle Infos der Bonusepisode von Pokémon Karmesin und Purpur für euch!

Zu der Infoseite von „Die Mo-Mo-Manie“
  • Hallo ich habe ein Problem mit einer Registrierungs-Abfrage.

    PHP
    $admin=false;	$pass=md5($_POST["pass"]);	$uname=$_POST["username"];	include("inc/mysql.php"); 	echo(MYSQL_QUERY("INSERT INTO users(isadmin, username, money, pass) VALUES (b$admin, $uname, 0, $pass)"));	MYSQL_CLOSE();


    inc/mysql.php: Öffnet Mysql-Verbindung.
    Habe ich etwas Falsch gemacht?
    Struktur:

  • Optimalerweise verwendest du nicht die mysql-Extension, sondern mysqli oder PDO. Diese sind zuverlässiger und bieten die bessere Möglichkeiten deine Abfragen abzusichern. Das sieht dann etwa so aus:


    PDO:

    PHP
    $dbh = new PDO('mysql:dbname=testdb;host=127.0.0.1', $user, $password);
    $stmt = $dbh->prepare('INSERT INTO users(isadmin, username, money, pass) VALUES (0, :username, 0, :pass)');
    $stmt->execute(array(':username' => $uname, ':pass' => $pass));


    Ansonsten: Für isadmin und moey könnte du Default-Werte setzen. md5 sollte man nicht für Passwörter verwenden, nimm bcrypt: http://www.phpgangsta.de/schoener-hashen-mit-bcrypt

  • echo(MYSQL_QUERY("INSERT INTO users(isadmin, username, money, pass) VALUES (b$admin, $uname, 0, $pass)"));


    b$admin? Typo oder Fehler?


    Ansonsten versuch es mal so:
    echo(MYSQL_QUERY("INSERT INTO `users` (isadmin, username, money, pass) VALUES ($admin, $uname, 0, $pass)"));
    oder
    echo(MYSQL_QUERY("INSERT INTO `users` (id, isadmin, username, money, pass) VALUES ('', $admin, $uname, 0, $pass)"));

  • Achso, da sollte ich besser hinschauen...
    Meistens ist bei den unterschiedlichen Möglichkeiten die Bezeichung der einzelnen Parameter unterschiedlich bzw. auch die Syntax. Ich vermute, dass er es daran gesehen hat.