php表单验证-伪密码而不是邮件地址,随机数作为唯一标识符而不是邮件地址

php表单验证-伪密码而不是邮件地址,随机数作为唯一标识符而不是邮件地址,php,mysql,codeigniter,survey,Php,Mysql,Codeigniter,Survey,我是一个完全的php初学者。实际上,我想定制一个视觉刺激的调查平台来满足我的需求,因为我的论文需要这个平台。此调查平台的原始版本要求参与者提供其邮箱地址以登录,然后他们可以查看可用的测试。据我所知,代码检查邮件地址是否已经保存在数据库中,如果没有,则为相应的参与者保留一定数量的刺激(使用他们的邮件地址作为标识符)。这一数量的刺激将被阻止进行进一步的测试。然而,这带来了以下问题: 1) 参与者只能参与一次 2) 参与者必须放弃匿名 整件事不必非常复杂。如果参与者可以使用“匿名”一词登录,然后进入可

我是一个完全的php初学者。实际上,我想定制一个视觉刺激的调查平台来满足我的需求,因为我的论文需要这个平台。此调查平台的原始版本要求参与者提供其邮箱地址以登录,然后他们可以查看可用的测试。据我所知,代码检查邮件地址是否已经保存在数据库中,如果没有,则为相应的参与者保留一定数量的刺激(使用他们的邮件地址作为标识符)。这一数量的刺激将被阻止进行进一步的测试。然而,这带来了以下问题:

1) 参与者只能参与一次 2) 参与者必须放弃匿名

整件事不必非常复杂。如果参与者可以使用“匿名”一词登录,然后进入可用的测试,在这些测试中,一定数量的刺激不是通过他们的邮件地址保留的,而是通过自动生成的唯一随机数(作为标识符)保留的,这就足够了

我认为重要的代码行如下:

/**
 * Lets user login. Stores new e-mail addresses if not yet in database.
 */
function login() {

    $this->validation->set_error_delimiters('<div class="error">', '</div>');
    $this->validation->set_message('required', $this->lang->line("validation_error_validemail_required"));
    $this->validation->set_message('valid_email', $this->lang->line("validation_error_validemail_required"));

    // check if valid e-mail address
    //required|valid_email
    $rules['email'] = "required|valid_email";
    $this->validation->set_rules($rules);

    $fields['email'] = $this->lang->line("frontend_user_email");
    $this->validation->set_fields($fields);


    if ($this->validation->run() == FALSE) {
        $this->load->view('welcome_message'); // reload form


    } else {

        $this->load->model("testcontainer_model", 'testcontainer');
        $this->data['testcontainer']->activeuser = $this->data['testcontainer']->getUserByEmail($_POST['email']);

        $this->load->view('welcome_message', $this->data);
    }

}


/**
 * Logout user, unset session data.
 */
function logout() {
    $this->session->unset_userdata('user_email');
    $this->session->unset_userdata('user_id');
    $this->session->unset_userdata('albumpath_relative');
    $this->session->unset_userdata('test_name');
    $this->session->unset_userdata('test_id');
    $this->load->view('welcome_message');
}
/**
*允许用户登录。如果尚未存储在数据库中,则存储新的电子邮件地址。
*/
函数登录(){
$this->validation->set_error_分隔符(“”,);
$this->validation->set_message('required',$this->lang->line(“validation_error\u validemail\u required”);
$this->validation->set_message('valid_email',$this->lang->line(“validation_error\u validemail\u required”);
//检查电子邮件地址是否有效
//必需的|有效的|电子邮件
$rules['email']=“必需的|有效的_email”;
$this->validation->set_规则($rules);
$fields['email']=$this->lang->line(“前端用户电子邮件”);
$this->validation->set_字段($fields);
如果($this->validation->run()==FALSE){
$this->load->view('welcome_message');//重新加载表单
}否则{
$this->load->model(“testcontainer_model”,“testcontainer”);
$this->data['testcontainer']->activeuser=$this->data['testcontainer']->getUserByEmail($\u POST['email']);
$this->load->view('welcome_message',$this->data);
}
}
/**
*注销用户,取消设置会话数据。
*/
函数注销(){
$this->session->unset_userdata('user_email');
$this->session->unset_userdata('user_id');
$this->session->unset_userdata('albumpath_relative');
$this->session->unset_userdata('test_name');
$this->session->unset_userdata('test_id');
$this->load->view('welcome_message');
}
你能帮我修改一下代码,得到我想要的吗?我感谢你的帮助

致以最良好的祝愿


CI中的Andreas形式可能很复杂。如果您还想节省一些时间,这将是一个非常有用的工具:

您看过这些文件了吗?关于表单验证有很多信息这正是我的问题-我完全被这个主题的大量信息所淹没。问题是我的论文需要这个,php绝对不是我的主题。所以我想问这个问题,希望有人能给我一个提示。。。