首页 > 解决方案 > 我如何创建一个可以从任何文件访问的全局 php 变量

问题描述

所以我创建了一个导航栏并添加了类似的代码,这就是我所拥有的,


<ul>

some links

</ul>

<?php

if logedin == true) {
echo "you are loged in";
} else {
echo "please log in";
}

</nav>

现在这段代码的另一部分在另一个名为 account.php 的文件中,这不是我拥有的真实代码,但这是我用来演示的东西,

$logedin = true;

但是代码不起作用,并且变量没有显示在第一页(顶部的代码)上。我能做些什么?谢谢!

(编辑)我忘了说这个,但导航栏超过 1 页,问题和 idk 如何在超过 1 页上使用帖子。

标签: php

解决方案


指示某人是否已登录的值最好存储在 Session 中 - 然后它将在对不同脚本的请求之间(由同一用户)持续存在,但不是永久存在。

例如

登录.php

当用户成功登录后,设置一个变量

<?php
session_start(); //access the session

//...some code here to check username / password etc, and then if they are all ok, you can set them as logged in for the duration of the session....

$_SESSION["loggedin"] = true; //store a variable in the session

然后在home.php中,当用户访问此页面时,您可以检查会话以查看他们是否成功登录:

<?php
session_start();
$loggedIn = $_SESSION["loggedin"];

//if not logged in, redirect back to the login page and end the script
if ($loggedIn == false) {
  header("Location: login.php");
  exit();
}

//otherwise, continue as normal...

这里有关于会话如何工作的全面解释。


推荐阅读