好的,我想要完成的是一个简单的登录页面(adminlogin.php),然后转到一个小的php文件(session.php),它启动一个php会话并将发布的数据存储在会话变量中。完成后,php文件重定向到管理菜单页面(adminmenu.php)。在菜单页面上,我要检查是否设置了任何会话数据,这将在没有登录的情况下停止对管理部分的访问。我的问题是,session.php页面似乎没有将post值分配给会话存储,因为我被重定向到登录页面。
登录码
<?php
require('header.php');
?>
<section class="results">
<form id="login" method="post" action="session.php">
<fieldset id="login">
<legend>Admin Login</legend>
<label for="username">Username:</label>
<input type="text" name="user" id="user" size="20"><br />
<label for="password">Password:</label>
<input type="password" name="pwd" id="pwd" size="20"><br />
<input type="submit" id="login" value="Login" />
</fieldset>
</form>
</section>
<?php require('footer.php')?>会话码
<?php
echo "start";
session_start();
$_SESSION['username'] = $_POST['user'];
$_SESSION['password'] = $_POST['pwd'];
require('header.php');
require('footer.php');
header("Location: adminmenu.php");
?>菜单代码
if(!isset($_SESSION['username'])) {
header("Location: adminlogin.php");
} else {
...
}发布于 2013-11-02 03:41:15
在session_start之前不能有任何输出,因为它必须设置头部。删除您的echo语句,我打赌它一定会工作的
发布于 2013-11-02 04:18:54
好的,我已经弄清楚了问题的所在。
session_start()需要在每个使用会话存储的页面上调用之前
我假设它只需要初始化一个会话,但它实际上用于调用存储中的所有会话变量,以便可以使用它们。
谢谢你的帮助
https://stackoverflow.com/questions/19738720
复制相似问题