Есть задача - это регистрация пользователя и сохранение его в базе phpmyadmin. При отправке GET или POST запросом в form нужно обязательно жать отправить. После этого идёт обновление страницы. Только после этого можно отослать пользователю инфу о том что допустим такой ник или email уже есть в базе. Такой подход не устраивает. Нужна другая реализация при которой пользователь только вписал свой ник и email в поле (он ещё не нажимал отправить) и ему сразу же выведется что такой ник уже занят. Это по типу реализации регистрации на mail.ru . Можно ли такое реализовать в php в принципе ? Заранее спасибо.
С использованием JS можно.
Например:
Клиент:
myPerfectEmailInput.addEventListener("change", e => {
if (!e.target.value.match(/@/) || e.target.value.length < 4)
return false; // дабы лишний раз сервер не дёргать.
let formData = new FormData();
formData.append("email", e.target.value); // вдруг ещё что-то передать нужно.
fetch("/url/to/handler.php", {
method: "POST",
body: formData
})
.then(r => r.json()) // подразумевается, что ответ с сервера - JSON
.then(r => {
if (r.emailExists) {
doSomething(); // например, выдаём какую-нибудь ошибку/подсвечиваем инпут красным или что-то в этом духе.
}
});
});
<input type="email" id="myPerfectEmailInput" />
PHP:
$result = $db->query("SELECT 1 AS exists FROM users WHERE email = ?", $_POST['email']); // здесь какой-то запрос в БД.
echo json_encode(["emailExists" => $result["exists"]);
Работать может примерно так. (если что, занят или не занят - рандом, просто для примера)
UPD. Добавил также проверку на количество символов, сам об этом не подумал. Спасибо Сергею.
Виртуальный выделенный сервер (VDS) становится отличным выбором
В preg_match_all первым аргументом вставляется html блок
Происходит странная переадресацияДелаю счетчик на основе htaccess и столкнулся с такой проблемой
задался вопросом, можно ли сделать такой функционал:
Подскажите, можно ли делать в C/C++ внутри макросов комментарии?