2017-07-10 8 views
0

これはeppkm.php(保護が必要なページ)のコードです。 セッションはトークン値を持つフォームを送信するだけで解決されます。セッションを設定できず、Nullを返す

<?php session_start(); 
include_once"pengaturan/crud.php"; 

if (isset($_POST['token'])) 
{ 
     $token = $_POST['token']; 
     $_SESSION['user'] = true; 
     $konek->login($token); 
} 
else 
{ 
     $_SESSION['user'] = true; 
     $konek->login($token); 
} 

?> 

そしてここpengaturan/crud.phpファイルで、ログイン機能:

public function login($token) 
    { 

     if (isset($token)) 
     { 
     $query = "SELECT * FROM master_users WHERE remember_token = '". $token ."'" ; 
     $hasil = pg_query(Parent::get_dbcon(),$query); 

     if (pg_num_rows($hasil) != 1) 
     { 
      echo "nothing"; 
      //header("Location: http://192.168.0.190/eppkm_ex/public/master/login");  
     } 

     } 

     else{ 
     if(!isset($_SESSION['user'])){ 
     session_destroy(); 
     header("Location: http://192.168.0.190/eppkm_ex/public/master/login"); 
      } 
     } 

    } 

私はセッションをエコーし​​ようとしたとき、それはUndefined index: userもがのvar_dumpセッションを試してみましたと言い、結果はに来ますnullは、セッションが解決されないことを意味します。

セッションを修復できますか?そして、どこ私が間違っているの:(私を指す

+0

私は同じ問題を抱えています。https://stackoverflow.com/questions/44938763/set-session-with-post-data –

答えて

0

私は問題が$ _SESSIONが、ブール値とは関係ありません覚えているものから、過去7-8年前で同様の問題が発生しました

。私はここで、について説明だ

以下の説明ごとに文字列/整数または代わりに全角に変換することをお勧め:ブールFALSEが あるブール値TRUEは文字列「1」に変換され

「」に変換(空の文字列)。これにより、ブール値と文字列値の間の変換が戻って になります。

Reference here

+0

はい、私は '$ _SESSION ['user'] = $ token'を変更しますが、何も変更しません起こりました。問題は同じで、セッションは解決されません。 –

+0

セッションを設定した後にページをリダイレクトしようとしていますか?はいの場合はsession_write_close()を追加してみてください。上記のリダイレクトコードの上に例: session_write_close(); header( "Location:/yourpage.php"); –

0

あなたのコードは正常に動作しています!

Check

ファイルまたはCHeckの上部にerror_reporting(E_ALL);ini_set('display_errors', 1);を設定してください。

関連する問題