【发布时间】:2019-04-29 01:32:46
【问题描述】:
我有一个奇怪的问题,我找不到解决方案。我在 CodeIgniter 配置文件中激活了 csrf。当我尝试登录时,第一次尝试总是失败。所有接下来的尝试都有效。它适用于我的本地 MAMP,但是当我将它推送到我的网络服务器时,我遇到了这个奇怪的问题。我得到的错误: 您请求的操作不被允许。
我的配置。
$config['base_url'] = 'https://www.xy.de/test1/';
$config['csrf_protection'] = TRUE;
$config['csrf_token_name'] = 'csrf_test_name';
$config['csrf_cookie_name'] = 'csrf_cookie_name';
$config['csrf_expire'] = 7200;
$config['csrf_regenerate'] = TRUE;
$config['csrf_exclude_uris'] = array();
我的看法:
<?= form_open('login/connect' , ' class="login-form" '); ?>
<div class="input-group mb-3">
<input required type="text" name="fUsername" class="form-control rounded-input" placeholder="<?= $this->lang->line('username_or_email_placeholder'); ?>" aria-label="Username" aria-describedby="basic-addon1">
</div>
<div class="input-group mb-3">
<input required type="password" name="fPassword" class="form-control rounded-input" placeholder="******" aria-label="password" aria-describedby="basic-addon1">
</div>
<div class="w-100 text-center">
<button class="loginButton" type="submit" name="fLogin"><span><?= $this->lang->line('login'); ?></span></button>
<a href="<?= base_url() ?>recover/request" id="forgotPassword"><?= $this->lang->line('forgot_password'); ?>?</a>
</div>
<?= form_close() ?>
控制器:
public function index()
{
if($this->LoginModel->isLoggedIn()){
if($this->LoginModel->isUserSuperAdmin($this->session->idUser)){
redirect("cms/dashboard");
}else {
redirect("cms/profile");
}
}else{
$this->load->view("cms/login", array("title" => SITE_TITLE . " - " . $this->lang->line("login")));
}
}
public function connect()
{
$login = trim($this->input->post("fUsername"));
$password = $this->input->post("fPassword");
if ($this->LoginModel->login($login, $password)) {
if ($this->LoginModel->isUserSuperAdmin($this->session->idUser)) {
redirect("cms/dashboard");
} else {
redirect("cms/profile");
}
}
redirect("cms");
}
【问题讨论】:
标签: php codeigniter csrf