Обучение/Помощь новичкам | Авторизация
Тема закрыта by
SNEG
Что указывать в name= ?
Чтобы пользователь мог войти введя имя пользователя или адрес электронной почты на выбор ,в одно поле input
<form method="post">
<input type="text" name="">
________
посл. ред. 23.08.2023 в 21:28; всего 15 раз(а); by SNEG
Чтобы пользователь мог войти введя имя пользователя или адрес электронной почты на выбор ,в одно поле input
<form method="post">
<input type="text" name="">
________
посл. ред. 23.08.2023 в 21:28; всего 15 раз(а); by SNEG
<input type="text" name="kakaya-to_fignya">
и в PHP уже проверяешь $_POST['kakaya-to_fignya']
и в PHP уже проверяешь $_POST['kakaya-to_fignya']
<input type="text" name="kakaya-to_fignya">
и в PHP уже проверяешь $_POST['kakaya-to_fignya']
php
$u = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT `id`, `userpass` FROM `users` WHERE `username` = '".$username"' OR `email` = '".$email."'"));А как name="" заделать под варик имя пользователя или адрес электронной почты ?
________
посл. ред. 23.08.2023 в 21:32; всего 2 раз(а); by SNEG
По факту нужно сделать проверку на наличие @ в поле ввода и если @ присутствует, то проверять, как email, если нет, то как имя пользователя.
php
if (filter_var($_POST['kakaya-to_fignya'], FILTER_VALIDATE_EMAIL)) {
// Тут сверяемся с БД по email, так как валидация по почте прошла успешно
} else {
// Тут сверяемся с БД по name, так как валидация по почте не прошла
}
Если прямо совсем образно, то логика такая.
либо
________
посл. ред. 23.08.2023 в 21:45; всего 3 раз(а); by xynd3r
html
<form method="post">
<input type="text" name="user" placeholder="Введите имя или email" />
<input type="submit" name="next" placeholder="Далее" />
</form>php
$val = $_POST['user'];
if (filter_var($val, FILTER_VALIDATE_EMAIL)) $key = 'email';
else $key = 'username';
$query = 'SELECT `id`, `userpass` FROM `users` WHERE `'.$key.'` = "'.$val.'"';
$u = mysqli_fetch_assoc(mysqli_query($mysqli, $query));либо
php
$val = $_POST['user'];
$query = 'SELECT `id`, `userpass` FROM `users` WHERE `'.(filter_var($val, FILTER_VALIDATE_EMAIL) ? 'email':'username').'` = "'.$val.'"';
$u = mysqli_fetch_assoc(mysqli_query($mysqli, $query));________
посл. ред. 23.08.2023 в 21:45; всего 3 раз(а); by xynd3r
________
посл. ред. 23.08.2023 в 21:38; всего 1 раз(а); by SNEG
исправил прошлый пост для большей наглядности, но там чисто для понятие логики и в продакшен такое лучше не сувать.
________
посл. ред. 23.08.2023 в 21:43; всего 1 раз(а); by xynd3r
Можно задать логин формата: user@bymas.noname
filter_var определяет как e-mail и ищет по полю с e-mail, хотя по сути - это логин.
+ для ускорения если так критично, ставим индексы
, во время регистрации можно запретить использовать символ @ в имени пользователя.
________
посл. ред. 23.08.2023 в 22:40; всего 1 раз(а); by SNEG
Стр.: 1, 2