【发布时间】:2011-09-28 17:13:47
【问题描述】:
我创建了一个简单的注册/新闻通讯网站,但我遇到了一个奇怪的问题。有些人收到一个错误提示
遇到错误 操作 您的请求不被允许。
我已经尝试过 google,发现当 CSRF 设置为 true 时人们也遇到了同样的问题。然而,我不会发生在每个人身上,只是一小部分人。我正在使用 form_open 和 form_close,我可以看到隐藏字段(令牌)。
我正在使用最新版本的 Codeigniter 2.0.2
这是我的控制器
function __construct() {
parent::__construct();
session_start();
}
function index() {
$this->load->model('beta_signup_model');
$this->form_validation->set_rules('mail','e-mail','required|valid_email|xss_clean|callback__mail_check');
// Check for errors
if($this->form_validation->run() == FALSE) {
// The system found a form validation error
} else {
// No errors found
$_SESSION['mail_success'] = 1;
$_SESSION['mail'] = $this->input->post('mail');
redirect(base_url() . 'confirm');
}
///// FILLS OUT INPUT FIELDS /////
// Loads field_populator_helper
$this->load->helper('field_populator_helper');
// Defines input field names
$input_names = array(
'mail',
);
// Defines default values
$default_values = array(
'Skriv inn e-posten din..',
);
// Auto-populates fields with blur and focus
$data['field_populator'] = populateFields($input_names, $default_values);
$this->load->view('frontpage_view', $data);
}
【问题讨论】:
-
可能该功能需要 cookie 和/或 javascript。一些有错误的人可能没有启用所需的功能,因此CSFR检查(基于令牌?)没有通过。您将哪个组件用于 CSFR?
-
我以前也有同样的问题。每当重新提交经过验证的表单时,都会发生这种情况。可能有人在这里有解决方案。
-
奇怪,有人有解决办法吗?
标签: php codeigniter frameworks token