PHP условия для регистрационной формы
Это часть кода условий для заполнения формы.
У меня (у чайника) 2 вопроса:
1) Данный код позволяет для заполнения логина ввести пробел, а я хочу запретить пробели в логине, как это реализовать?
2) Если логин написали правильный, но потом ошибка в пароле, у меня выводит ошибку, но при этом логин приходиться снова написать... можно же как-то сохранить правильно заполненный логин в таком случае?
// login
else if (iconv_strlen($login) < 1){
$_SESSION['error']['login'] = "Please, write login!";
} else if (!preg_match('/^[a-zA-Z0-9\s]+$/', $login)) {
$_SESSION['error']['login'] = 'Name can only contain letters and numbers';
}
// password
else if (iconv_strlen($password) < 1){
$_SESSION['error']['password'] = "Please, write password!";
} else if (iconv_strlen($password) != iconv_strlen($password_confirm)){
$_SESSION['error']['password_confirm'] = "Those passwords didn't match!";
} else {
$password = md5($password);
$connect->query("INSERT INTO `users` (`full_name`, `login`, `email`, `password`, `avatar`) VALUES ('$full_name', '$login', '$email', '$password', '$avatar')");
}
Ответы (1 шт):
Чтобы запретить ввод пробелов через регулярное выражение - Вам необходимо удалить \s из него.
Чтобы задать количество символов в строке, Вы можете использовать {От скольки, до скольки}.
Пример (Ограничение по количеству символов в 10):
else if (iconv_strlen($login) < 1){
$_SESSION['error']['login'] = "Please, write login!";
} else if (!preg_match('/^[a-zA-Z0-9]{0,10}+$/', $login)) {
$_SESSION['error']['login'] = 'Name can only contain letters and numbers';
}
// password
else if (iconv_strlen($password) < 1){
$_SESSION['error']['password'] = "Please, write password!";
} else if (iconv_strlen($password) != iconv_strlen($password_confirm)){
$_SESSION['error']['password_confirm'] = "Those passwords didn't match!";
} else {
$password = md5($password);
$connect->query("INSERT INTO `users` (`full_name`, `login`, `email`, `password`, `avatar`) VALUES ('$full_name', '$login', '$email', '$password', '$avatar')");
}
Чтобы сохранить логин введённым, Вы можете либо передать значение в файл php с формой, и выводить его примерно так:
<input <?php if($login){ echo 'value: "'.$login.'"'?>>
В данном случае, мы проверяем наличие значения в переменной $login, и если оно присутствует, то добавляем его в value поля input.
Или же после передачи данных в основной файл php можно проставлять значение через js.
Или же использовать localstorage или cookie для добавления значения в поле ввода через javascript или php.