如果 codeigniter 中出现验证码错误,表单值将丢失 php
form values lost if captcha error in codeigniter php
我在 php 中创建了一个网站,该网站有一个注册表单和 google 验证码。如果验证码正确,表单将成功提交。如果验证码错误,同一页面将重新加载:
$this->session->set_flashdata('message', 'Captcha Error.');
redirect(base_url('signup'), 'Location');
问题是页面正在重新加载空值,用户输入的内容消失了,谁能告诉我我的代码中缺少什么?
提前致谢。
您可以在会话中保存表单值,并根据会话中的数据自动填充表单。
//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)。
我在 php 中创建了一个网站,该网站有一个注册表单和 google 验证码。如果验证码正确,表单将成功提交。如果验证码错误,同一页面将重新加载:
$this->session->set_flashdata('message', 'Captcha Error.');
redirect(base_url('signup'), 'Location');
问题是页面正在重新加载空值,用户输入的内容消失了,谁能告诉我我的代码中缺少什么?
提前致谢。
您可以在会话中保存表单值,并根据会话中的数据自动填充表单。
//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)。