繁体   English   中英

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

[英]form values lost if captcha error in codeigniter php

我在 php 中创建了一个网站,该网站有一个注册表单和谷歌验证码。 如果验证码正确,则表单将成功提交。 如果验证码错误,同一页面将重新加载:

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

问题是页面正在重新加载空值,用户输入的输入消失了,谁能告诉我我的代码中缺少什么?

提前致谢。

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

//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);

如果注册成功,不要忘记删除 session。

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

或者,您也可以使用 HTTP 方法和 POST / GET 数据到新页面(如果要发送密码,请不要使用 HTTP GET)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM