会话变量在一个页面上设置,在另一个页面上找到空

时间:2014-08-06 12:42:15

标签: php session

你好朋友我是论坛新手 我创建了一个简单的登录页面名称为 index.php ,代码如下:

// I have already starts session by session_start()
$qry="select empCode from relaxo_employee_info where empCode='".$username."' and empPassword='".$password."' and empPost='Executive'";
$result=mysql_query($qry);
if($row=mysql_fetch_array($result))
{
    $_SESSION['UID']=$username;
    echo $_SESSION['UID'];              //prints session data successfully so think session set correctly. 
?>
    <script>self.location.href='executive/order_place.php';</script>
<?php               
}

然后在 order_place.php 开始时,我通过 session_start()继续会话,并在其中输入以下代码以检查有效会话

    <?php
              session_start();
              if(isset($_SESSION['UID'])==NULL)   // at this point $_SESSION['UID'] find automatically empty. somehow Its blank completely.
              { 
    ?>
    <script>self.location.href='index.php';</script>  //because of session finds empty it redirects to index.php
    <?php
              }
    ?>
发生了奇怪的事情,我只是与你分享,这有助于你理解我的问题

1)相同的代码在localhost上成功运行,但在我的域上不起作用 2)有时会话成功运行,但有时没有相同的代码而没有任何更改

所以,请大家解决我的问题并帮助我解决这个问题

4 个答案:

答案 0 :(得分:1)

if(isset($_SESSION['UID'])==NULL)

如果您想将$_SESSION变量与NULL进行比较,

是一种奇怪的方法。相反,尝试

if(is_null($_SESSION['UID']))

并查看问题是否仍然存在。

答案 1 :(得分:0)

if(isset($ _ SESSION [&#39; UID&#39;])== NULL)是您的问题所在。如果true == null或false == null,它永远不会起作用。

答案 2 :(得分:0)

isset($_SESSION['UID'])测试您的变量是否已设置 为了让你测试它的价值,尝试一下:

if( isset($_SESSION['UID']) && trim($_SESSION['UID'])!='' )
{
// execute code here
}

答案 3 :(得分:0)

试试这个......

<?php
      session_start();
      if(isset($_SESSION['UID']))   // check whether session is set or not.
         {
           if($_SESSION['UID'] == NULL)  // check session is NULL
              {
                  header('location:index.php'); // redirect to index.php page
              }
         } 
?>