php - 导航到另一个页面时无法保留会话值

时间:2014-05-09 12:59:40

标签: php html session

我正在开发一个php应用程序,但我在保留会话值方面遇到了问题。我有两个文件,一个是侧边栏(sidebar.php)和一个主页(home.php)。我在主页上添加了侧边栏。 侧栏上有登录控件,我可以成功登录。我知道它已成功登录,因为它向我显示了一条消息欢迎'用户名'。但是当我转到主页时,欢迎使用用户名'部分未显示,因为会话值被销毁。而是显示登录表单。那是为什么?

这是主页(sidebar.php)

<?php require_once('connections.php'); ?>
<?php
// if the login button is clicked
if (isset($_POST['btnLogin']))
{


$myusername=$_POST['textusername'];
$mypassword=$_POST['textpassword'];

$result=mysql_query("SELECT * FROM users_table WHERE username='$myusername' and password='$mypassword'");

$count=mysql_num_rows($result);

if($count>=1)
{

$_SESSION['username'] = $row["username"] ;
$_SESSION['userid']= $row["ID"];

}
else 
{ 

//Any code here

}

}
?>

<div class="col-md-12 right-aside">  

<?php


if (isset($_SESSION['userid']))
{
echo Welcome : " .  $_SESSION['username'];
echo "  <a href='logout.php'> | Logout</a>";
}

else //if session is not set
{

echo 'Some html for login form';

}

?>
</div> 

以下是主页(home.php)

<?php include("head.php"); ?> 
<body>
<div class="container container-body">
        <div class="row">
          <div class="col-md-9 main-content">
             <div class="row">                               

               <p>Some Text Here</p>

             </div><!-- /.row -->
          </div><!-- /.main-content -->
        <div class="col-md-3">

  <div class="row">
      <?php include 'sidebar.php';?>      
  </div>

 </div>

1 个答案:

答案 0 :(得分:3)

你是否在home.php开始了一个会话? 您必须在每个要访问会话变量的PHP脚本的第一行调用session_start()

尝试在家中添加此内容。

<?php
session_start();
//Then do your work

然后即使在head.php或sidebar.php中再次调用session_start,它也会被忽略,因为会话已经开始。