每个人都在login.php页面的顶部启动了session变量。然后设置会话,我使用include语句调用第二页。我用if语句测试了它似乎通过了确定。然后我尝试在新显示的页面中回显变量的内容。页面显示意味着它传递if块但会话变量的内容未显示。就好像会话变量超出了范围。如何在不同的页面中访问我的会话变量。
<?php
session_start();
$username = "";
if (isset($_POST['submit']))
{
$username = $_POST["username"];
$password = $_POST["password"];
$_SESSION["username"] = $found_admin["username"];
if (isset($_SESSION["username"]));
{
redirect_to("index.php");
}
else
{
$_SESSION["message"] = "Username/password not found.";
}
}
?>
<?php include("login.html"); ?>
这是我的php文件调用的html页面:
<!doctype html>
<head>
</head>
<body>
<?php
echo $_SESSION["username"];
$loggenOnUser=$_SESSION["username"];
?>
<div class="gridContainer clearfix">
<div id="div1" class="fluid">
This page is being called by my login.php file.</div><div id="LoggedInUser" class="fluid ">Hi. I'm <?php $loggenOnUser?> </div>
<img id="homeImage" src="images/home.gif" /> </div>
</div>
</body>
</html>
似乎无法理解为什么我无法访问另一个页面上的会话变量。任何帮助将不胜感激。谢谢!
答案 0 :(得分:2)
*修改
echo
您需要在访问会话之前启动会话 变量
将session_start()
放在您的页面顶部
把echo Hi. I'm <?php echo $loggenOnUser; ?>
答案 1 :(得分:2)
检查此网站:http://php.net/manual/en/function.session-start.php
你需要在所有的php文件中写session_start()
,最好在顶部。
答案 2 :(得分:2)
确保使用
session_start();
在每个页面的开头或任何需要访问会话的PHP文件中。
最简单的方法是使用 header.php 文件,并在网站的每个页面或公共页面的顶部包含/要求。
在这个header.php中你会有像
这样的东西<?php
session_start();
if (isset($_SESSION['username'])) {
// This session already exists, should already contain data
echo "User ID:", $_SESSION['id'], "<br />"
} else {
// New PHP Session / Should Only Be Run Once/Rarely/Login/Logout
$_SESSION['username'] = "yourloginprocesshere";
$_SESSION['id'] = 444;
}
?>
简单地让你的页面像这样
<?php require "header.php"; ?>
<!doctype html>
<head></head>
<body>
<?php
if (isset($_SESSION["username"])) {
$loggenOnUser = $_SESSION["username"];
echo "Found User: ", $loggenOnUser, "<br />"
} else {
$loggenOnUser = " a public user";
}
?>
<div class="gridContainer clearfix">
<div id="div1" class="fluid">
This page is being called by my login.php file.
</div>
<div id="LoggedInUser" class="fluid ">
Hi. I'm <?php echo $loggenOnUser; ?>
</div>
<img id="homeImage" src="images/home.gif" /> </div>
</div>
</body>
</html>
答案 3 :(得分:1)
在使用会话数组之前,应该放置session_start()
。
另外,代替<?php $loggenOnUser?>
尝试<?=$loggenOnUser?>
。
答案 4 :(得分:1)
如果你完成了回声和会话启动,这绝对需要完成,但仍然没有,那么看起来你什么都没有&#39;在针对该用户名的$ found_admin数组中
$_SESSION["username"] = $found_admin["username"];
你确定该阵列中有什么东西吗?你能打印$ found_admin数组吗?
答案 5 :(得分:1)
试试这个,你忘记了开头的session_start()
<?php
session_start();
?>
<!doctype html>
<head>
</head>
<body>
<?php
echo $_SESSION["username"];
$loggenOnUser=$_SESSION["username"];
?>
<div class="gridContainer clearfix">
<div id="div1" class="fluid">
This page is being called by my login.php file.</div><div id="LoggedInUser" class="fluid ">Hi. I'm <?php $loggenOnUser?> </div>
<img id="homeImage" src="images/home.gif" /> </div>
</div>
</body>
</html>