2017-07-04 88 views
-3

即時通訊無法創建會話。

我的PHP代碼

<?php 

      $dbhost = "localhost"; 
      $dbuser = "root"; 
      $dbpassword = ""; 
      $dbname = "dany"; 
      $query = ""; 
      $sqlQuery = ""; 
      $row = ""; 
      $username=false; 
      if(isset($_POST['n'])){ 
       $username=$_POST['n']; 
      } 
      $password= false; 
      if(isset($_POST['p'])){ 
       $password= $_POST['p']; 
      } 
      $conn=mysqli_connect($dbhost,$dbuser,$dbpassword,$dbname); 
      $sUser=mysqli_real_escape_string($conn,$username); 
      $sPass=mysqli_real_escape_string($conn,$password); 
      // For Security 
      $query="SELECT * From admin where username='$sUser' and password='$sPass'"; 
      $result=mysqli_query($conn,$query); 
      if(mysqli_num_rows($result)==1) 
      { 
       session_start(); 
       $_SESSION['dany']= $dbname; 
       header('location:adminPanel.php'); 
      } 
?> 

在會話中,檢查其他代碼,代碼:

<?php 
session_start(); 
if(!$_SESSION['dany']) 
{ 
    header('location:adminLogin.php'); 
} 
?> 

此行:

if(!$_SESSION['dany']) 

正在恢復假我給出的每個有效輸入以及無效輸入。 我試圖複製整個代碼並創建一個新的虛擬項目,它在那裏工作。但不適用於我的actula項目。

+0

'$ _ SESSION ...'是'返回... FALSE'?這是否意味着它*進入了'if' *或者它沒有進入'if' *?你是否首先檢查了會話是否成功啓動*(mysqli_num_rows($ result)== 1'爲'true')? – deceze

+0

@deceze if(!$ _ SESSION ['dany'])返回true。這意味着$ _SESSION ['dany']等於false。 它進入if塊。但我不應該在有效的投入。 –

+0

@deceze ---未定義的索引:第3行的「adminPanel.php」中的dany --- 這就是即時錯誤的原因。 –

回答

0

您需要檢查dany條目以isset定義:

if(isset($_SESSION['dany'])){ 
+0

是的,它確實開始工作,但現在其工作的所有輸入,無論是有效或invalid.i試圖做這 if(isset($ _ SESSION ['dany'])) { header('location:form.php') ; } else if(is_null($ _ SESSION ['dany'])){ header('location:adminLogin.php'); } 但這有同樣的效果 –

+0

你不需要'else if(is_null($ _ SESSION ['dany'])){',你可以用一個簡單的'else {'。 – Isac

+0

我曾嘗試過。但它也沒有解決問題。我仍然無法創建會話 –

相關問題