Also, erstmal Hallo an alle
Ich bin gerade dabei ein Indie-game auf die Beine zu stellen, nun habe ich aber ein Problem: Ich bekomme die Registerpage einfach nicht zum funktionieren :/
Der Login im Spieleclient ansich funktioniert(ist auch die gleiche DB), aber ich möchte die Daten über ein PHP script in die DB schreiben.(eine Registrierung halt :P)
DB struktur:
Tabelle tiw_users:
UserNr, int, autoincrement, primary
UserId, text
LoginHash, text
eMail, text
BetaPass, int
UsedKey, text
Tabelle tiw_keydb:
KeyID, int, autoincrement
tiw_Key, varchar, primary
Used, varchar, default 2
Beta, varchar, default 0
Das soll das script machen:
Es bekommt per POST die strings username, passwort, passwort2, key und mail. Im nächsten schritt soll es gucken ob der username bereits in der DB ist (Table tiw_users) und das funzt auch. Dannach soll er schauen ob der Key in der DB (Table tiw_keydb) ist und schauen ob das Feld "Used" = 2 und das Feld "Beta" = 1 ist. Wenn dann ein ergebnis ungleich 0 kommt soll er die daten eintragen.
Also quasi, in der keydb "Used" = 1 und im tiw_users einen Neuen eintrag mit UsedId = username, LoginHash=md5passwort, eMail = mail, BetaPass = 1, UsedKey = key.
hier mein Script:
PHP-Code:
<title>This is War Preview Register</title>
<?php
$verbindung = mysql_connect("server", "user" , "pass")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("datenbank") or die ("Datenbank konnte nicht ausgewählt werden");
$username = $_POST["username"];
$passwort = $_POST["passwort"];
$passwort2 = $_POST["passwort2"];
$key = $_POST["key"];
$mail = $_POST["mail"];
if($passwort != $passwort2 OR $username == "" OR $passwort == "" OR $key == "" OR $mail ="")
{
echo "Eingabefehler. Bitte alle Felder korekt ausfüllen. <a href=\"register.html\">Zurück</a>";
exit;
}
$passwort = md5($passwort);
$result = mysql_query("SELECT UserNr FROM tiw_users WHERE UserId LIKE '$username'");
$menge = mysql_num_rows($result);
if($menge == false){
print mysql_error();
mysql_close($verbindung);
}
if($menge == 0)
{
$checkstate = mysql_query("SELECT KeyID FROM tiw_keydb WHERE `tiw_Key` LIKE '$key' AND `Used` = '2' AND `Beta` = '1' ORDER BY `KeyID`");
$mengecheck = mysql_num_rows($checkstate);
if($mengecheck == false){
print mysql_error();
mysql_close($verbindung);
}
if($mengecheck != 0)
{
$eintrag1 = "UPDATE `tiw_keydb` SET `Used`='1' WHERE `tiw_Key` LIKE '$key'";
$eintragen1 = mysql_query($eintrag1);
echo mysql_error();
$eintrag2 = "INSERT INTO tiw_users (UserId, LoginHash, eMail, BetaPass, UsedKey) VALUES ('$username', '$passwort', '$mail', '1', '$key')";
$eintragen2 = mysql_query($eintrag2);
echo mysql_error();
if($eintragen2 == true)
{
echo "Benutzername <b>$username</b> wurde erstellt. <a href=\"login.html\">Login</a>";
mysql_close($verbindung);
}
else
{
echo "Fehler beim Speichern des Benutzernames. <a href=\"register.html\">Zurück</a>";
echo mysql_error();
mysql_close($verbindung);
}
}
else
{
echo "Key kein Previewkey, oder ungueltig! <a href=\"register.html\">Zurück</a>";
mysql_close($verbindung);
}
}
else
{
echo "Benutzername <b>$username</b> schon vorhanden. <a href=\"register.html\">Zurück</a>";
mysql_close();
}
mysql_close($verbindung);
?>
Das script gibt aber immer (außer wenn ich einen bereits vorhandenen username übergebe) "Key kein Previewkey, oder ungueltig!" aus, also wenn der Key in der DB (Table tiw_keydb) und die Felder "Used" = 2 und "Beta" = 1 NICHT zutrifft...
Ich erbete dringenst Hilfe... bin neu in PHP^^