php中未定义的索引(键)错误
首先,以下是文件的层次结构:php中未定义的索引(键)错误,php,ajax,Php,Ajax,首先,以下是文件的层次结构: system/ ...index.php ...core/ .......MasterView.php .......Test.php ...sources/ .......ajax/ ............ajaxtest.php .......js/ ............jstest.js and so on. index.php包括Test.php Test.php包含以下行: $GLOBALS['foo'] = 'foo'; // note 1 re
system/
...index.php
...core/
.......MasterView.php
.......Test.php
...sources/
.......ajax/
............ajaxtest.php
.......js/
............jstest.js
and so on.
index.php包括Test.php
Test.php包含以下行:
$GLOBALS['foo'] = 'foo'; // note 1
require(ROOT.'/core/MasterView.php'); // render master view.
MasterView.php包含简单的html标记,但调用system/sources/js/目录中的jstest.js
system/sources/js/目录中的jstest.js对ajaxtest.php进行了ajax调用
ajaxtest.php在system/sources/ajax/目录中包含以下行:
echo $GLOBALS['foo']; // note 2
在浏览器上运行index.php后,出现以下错误:
Undefined index: foo in ...ajax\ajaxtest.php ...
特别是指向注释2
行。我的问题是,当我在调用MasterView.php
之前在note1
行定义了foo
索引时,为什么php不识别它
PS:我知道上面的方法不是最好的方法,但我只是举例说明我的问题 编辑:
$\u SESSION['foo']
而不是$GLOBALS['foo']
,仅举一个我尝试过的解决方案。同样的错误也会发生。Php无法识别索引foo
通过使用cookies、数据库或.Spot-on创建某种类型的应用程序,您可以跨多个请求共享数据。一个可能的解决方案是将数据存储在$\u会话中。在PHPSession需要配置和具备先决条件中查找会话处理文档。实际上,它们将在您的情况下工作,但是,您需要确保客户端在每个请求中使用适当的会话标识符。将会话id添加到ajax请求。@NeigylR.Noval
$\u会话
和$GLOBALS
不能互换。请参阅编辑。会话也不起作用。Php仍然无法确定索引“foo”。如果您已经在原始请求中设置了该会话值,但无法在以后的请求中获得该值,则会话将中断。你需要先把它修好。可能仅仅在两个地方更改变量名是不够的。请参阅答案中指向sessions PHP手册的链接。确保将会话id与AJAX请求一起传递:Spot-on。一个可能的解决方案是将数据存储在$\u会话中。在PHPSession需要配置和具备先决条件中查找会话处理文档。实际上,它们将在您的情况下工作,但是,您需要确保客户端在每个请求中使用适当的会话标识符。将会话id添加到ajax请求。@NeigylR.Noval$\u会话
和$GLOBALS
不能互换。请参阅编辑。会话也不起作用。Php仍然无法确定索引“foo”。如果您已经在原始请求中设置了该会话值,但无法在以后的请求中获得该值,则会话将中断。你需要先把它修好。可能仅仅在两个地方更改变量名是不够的。请参阅答案中指向sessions PHP手册的链接。确保将会话id与AJAX请求一起传递: