我有使用codeigniter构建的简单登录表单3.很多时候,当我提交表单时,我收到此错误“不允许您请求的操作”。大部分时间它都有效,但我试图找到一个解决方案,以便它一直有效。
以下是我的登录表格:
<?php echo form_open('admin/index', ['role' => 'form']); ?>
<fieldset>
<legend><i class="fa fa-lock"></i> Secure Sign-In</legend>
<div class="form-group">
<label for="username">Username</label>
<input type="text" id="username" name="username" value="<?php echo set_value('username'); ?>" class="form-control"/>
</div>
<?php echo form_error('username'); ?>
<div class="form-group">
<label for="password">Password</label>
<input type="password" id="password" name="password" class="form-control" />
<div class="checkbox">
<label>
<input type="checkbox"> Remember Me
</label>
</div>
</div>
<?php echo form_error('password'); ?>
<button type="submit" class="btn btn-primary">
<i class="fa fa-sign-in"></i> Sign In
</button>
</fieldset>
<?php echo form_close(); ?>
据我所知,其他帖子很可能是CSRF问题因此我也在共享配置文件值:
$config['csrf_protection'] = TRUE;
$config['csrf_token_name'] = 'testname';
$config['csrf_cookie_name'] = 'cookiename';
$config['csrf_expire'] = 7200;
$config['csrf_regenerate'] = FALSE;
$config['csrf_exclude_uris'] = array();
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'cisession';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
我只是分享一个登录页面的例子,因为这是我面临的问题。否则我在应用程序的其余部分有许多其他形式,其中一些甚至使用Ajax提交(我使用CSRF令牌添加隐藏的输入)但从未遇到过问题。
同样,大部分时间它都有效,但我确实每隔一段时间就看到这个错误。