PHP 在多个页面中使用 SESSION
Posted
技术标签:
【中文标题】PHP 在多个页面中使用 SESSION【英文标题】:PHP use SESSION in the multiple pages 【发布时间】:2018-03-26 05:33:52 【问题描述】:我有 1 个 SESSION 变量,将在插入登录表单并通过测试时加载。但是,该变量只能在一个页面中工作,当我单击包含相同文件的不同页面时,它不起作用。它仅适用于链接到表单的页面。我正在使用 post 方法。 sample.php
sample.php的开始代码
<?php
session_start();
require 'php/login_admin.php';
if (isset($_SESSION['admin']))
echo ' all html code ';
login_admin.php
的代码if ($username == $row['username'] && $password == $row['password'])
session_set_cookie_params(3000, "/");
$_SESSION['admin'] = 'open';
else
session_close();
echo "Wrong password and username!";
注意我对所有页面都进行了相同的设置,但我不知道为什么只有在 action 属性中直接链接到表单的页面才有效。
【问题讨论】:
session_start();
需要在您要使用会话的顶部的每个页面上。所以在您尝试访问会话数据的每个页面上添加它。同时从那里删除session_close();
。不需要
如果你在每个页面上都有这个 - 其他页面将导致你的用户用户名和密码测试失败,因为你在每个页面上运行它并关闭会话 - session_close() 将运行每个您还没有提交表单的时间。
【参考方案1】:
在您的所有其他页面上,您只需要测试管理员会话,如果失败则重定向到登录页面...或显示它...无论您决定什么。但是让我们假设我们去一个专门的管理员登录页面找乐子......
所以在所有其他页面上...除了登录页面...
<?php
session_start();
// Is the admin logged in?
if (!isset($_SESSION['admin']))
header("location:admin_login.php");
exit();
echo ' all html code ';
【讨论】:
以上是关于PHP 在多个页面中使用 SESSION的主要内容,如果未能解决你的问题,请参考以下文章