我試圖通過AJAX送我用戶名和密碼到數據庫進行驗證用戶,但我看到的CI是創造了一個請求重複的會議。另外當我試圖設置userdata
到session->set_userdata
它不設置數據。這被證實是因爲螢火蟲和我的會話數據庫都沒有顯示數據。此外,由於會議中沒有設置任何數據,因此我沒有收到AJAX響應中顯示的任何迴應以顯示AJAX響應成功笨會話不保存用戶數據,並創建重複會議
請指導我在做什麼錯誤,因爲會話cookie被創建,即使用戶名和密碼組合錯誤。
型號:
function validate_login()
{
$this->db->where('Useremail',$this->input->post('username'));
$this->db->where('Password',$this->input->post('password'));
$result = $this->db->get('users');
if ($result->num_rows == 1) {
return true;
}else{
return false;
}
}
控制器:
function validate_login_user()
{
$this->load->model('data_model');
if ($this->data_model->validate_login())
{
$data = array (
'username' => $this->input->post('username'),
'is_logged_in' => true
);
$this->session->set_userdata($data);
return = $this->session->userdata('username');
}
else
{
return false;
}
}
我的觀點:
<script>
$(function() {
$('.login').click(function(){
var username = $('#username').attr('value');
var password = $('#password').attr('value');
if (username == "" || password == ""){
$('.LoginErrormsg').css('display','block');
}
if (username !== "" && password !== ""){
$.ajax({
url:"<?php echo site_url('home/validate_login_user');?>",
type:'POST',
data:{username:username,
password:password},
success:function(){
$('#sitelogin').html(msg);
$('.logout').css('display','block');
}
});
return false
}else{
return false;
}
});
})
</script>
<div id="sitelogin">
<input type="text" class="loginbox" name = "login_username" id = "username" placeholder="Email address/Username" />
<input type="password" class="loginbox" name = "login_password" id="password" placeholder="Password" />
<div class="LoginErrormsg">You forgot to enter Username and Password</div>
<button class="login" name = "login">Login</button>
<button class="logout" name = "logout">Logout</button>
</div>
</div>
我清除了所有的Cookie,然後點擊登錄按鈕,我立即找到會話cookie中的螢火蟲XHR控制檯設置。即使會話數據庫顯示會話使用重複的會話ID登錄。我很驚訝爲什麼我的會話數據沒有加載到會話cookie中。 將ajax請求發送到狀態爲200的確認腳本。最令人不安的事實是,即使證書未經驗證,會話也會被創建。 請幫助我! – Sanjit