Автозаполнение данных формы после входа в систему

#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() для освобождения ресурса, когда он не нужен.

Смотрите:

http://php.net/manual/en/book.session.php