2017-07-10 50 views
0

因此,这里是eppkm.php的代码(我需要保护的页面) 只需提交具有令牌值的表单即可解决该会话。会话无法设置并返回空

<?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会议,结果来这意味着会议没有结算。

你能帮我修好吗?并指出我在哪里,我做错了什么:(

+0

我曾经有同样的问题,https://stackoverflow.com/questions/44938763/set-session-with-post-data –

回答

0

我已经从我记得这个问题是不相关的$ _SESSION,但布尔值遇到类似的问题,在过去7-8年前

我建议EM转换为字符串/整数或每下面

解释可选地这里的解释:

布尔值TRUE将被转换为字符串“1”布尔值FALSE是 转换为“” (空字符串)。这允许在布尔值和字符串值之间进行转换并返回 。

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);