2016-09-15 50 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

好吧..我会试试这个。 –