Написал код регистрации. Но я не уверен, что он правильный, хотя он и работает. Что мне стоит учесть при последующем использовании этого кода?
<?php
$name = $_POST['name'];
$surname = $_POST['surname'];
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
$res = mysqli_query($link, "SELECT username FROM user WHERE username = '$username'");
$res1 = mysqli_query($link, "SELECT email FROM user WHERE email = '$email'");
$count = mysqli_num_rows($res);
$count1 = mysqli_num_rows($res1);
if( $count > 0) {
$badlog = "К сожалению этот логин уже используется, попробуйте другой.";
require '/templates/reg.php';
} elseif ($count1 > 0) {
$badmail = 'К сожалению этот E-mail уже используется, попробуйте другой.';
require '/templates/reg.php';
} else {
mysqli_query($link, "INSERT INTO `user`(`id`, `surname`, `name`, `email`, `username`, `password`)
VALUES ('','$surname','$name', '$email','$username',md5('$password'))");
echo "Регистрация прошла успешно, теперь вы можете авторизоваться";
}
?>
Самая главная ошибка в вашем коде, это то, что вы совершенно не позаботились о безопасности. При работе с пользовательским вводом и базой данных, первая мысль которая должна прийти вам в голову - это защита от SQL и XSS атак.
Что касается защиты от SQL тут всё просто: любые запросы к БД где существует пользовательский ввод мы осуществляем ТОЛЬКО через подготовленные выражения. Поэтому, обязательно ознакомьтесь с PDO. Вот еще отличное описание работы с PDO.
Что касается XSS атак - из вашего фрагмента кода непонятно, как будут использоваться далее отправленные методом POST данные. Но я бы, как минимум позаботился о том, чтобы ограничить в этих данных использование html тегов, функциями htmlspecialchars или strip_tags.
Ну и валидность email'a не мешало бы проверить с помощью filter_var
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
мне надо сделать функцию чтоб перенести с одного места на другое но появляется ошибкаE0304
Структуры в моем коде вложены друг в друга, те
Как написать явные специализации для разных типов в другом cpp файлеНа мой взгляд все писать в хедере не очень удобно и понятно