次のようにユーザーを確認するためのコントローラーがあります。
function index()
{
if($this->input->post('username'))
{
$username=$this->input->post('username');
$password=$this->input->post('password');
$this->mstudents->verifyUser($username,$password);
if(@$_SESSION['sutdentUsername']!=""){
echo "success";
}
else
{
echo "error";
}
}
else
{
echo "error";
}
}
この関数は、次のようにビューで ajax によって呼び出されます。
$.post('<?PHP echo base_url();?>account/login/',{username:$("#username").val(),password:$("#password").val()},function(data){
$("#loginButton").button('reset');
if(data=="success")
{
window.location="<?PHP echo base_url();?>account/dashboard";
}
});
問題は、検証のためにダッシュボードのセッション変数にアクセスしようとすると、空の $_SESSION 配列が取得されることです。何が問題なのですか?
これは、verifUser のモーダル コードです。
function verifyUser($username,$password)
{
$data=array();
$this->db->where('email',$username);
$this->db->where('password',$password);
$this->db->where('status','active');
$Q=$this->db->get('students');
if($Q->num_rows()>0)
{
$row=$Q->row_array();
$_SESSION['sutdentUsername']=$row['email'];
}
else
{
$_SESSION['sutdentUsername']="";
}
}
すべてのコントローラーのコンストラクターのコードにこのコードがあります。
function __construct()
{
parent::__construct();
session_start();
print_r($_SESSION);
コントローラーのディレクトリ構造は次のようになります。
コントローラー: account -dashboard -login 他のコントローラーはここに...