我現在正在使用此代碼超過12個小時,任何幫助都將深表謝意。在我發佈代碼之前沒有幾個詞。我的後臺身份驗證代碼非常相似,現在我正在進行網站成員身份驗證。後臺工作正常,前端沒有。codeigniter會話數據在jquery重定向後丟失
這是CodeIgniter的應用程序,是我做了很多次。如果後端代碼無法正常工作,我會懷疑服務器有不同的設置,但後端代碼有效。我不與CI初學者,我想我已經做了一些地方愚蠢的錯誤......
這裏是登錄功能:
public function loginCheck()
{
// set the validation rules
$this->form_validation->set_rules('memberusername', 'Username', 'required|trim|encode_php_tags');
$this->form_validation->set_rules('memberpassword', 'Password', 'required|trim|encode_php_tags');
$this->form_validation->set_error_delimiters('<br /><p class=jsdiserr>', '</p><br />');
// if validation is passed
if ($this->form_validation->run() != FALSE)
{
$this->db->where('memberUserName', $this->input->post('memberusername'));
$this->db->where('memberOldPassword', strtoupper(md5("EBOSS/".$this->input->post('memberpassword')."/EBOSS")));
$query = $this->membersModel->get();
if($query)
{
$data = array(
'memberID' => $query[0]['memberID'],
'memberUserName' => $query[0]['memberUserName'],
'memberOldPassword' => $query[0]['memberOldPassword'],
'memberEmail' => $query[0]['memberEmail'],
'isUserLoggedIn' => TRUE
);
$currentUser = array();
//echo "Here after the data?";
//die();
$this->session->set_userdata('currentMember', $data);
$currentMember = $this->session->userdata('currentMember');
// print_r($currentMember);
//die();
echo json_encode(array("success" => true));
} else {
echo json_encode(array("success" => false, "error" => "Wrong credentials"));
}
// form validation has failed
} else {
$errorMessage = "Wrong Username or passwrod!";
}
} // end of function loginCheck
這裏是javascript代碼:
// user fill both fields, user name and memberpassword, so form can be submitted
jQuery("#formLogin").submit(function(e){
e.preventDefault();
var memberusername = jQuery(this).find("#memberusername").val();
var memberpassword = jQuery(this).find("#memberpassword").val();
var obj = {memberusername: memberusername, memberpassword: memberpassword};
var url = jQuery(this).attr("action");
jQuery.post(url, obj, function(r){
if(r.success) window.location.replace('http://www.example.net/memberAccount/memberDashboard');
else jQuery('#errorMessageTop').fadeIn();
}, 'json')
})
我收到錯誤遺漏的類型錯誤:無法讀取空
的特性「成功」就完了,這裏是用戶帳戶頁面上的輸出:
Array
(
[session_id] => 711a8349fe7414802928ac27b7bd2c4f
[ip_address] => 62.103.42.2
[user_agent] => Mozilla/5.0 (Windows NT 6.1; rv:33.0) Gecko/20100101 Firefox/33.0
[last_activity] => 1416509476
[currentUser] => Array
(
[authbackofficeuserID] => 428
[authbackofficeuserUserName] => mysuername
[authbackofficeuserPassword] => 69e3184e2cdc3605693ba24887c519aaafc89477
[authbackofficeuserEmail] => [email protected]
[authbackofficeuserFirstName] => My
[authbackofficeuserLastName] => Name
[isUserLoggedIn] => 1
)
)
當前用戶是在後臺登錄的用戶的數據,但應找到的currentMember無處可查。
事情更奇怪,如果我註釋掉javascript,數據顯示在這裏的數組輸出。只要我刪除評論,並且我退出,當我嘗試再次登錄時,該數據(currentMember)就消失了。
任何幫助將深表謝意。
的問候,約翰
你怎麼樣跟蹤CI會話?數據庫或cookie? – Sparky 2014-11-21 00:49:00