我是一个完全的 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/