SESSION 变量未通过其他站点传输

SESSION variable not transmitted over other site

我的网络应用程序上有两个页面,都可以使用相同的域访问。它们在不同的文件夹中。都使用Session,但是第二页访问不到session

我真的不明白为什么...

这是我网站的第一行:

我创建的页面创建了所有会话变量(login.php

<!DOCTYPE html>
<?php
session_start();
ini_set("display_errors", 1);
...
...

会话未传输到的页面(image.php):

<!DOCTYPE html>
<?php
session_start();
if(!isset($_SESSION['general_email']) || $_SESSION['orga_ang'] != 1) {
 echo "<meta http-equiv='refresh' content='0; URL=login.php? 
 src=account.php'>";
 die();
}
...
...

正如我所说,两个站点都可以在同一域下访问,但我创建登录的站点位于不同的文件夹中,从 login.phpimage.php 的路径是 ../assets/modules/images/showimage.php

为什么我无法访问 image.php 中的会话变量?

o在其他页面上我可以访问 $_SESSION 变量,只有在 image.php 上不能。

您必须在任何其他输出(包括您的 doctype 语句)之前调用 session_start。变化

<!DOCTYPE html>
<?php
session_start();

<?php
session_start();
?>
<!DOCTYPE html>

删除图像 session_start() 之前的任何输出 php

<?php
   session_start();
?>
<!DOCTYPE html>
<?php
  if(!isset($_SESSION['general_email']) || $_SESSION['orga_ang'] != 1) {
  echo "<meta http-equiv='refresh' content='0; URL=login.php? src=account.php'>";
  die();
  }
  ...

如果您总是不知道发生了什么,您可以使用错误报告功能。

error_reporting(1)

顺便说一句。这是什么?

echo "<meta http-equiv='refresh' content='0; URL=login.php?src=account.php'>";

平均值:

?src=account.php