2016-09-15 120 views
-4

會話變量沒有在第一次設置。從action.php到employee.php,但是在employee.php中,$ _SESSION ['EmpID']第一次登錄時什麼都不顯示。如果我註銷並重新登錄,則可以正常工作。在localhost中正常工作。PHP SESSION變量第一次不工作

action.php 

<?php 
session_start(); 
if(isset($_POST['UserID'])&&isset($_POST['Password'])) 
{ 
$id = $_POST['UserID']; 
$pass = $_POST['Password']; 
$result = mysqli_query($con,"select * from auth_det where  UserName='$id' and Password='$pass'"); 
if(mysqli_num_rows($result)>0) 
{ 
$row = mysqli_fetch_array($result); 
//echo $row['UserID']; 
//echo $row['Password']; 
       $_SESSION['UserName']=$id; 
       $_SESSION['EmpID'] = $row['EmpID']; 
     $_SESSION['is_auth'] = true; 
      $_SESSION['User'] = "Emp"; 
       echo "<script type='text/javascript'>window.location.href = 'Employee/employee.php'; </script>"; 
       exit(); 

}

logout.php 
<?php 
session_start(); 
session_destroy(); 
echo "<script type='text/javascript'> document.location = '../login.php'; </script>"; 
?> 


employee.php 

session_start(); 
$EmpID=$_SESSION['EmpID']; 
echo "EmpID=".$EmpID; 
if(!isset($_SESSION['EmpID'])) 
{ 
echo "<script type='text/javascript'> window.location.href = 'logout.php'; </script>"; 
} 
+1

沒有代碼的頂部寫session_start(); =沒問題 – nogad

+1

顯示你的代碼 – Dave

+1

你能更具體嗎?您的問題太寬泛,請提供代碼和方案。 – Ajir

回答

0

嘗試將session_start()移到action.php的文件。 起初連接php不創建會話在action.php 然後你得到重定向和employee.php開始會話。 如果稍後再試一次會話已經打開,所以在動作php中沒有問題。

想想也切換JavaScript重定向到一個頭重定向如果客戶端禁用了JavaScript

+0

session_start()在action.php文件中存在。但問題仍然存在。 –

+0

而頭()也不起作用。因此我使用JavaScript。 –

0

,因爲它仍然有效,請檢查您did'nt忘了上action.php

+0

session_start()在action.php文件中。但問題仍然存在。 –

+0

我認爲這將工作..創建一個'config.php',在其中你必須編寫連接代碼,然後加上'session_start();'並將這個文件包含在每頁頂部 –

+0

好吧..我會試試這個。 –