PHP Require 和 HTTP 请求的问题

GhostCoder
  • 320

刚遇到个非常不明白的问题:

# 文件 A.php
...
各种代码
...
# 文件 B.php
...
require_once __DIR__ . "/../public/A.php";
die("b");
...

然后我请求 B 文件的路由后一直报错:图片描述

然后修改 B 文件:

# 文件 B.php
...
die("AAAA");
require_once __DIR__ . "/../public/A.php";
die("b");
...

就能 die() 出来了,我就很奇怪难道这包文件还有什么特殊讲究么,因为我用 POSTMAN 去测试怎么样都 OK,唯独在 PHP 里写 HTTP 请求会发生这种情况,实在不明白望赐教

回复
阅读 1.5k
4 个回答

嗯首先感谢热心解答的兄弟们,现在搞定了问题是出在:发起请求的时候我为了实现使用相同 session 的效果把 Cookie: PHPSESSID=.... 这个PHP用于会话的头带上了,估计不能存在相同的会话标识导致PHP无法处理(猜测),最后直接把请求方的 session 转化为 json POST过去,接收方收到参数将其转化为新会话

PHP的执行顺序是:

  1. 由上到下由左到右执行的
  2. 遇到文件加载递归1->2

你的错误提示是请求超时,所以

require_once __DIR__ . "/../public/A.php";
die("b");

这里没有走到die("b");就已经fetal error程序被中断了。

a.php里请求超时啊

你应该写

dirname(__DIR__)."/xx.php"
而不是
__DIR__ . "/../xx.php"
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏