Я проверил и попытался изменить свой код, но, тем не менее, та же ошибка, и я пытался решить эту проблему в течение примерно 2 дней, каждый день около 2-3 часов на размышления и изменения.
Я совершенно новичок в этом и не могу найти строку, где ошибка.
Я рассмотрел эту проблему здесь, но до сих пор не могу найти ответ. попытался добавить » еще ничего, и моя таблица mysql тоже существует, я в этом уверен.
нужна помощь.
if(isset($_POST["register"])){
$username = protect($_POST['username']);
$password = protect($_POST['password']);
$email = protect($_POST['email']);
if(strlen($username) > 20){
echo "Username must be less than 20 characters!";
}elseif(strlen($email) > 100){
echo "E-mail must be less than 100 characters!";
}elseif(strlen($username) < 4){
echo "Username must be more than 4 characters!";
}elseif(strlen($password) < 4){
echo "Password must be more than 4 characters!";
}else{
$register1 = @mysql_query("SELECT id FROM user WHERE username = '$username' ") or die(@mysql_error());
$register2 = @mysql_query("SELECT id FROM user WHERE email = '$email' ") or die(@mysql_error());
if(@mysql_num_rows($register1) > 0){
echo "That username is already in use!";
}elseif(mysql_num_rows($register2) > 0){
echo "That e-mail address is already in use!";
}else{
$ins1 = @mysql_query("INSERT INTO stats (gold, attack, defense, food) VALUES (100,10,10,100)") or die(mysql_error());
$ins2 = @mysql_query("INSERT INTO unit (worker, farmer, warrior, defender, archer, longbowmen, phalanxmen, knight, cavalary) VALUES (5, 5, 0, 0, 0, 0, 0, 0, 0)") or die(mysql_error());
$ins3 = @mysql_query("INSERT INTO user (username, password, email) VALUES('$_POST[$username]', ".md5('$_POST[$password]')." ,'$_POST[$email]')") or die(mysql_error());
$ins4 = @mysql_query("INSERT INTO weapon(sword, shield, bow, longbow, towershield, longsword, pike, horse) VALUES (0, 0, 0, 0, 0, 0, 0, 0)") or die(mysql_error());
$ins5 = @mysql_query("INSERT INTO ranking (attack, defense, overall) VALUES (0,0,0)");
echo("Congratulations, You have registered!");
}
}
}
Используйте », чтобы окружить значение вашего пароля, в противном случае mysql интерпретирует текст как имя столбца вместо значения:
$ins3 = @mysql_query("INSERT INTO user (username, password, email) VALUES('$_POST[$username]', '".md5('$_POST[$password]')."' ,'$_POST[$email]')") or die(mysql_error());
замещать ".md5('$_POST[$password]')."
с '".md5('$_POST[$password]')."'
(добавлены цитаты)