PHP会话未被传递

时间:2015-03-27 01:26:33

标签: php session authentication forms-authentication

我正在为我的学校用户名和密码进行身份验证。学校有自己的后端脚本用于表单POST。它允许一些具有特定名称的隐藏输入进行自定义,例如,页面重定向成功。但是,我不能在该页面上有任何session_start()或任何我的PHP代码,因为在login.php之后,登录页面被重定向到学校页面,然后被重定向回我的{{1 }}。 post值传递到index.php,但在页面刷新时,它会返回登录页面,因为会话未保存为post值。

对此的任何帮助都会非常有帮助。

的index.php

index.php

的login.php

<?php
session_start();
$_SESSION['username'] = $_POST['sid'];
if(!isset($_SESSION['username'])){
header("Location: login.php");
} else {
?>
// HTML here
<?php
}
?>

2 个答案:

答案 0 :(得分:3)

如果您未将发布数据发送到index.php页面,则以下行将清除用户名会话值。

$_SESSION['username'] = $_POST['sid'];

答案 1 :(得分:0)

您必须在每个需要检查其是否已登录的文件的顶部包含sessions_start();

在login.php的顶部放置一个if语句,以检查它们是否存在会话。如果是,则重定向到index.php。

在index.php的顶部检查他们是否使用if语句登录。如果没有,则继续使用index.php的其余部分(否则为{}),然后将它们重定向到login.php

在login.php脚本中运行检查和身份验证后设置SESSION。您可以设置如下会话:

$_SESSION['userid']     = $id;
$_SESSION['username']   = $name;
$_SESSION['userpass']   = $pass;

请务必在index.php的顶部添加session_start();,并检查它们的会话是否等同于登录用户。