Обучение/Помощь новичкам | Авторизация
Тема закрыта 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."'")); ________
посл. ред. 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