На сайте есть пункт редактирования своих данных (поменять имя, аватарку и город). Проблема в том что условия которые я ставлю не выполняются в полной мере как я хочу.
Проблема состоит в том что пользователь может ввести имя которое уже есть в бд и ошибку код не пишет почему то.
Я могу оставить свое старое имя без проблем и поменять только город или аватарку, но когда я ввожу имя которое у меня уже зарегистрировано код успешно выполняется и получается у меня на сайте 2 пользователя с одинаковыми именами, хотя я ставил условие:
$result3 = mysqli_query($bd, "SELECT id FROM users WHERE name='$name'");
$myrow = mysqli_fetch_array($result3);
if (!empty($myrow['id'])) {
exit ("Извините, введённое вами имя уже зарегистрировано. Введите другое имя. <a href=../redact.php>Назад</a>");
}
Код простой смотрите комменты поймете что я хочу. Вот весь код:
$name = trim($_POST['name']);
$city = $_POST['city'];
$avatar = trim($_POST['avatar']);
$name= stripslashes($name);
$name= htmlspecialchars($name);
$avatar= stripslashes($avatar);
$avatar= htmlspecialchars($avatar); //обработали поля заполненные пользователем
include ("bd.php");
$id=$_SESSION['id'];
$result = mysqli_query($bd, "SELECT id FROM users WHERE id='$id'");
$row = mysqli_fetch_array($result);
$ty=$row['name']; //нахожу имя пользователя по его id в сессии который совершает редактирование
if($ty=$name) //если его имя схоже с новым именем которое он ввел заносим все в бд (сделано для того чтобы допустим пользователь захотел сменить только аватарку и город, а ник оставить прежним).
{
$result2 = mysqli_query($bd, "UPDATE `users` SET `name`='$name' , `avatar`='$avatar' , `city`='$city' WHERE id=$id ");
}
else //иначе проверяем нет ли похожего имени чтобы не было двойников (людей с одинаковыми никами) если нет то заносим в бд новое имя аватар и город
{
$result3 = mysqli_query($bd, "SELECT id FROM users WHERE name='$name'");
$myrow = mysqli_fetch_array($result3);
if (!empty($myrow['id'])) {
exit ("Извините, введённое вами имя уже зарегистрировано. Введите другое имя. <a href=../redact.php>Назад</a>");
}
$result2 = mysqli_query($bd, "UPDATE `users` SET `name`='$name' , `avatar`='$avatar' , `city`='$city' WHERE id=$id ");
}
if ($result2=='TRUE')
{
echo 'Вы успешно cовершили редактирование! <a href="../index.php">На Главную</a>';
}
else {
echo 'Ошибка! Вы не зарегистрированы. <a href="../index.php">На Главную</a>';
}