我现在正在使用此代码超过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