PHP 脚本在一个站点上有效,但在其他同一服务器上无效

PHP Script works on one site but not other, same server

我目前有一个 cPanel 服务器,我有一个域 site1.com 我们使用 cPanel 在服务器上创建了新网站。问题是我们的脚本用于在同一 cPanel 服务器上的测试站点“site2.com”上创建站点 运行,但在新站点 site1.com

如果在 EditPage.php 中将问题缩小到第 18 行:

header("Location: Login.php?Page=$PageToEdit"); 

我在服务器上可以看到的唯一区别是“site1.com”在 cPanel 中是 运行ning“PHP7.4 PHP-FPM”和“site2.com” “PHP7.4” 无法在 cPanel 中打开或关闭“PHP-FPM” 所以决定为某些站点打开它而不是对于其他人?为什么它甚至需要没有意义。我是新手所以请具体谢谢!

SERVER:
cPanel Version  98.0 (build 6) - 
Apache Version  2.4.48 - 
PHP Version 7.4.22 - 
MySQL Version   10.3.31-MariaDB - Architecture  x86_64 - 
Operating System    linux - 
Kernel Version  3.10.0-1062.1.1.el7.x86_64

PHP 失败的脚本:

// (A) START SESSION
session_start();
 
// (B) LOGOUT REQUEST
if (isset($_POST['logout'])) { unset($_SESSION['user']); }
 
// (C) REDIRECT TO LOGIN PAGE IF NOT LOGGED IN
if (!isset($_SESSION['user'])) {
  header("Location: Login.php?Page=$PageToEdit");
  die();
}

这是因为会话没有被破坏。我们可以使用这些函数取消设置会话。

session_destroy();
$_SESSION = [];

现在可以使用了。你的代码应该像这样

// (A) START SESSION
session_start();

 // (B) LOGOUT REQUEST
if (isset($_POST['logout'])) { unset($_SESSION['user']); 
 session_destroy(); $_SESSION = []; }

 // (C) REDIRECT TO LOGIN PAGE IF NOT LOGGED IN
 if (!isset($_SESSION['user'])) {
     header("Location: Login.php?Page=".$PageToEdit);
     die();
 }