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的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 中使用 FPDI 在页面上生成多个 pdf

一个页面上有多个表单,并决定使用 PHP 提交哪个表单?

多个php在一个页面中设置

php 在页面上使用多个循环,不打印重复的帖子

php一个表单提交多个页面,怎样获取按钮提交过来的值

PHP会话不适用于多个WordPress页面