Я редактирую часть системы входа пользователя, и я очень запутался в одном вопросе. Я пытаюсь позволить пользователю изменить свое имя пользователя, используя свою электронную почту в качестве ссылки для поиска. По какой-то причине я не могу установить переменную $ email для правильной установки. Когда я меняю переменную $ email на адрес, который, как я знаю, находится в моей базе данных (то есть я удаляю $ email и заменяю его на существующий адрес), имя пользователя корректно меняется. Когда я возвращаю его обратно в $ email, ничего не происходит.
Странная часть: когда я отправляю электронное письмо, отображается правильный адрес электронной почты. Я не могу понять, почему он не позволяет мне сделать это, несмотря на то, что это отражено должным образом Можно ли не быть строкой, несмотря на отображаемый адрес электронной почты?
Я понимаю про инъекции sql. Сейчас я просто стараюсь сделать код как можно более простым, чтобы вначале работала функциональность.
<?
if (isset($_POST['submit'])) {
$email = $user->get_email($username);
$newuser = $_POST['newusername'];
$server = 'localhost';
$usern = 'root';
$pass = '';
$connection = mysql_connect($server, $usern, $pass) or die(mysql_error());
mysql_select_db(testdb, $connection) or die(mysql_error());
if(isset($username)) {
mysql_query("UPDATE users SET username='$newuser' WHERE email = '$email'") or die(mysql_error());
}
}
?>
Кроме того, когда я изменяю оператор запроса так, чтобы ссылочное значение было идентификатором пользователя, имя пользователя было вставлено правильно. Из этого я знаю, что $ email не устанавливается должным образом.
mysql_query("UPDATE users SET username='$newuser' WHERE userid = '$userid'") or die(mysql_error());