#php #forms
#php #формы
Вопрос:
У меня есть форма, которую пользователь может заполнить, если он не вошел в систему. Но форма не может быть отправлена, пока он не войдет в систему. Если пользователь не авторизован, он перенаправляется на форму входа. Но проблема в том, что когда пользователь входит в систему и нажимает на ту же форму, данные, которые он заполнил ранее, теряются. Есть 20 полей, которые он должен заполнить снова. Что я должен использовать для сохранения данных? должен ли я сохранять в базе данных, должен ли я использовать cookies, сеанс?? Как это делается обычно??
А что, если пользователь заполняет форму и не входит в систему? Другой пользователь, который использует систему, увидит предыдущие данные в форме. Как это обрабатывается.
Пожалуйста, помогите
Комментарии:
1. вы можете использовать cookie и установить время, чтобы через некоторое время удалить cookie
2. но не лучше ли ограничить страницу только авторизованными пользователями?
3. @TheDude это определенно для того, чтобы показывать форму только зарегистрированным пользователям
4. если пользователь новичок на сайте, он не будет предоставлять свои данные и регистрироваться, если он не знает веб-сайт
5. например, с помощью плагина Ultimate Member вы можете ограничить содержимое страницы / публикации только определенными участниками роли ( doc )
Ответ №1:
Я бы использовал сеансы. Просто заполните каждую переменную сеанса из $_POST
и echo, чтобы исправить поле ввода, если оно установлено:
<?php
session_start();
$fname = $_POST['firstname'];
$sesFname = $_SESSION['firstname'] = $fname;
?>
<form method="post">
<input type="text" name="firstname" value="<?php
if (isset($sesFname)){
echo $sesFname;
}
?>">
<input type="submit" value="Submit">
</form>
Затем session_unset()
для освобождения ресурса, когда он не нужен.
Смотрите: