我是CI的新手。我刚刚在CI中创建了登录表单,每次我第一次打开浏览器并登录表单时,根据操作甚至密码都没有重定向到页面。用户是对的。它只刷新页面。但我第二次登录时,它运行正常。 我尝试使用不同的浏览器并使用隐身功能也无济于事。所以错误只发生在我第一次运行脚本时。 任何想法?
由于
这是观点:
< script type = "text/javascript" >
$(function() {
$("#login_form").submit(function(evt) {
evt.preventDefault();
var url = $(this).attr('action');
var postData = $(this).serialize();
$.post(url, postData, function(o) {
if (o.result === 1) {
window.location.href = '<?=site_url('
dashboard ')?>';
} else {
alert('Invalid login');
}
}, 'json');
});
}); <
/script>
<div class="row">
<div class="span6">
<form id="login_form" class="form-horizontal" method="post" action="<?=site_url('api/login')?>">
<div class="control-group">
<label class="control-label">Login</label>
<div class="controls">
<input type="text" name="login" class="input-xlarge" />
</div>
</div>
<div class="control-group">
<label class="control-label">Password</label>
<div class="controls">
<input type="password" name="password" class="input-xlarge" />
</div>
</div>
<div class="control-group">
<div class="controls">
<input type="submit" value="Login" class="btn btn-primary btn-lg btn-block" />
</div>
</div>
</form>
</div>
</div>
这是我的控制器:
<?php
public function login()
{
$login = $this->input->post('login');
$password = $this->input->post('password');
$this->load->model('user_model');
$result = $this->user_model->get([
'login' => $login,
'password' => hash('sha256', $password . PASX)
]);
$this->output->set_content_type('application_json');
if ($result){
$this->session->set_userdata(['user_id' => $result[0]['user_id']]);
$this->output->set_output(json_encode(['result' => 1]));
return false;
}
$this->output->set_output(json_encode(['result' => 0]));
}