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();
}
我目前有一个 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();
}