PHP 会话未通过
PHP Session not being passed
我正在为我的学校用户名和密码进行身份验证。学校有自己的后端脚本用于表单 POST。它允许一些具有特定名称的隐藏输入进行自定义,例如,成功时页面重定向。但是,我不能在那个页面上有任何 session_start()
或我的任何 php 代码,因为在 login.php
之后,登录页面被重定向到学校页面,然后又被重定向回我的 index.php
。 post 值传递给 index.php
但在页面刷新时,它会返回到登录页面,因为会话未使用 post 值保存。
这方面的任何帮助都会很有帮助。
Index.php
<?php
session_start();
$_SESSION['username'] = $_POST['sid'];
if(!isset($_SESSION['username'])){
header("Location: login.php");
} else {
?>
// HTML here
<?php
}
?>
Login.php
<form action="authenticator.pl" name="form1" method="POST">
// Using hidden inputs I specify which page to redirect to... These are specific hidden inputs that are accepted.
</form>
您必须在每个文件的顶部包含 sessions_start();
以检查他们是否已登录。
在 login.php 的顶部放置一个 if 语句来检查它们是否存在会话。如果是,则将重定向到 index.php.
在 index.php 的顶部检查他们是否使用 if 语句登录。如果他们然后继续 index.php 的其余部分,如果不是 (else {}),则将他们重定向到 login.php
在 login.php 脚本中 运行 检查和身份验证后设置 SESSION。您可以像这样设置会话:
$_SESSION['userid'] = $id;
$_SESSION['username'] = $name;
$_SESSION['userpass'] = $pass;
只需确保在 index.php 的顶部添加 session_start();
并检查它们的会话是否等同于登录用户。
如果您不向 index.php 页面发送 post 数据,则以下行将清除用户名会话值。
$_SESSION['username'] = $_POST['sid'];
我正在为我的学校用户名和密码进行身份验证。学校有自己的后端脚本用于表单 POST。它允许一些具有特定名称的隐藏输入进行自定义,例如,成功时页面重定向。但是,我不能在那个页面上有任何 session_start()
或我的任何 php 代码,因为在 login.php
之后,登录页面被重定向到学校页面,然后又被重定向回我的 index.php
。 post 值传递给 index.php
但在页面刷新时,它会返回到登录页面,因为会话未使用 post 值保存。
这方面的任何帮助都会很有帮助。
Index.php
<?php
session_start();
$_SESSION['username'] = $_POST['sid'];
if(!isset($_SESSION['username'])){
header("Location: login.php");
} else {
?>
// HTML here
<?php
}
?>
Login.php
<form action="authenticator.pl" name="form1" method="POST">
// Using hidden inputs I specify which page to redirect to... These are specific hidden inputs that are accepted.
</form>
您必须在每个文件的顶部包含 sessions_start();
以检查他们是否已登录。
在 login.php 的顶部放置一个 if 语句来检查它们是否存在会话。如果是,则将重定向到 index.php.
在 index.php 的顶部检查他们是否使用 if 语句登录。如果他们然后继续 index.php 的其余部分,如果不是 (else {}),则将他们重定向到 login.php
在 login.php 脚本中 运行 检查和身份验证后设置 SESSION。您可以像这样设置会话:
$_SESSION['userid'] = $id;
$_SESSION['username'] = $name;
$_SESSION['userpass'] = $pass;
只需确保在 index.php 的顶部添加 session_start();
并检查它们的会话是否等同于登录用户。
如果您不向 index.php 页面发送 post 数据,则以下行将清除用户名会话值。
$_SESSION['username'] = $_POST['sid'];