CodeIgniter 2.x を使用しています。認証には、flexi auth ( http://haseydesign.com/flexi-auth/ ) を使用しています。私はひどい問題に直面しています。単純な ajax リクエストで、セッションが失われています。
コントローラー:
$this->auth = new stdClass;
// Load 'standard' flexi auth library by default.
$this->load->library('flexi_auth');
// Check user is logged in as an admin.
// For security, admin users should always sign in via Password rather than 'Remember me'.
if (! $this->flexi_auth->is_logged_in_via_password())
{
// Set a custom error message.
$this->flexi_auth->set_error_message('You must login as an admin to access this area.', TRUE);
$this->session->set_flashdata('message', $this->flexi_auth->get_messages());
redirect('auth');
}
コントローラー機能
public function checkItemCode(){
if($this->input->is_ajax_request()){
//die('sdasda');
$getResult = $this->items_model->checkCodeAvailablity();
if($getResult == false){
echo '<span style="color:#f00; margin-left:10px;">This code has been used for another item. Kindly use any other code. </span>';
}else{
//echo '<span style="color:#f00">You can use this code!!!</span>';
}
} // if
} // checkItemCode
AJAX 呼び出し
$(document).ready(function() {
/// make loader hidden in start
$('#Loading').hide();
$('#code').blur(function(){
$('#Loading').show();
$.post("<?php echo base_url()?>items/checkItemCode", {
code: $('#code').val()
}, function(response){
$('#Loading').hide();
setTimeout("finishAjax('Loading', '"+escape(response)+"')", 400);
});
return false;
});
});
function finishAjax(id, response){
$('#'+id).html(unescape(response));
$('#'+id).fadeIn();
}
sess_update関数、MY_Session libなど、ネットで利用可能なすべてのオプションを実行しましたが、運がありません。
親切に私を助けてください。
よろしくお願いします。