【问题标题】:PHP Script works on one site but not other, same serverPHP 脚本可在一个站点上运行,但不能在同一台服务器上运行
【发布时间】:2021-11-05 06:58:16
【问题描述】:

ˆ‘›‰œ‰€个 cPanel œŠ™Œˆ‘œ‰€个ŸŸ site1.comŒˆ‘们使” cPanel œœŠ™Šˆ›建†–‘™€‚—˜˜ˆ‘们”Žˆ›建™‚š„„šœœŒ€ cPanel œŠ™Šš„‹•™‚€œsite2.com€ŠŒŒ†没œ‰œ–™‚ site1.com АŒ

‚žœ已†—˜缩ˆ EditPage.php 中š„第 18 Œš

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

ˆ‘以œœŠ™Šœ‹ˆš„”€Œˆ˜€œsite1.com€œ cPanel 中Œ€œPHP7.4 PHP-FPM€Œ€Œ€œsite2.com€€œPHP7.4€没œ‰Šž•‰“€€œ PHP-FPM€œ cPanel 中‰“€ˆ–…—Œ‚ˆ˜€ˆ†š为Ÿ›™‚€Œ˜…–™‚‰“€ƒŸ为€ˆ”š‡œ€ƒ˜没œ‰„‰š„€‚ˆ‘˜–‰‹‰€以请…“谢谢

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();
}

€—˜讨论€‘š

  • ‚ˆ究Ÿ˜€ˆ起œ” - ‡š‘Ÿ你€Ÿ‡”™误———Ÿ
  • 没œ‰”™误˜—€‹€‹ˆ™页’Œ™个š œ线–‘™就˜™样€‚
  • "no error is throwed just get white page" - ™就˜为€ˆ你œ€Ž€Ÿ——–‡件š„ŽŸ›并确为‘™…置正确š„”™误Š‘Š级ˆ’Œ——记•€‚
  • ‚žœˆ‘…空š //header("Location: Login.php?Page=$PageToEdit"); //死ˆ‰;ƒ以€œ†˜€”ˆ•‡™•€‚ˆ‘€‡ˆ™†€œLogin.php€中š„‰€œ‰–以›ž˜€œHello€›œŸ„巩›…–”™误š„ƒ€€‚
  • ‚”该€š‡ cpanel ›Œ™›设置Œ€Œ˜›Žœ代中€‚˜œ‰Œˆ‘š„—˜˜š你Žœ€ŸœŠ™Šš„ž™…”™误——†—Ÿ‚太ƒ”ˆ 500 ”™误Œ†œ——中没œ‰任•ž™…—˜š„—•迹€‚

标签: php apache cpanel


【解决方案1】:

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

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();
 }

【讨论】:

  • OK 现在至少我们得到一个错误:警告:session_start():当第 13 行的 /domain.com/code/system/library/EditPage.php 中的标头已发送时无法启动会话警告:无法修改标头信息 - 标头已由 /home/domain/public_html/domain.com/code/system/library/EditPage 中的(从 /domain.com/code/system/library/EditPage.php:1 开始的输出)发送。第21行的php
  • 现在你在一个页面或文件中使用了 session_start() 函数两次。
  • 这是我所做的code // (A) 开始会话 //session_start(); // (B) 注销请求 if (isset($_POST['logout'])) { unset($_SESSION['user']); session_destroy(); $_SESSION = []; } // (C) 如果未登录则重定向到登录页面 if (!isset($_SESSION['user'])) { header("Location: Login.php?Page=".$PageToEdit);死(); }
  • GET:警告:无法修改标头信息 - 标头已由 /home//public_html/domain.com/code/system/library/EditPage.php:1 中的 /home 发送/smldesign/public_html/domain.com/code/system/library/EditPage.php 第 21 行
  • 已修复!从 Login.php 中删除了头文件 感谢 Mudassar!
猜你喜欢
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 2016-01-11
  • 2018-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-30
相关资源
最近更新 更多