【发布时间】: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() 将运行每个您还没有提交表单的时间。
标签: php session phpmyadmin session-variables session-cookies