значения формы теряются при ошибке капчи в codeigniter php - PullRequest
1 голос
/ 27 мая 2020

Я создал веб-сайт в php, на веб-сайте есть форма регистрации и Google Captcha. Если капча верна, форма будет успешно отправлена. Если капча неправильная, та же страница будет перезагружена:

$this->session->set_flashdata('message', 'Captcha Error.');
redirect(base_url('signup'), 'Location');

Проблема в том, что страница перезагружается с пустыми значениями, введенные пользователем данные исчезли, может ли кто-нибудь сказать мне, что мне не хватает в моем коде ?

Заранее спасибо.

1 Ответ

0 голосов
/ 28 мая 2020

Вы можете сохранить значение формы в сеансе и автоматически заполнить форму на основе данных в сеансе.

//set formdata to session
$data_session = array(
    'name' => $name,
    'email' => $email
);
$this->session->set_userdata('form_data', $data_session);

И установить данные при загрузке страницы реестра и установить значение для вашего представления.

//load session data if exist
$data['name'] = null;
$data['email'] = null;
if ($this->session->userdata('form_data') != null)
{
    $data['name'] = $this->session->userdata('form_data')['name'];
    $data['email'] = $this->session->userdata('form_data')['email'];
}
$this->load->view('register_view',$data);

Не забудьте удалить сеанс, если регистрация прошла успешно.

$this->session->unset_userdata('form_data');

В качестве альтернативы вы также можете использовать метод HTTP и POST / GET данные на новую страницу (не используйте HTTP GET, если вы хотите отправить пароль).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...