我正在开发一个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>
答案 0 :(得分:3)
你是否在home.php开始了一个会话?
您必须在每个要访问会话变量的PHP脚本的第一行调用session_start()
。
尝试在家中添加此内容。
<?php
session_start();
//Then do your work
然后即使在head.php或sidebar.php中再次调用session_start
,它也会被忽略,因为会话已经开始。