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

标签 php mysql codeigniter survey

我是一个完全的 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');
}

请你帮我修改这段代码以获得我想要的东西好吗?我很感激每一个帮助!

最好的问候,

安德烈亚斯

最佳答案

CI 中的表单可能很复杂。如果您也想节省一些时间,这可能是一个非常有用的工具: http://formigniter.org/app/index.php/formigniter/index/5

关于php 表单验证 - 伪密码而不是邮件地址和随机数作为唯一标识符而不是邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9788247/

相关文章:

mysql - 为什么不能在mysql中添加外键

数据库 | SET 和 TEXT 字段类型有什么区别?

mysql - 与导入 ion-auth sql 文件相关的问题

javascript - Slidesjs 无法在 codeigniter uri 路径中工作

php - mysqli_insert_id ()

php - 通过iframe中的脚本检测父域名

php - 逃离 MySQL PHP

php - 将 groupBy() 与 orderBy() 和 limit() 一起使用

php - 为什么PHP更新数据没有被选中?

PHP Laravel cviebrock/eloquent-sluggable 不工作因为 "instanceof SluggableInterface"总是返回 false