如果codeigniter php中的验证码错误,则表单值丢失

问题描述 投票:1回答:1

我已经用php创建了一个网站,该网站具有注册表格和google captcha。如果验证码正确,则表格将成功提交。如果验证码错误,则将重新加载同一页面:

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

问题是页面正在重新加载空值,用户输入的输入已消失,任何人都可以告诉我代码中缺少什么吗?

提前感谢。

php forms codeigniter flash reloaddata
1个回答
0
投票

您可以在会话中保存表单值,并根据会话中的数据自动填写表单。

//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。

© www.soinside.com 2019 - 2024. All rights reserved.