@Coolam
Web-developer

Как можно оптимизировать этот код?

if($resultat_login['count'] > 0 & $resultat_email['count'] == 0 & $fValName != $login){
                    $_SESSION['message'] = 'Такой логин уже существует';
                    $connect->query("UPDATE `users` SET `full_name` = '$full_name', `email` = '$email', `password` = '$password' WHERE `id`= $id");
                }
                else if($resultat_login['count'] == 0 & $resultat_email['count'] > 0 & $fValEmail != $email){
                    $_SESSION['message'] = 'Такая почта уже существует';
                    $connect->query("UPDATE `users` SET `full_name` = '$full_name', `login` = '$login', `password` = '$password' WHERE `id` = $id");
                }
                else if($resultat_login['count'] > 0 & $resultat_email['count'] > 0){
                    $_SESSION['message'] = 'Такие логин или почта уже существуют';
                    $connect->query("UPDATE `users` SET `full_name` = '$full_name', `password` = '$password' WHERE `id` = $id");
                }
                else{
                    $connect->query("UPDATE `users` SET `full_name` = '$full_name', `login` = '$login', `email` = '$email', `password` = '$password' WHERE `id` = $id"); 
                }
  • Вопрос задан
  • 165 просмотров
Пригласить эксперта
Ответы на вопрос 3
@tukreb
Здесь только выкинуть и написать с 0. Боже упаси такой код в продакшен пускать.
Но раз у вас нашёл такой кусок кода, то значит весь проект нужно выкидывать и брать нормальный фреймворк где нельзя так страшно гавнокодить.

А чисто по этому коду, вам для начала надо начать с этого https://www.php.net/manual/ru/pdo.prepared-stateme...
Ответ написан
Комментировать
dimonchik2013
@dimonchik2013
non progredi est regredi
вообще из секьюрити сейчас стараются не давать подтверждения почты существования, а иногда и логина, но дело твое

во-вторых ты как-то упустил исходный запрос, но там видимо
select VSYO from CHTOTO where login = OR email =
и на этом фоне непонятно каой resultat по частям ты считаешь если он все время будет или 1 или 0 (если юзерских концов в базе нету)

в общем, хорошо бы прояснить
Ответ написан
Комментировать
ddv88
@ddv88
Binance Futures
Самый простой вариант воспользоваться оберткой. Поможет не слишком сильно накосячить и цепочки смотреться будут аккуратно и читаемо.
Например такой https://github.com/ThingEngineer/PHP-MySQLi-Databa....
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы