Php 使用.(点)连接在$u会话中定义索引
如果我在未提交的情况下设置$\u会话索引,我会收到一个PHP通知。 想知道是否有解决办法 公告: PHP注意:未定义索引:bar PHP 验证过程停止表单提交,将表单数据保存到数据库并重新加载页面。$\u会话['bar']显示了正确的值,但我在日志中得到了一个通知。想要停止通知 这里是var_dump() 正如你所看到的,一切都已准备就绪 和我原来的问题有一点不同,我是这样设置的Php 使用.(点)连接在$u会话中定义索引,php,session,post,indexing,Php,Session,Post,Indexing,如果我在未提交的情况下设置$\u会话索引,我会收到一个PHP通知。 想知道是否有解决办法 公告: PHP注意:未定义索引:bar PHP 验证过程停止表单提交,将表单数据保存到数据库并重新加载页面。$\u会话['bar']显示了正确的值,但我在日志中得到了一个通知。想要停止通知 这里是var_dump() 正如你所看到的,一切都已准备就绪 和我原来的问题有一点不同,我是这样设置的 $_SESSION['bar'] .= 'foo'; 使用。(点)连接。当我取下它时,通知就消失了 拍桌子的头 一
$_SESSION['bar'] .= 'foo';
使用。(点)连接。当我取下它时,通知就消失了
拍桌子的头 一种方法是确保在两种情况下都设置了
$\u会话['bar']
:
if ($validation_condition) {
$_SESSION['bar'] = 'foo';
} else {
$_SESSION['bar'] = '';
}
或者,在显示代码中,您可以首先检查是否存在$\u会话['bar']
:
if (isset($_SESSION['bar'])) {
echo $_SESSION['bar'];
}
一种方法是确保在两种情况下都设置了
$\u会话['bar']
:
if ($validation_condition) {
$_SESSION['bar'] = 'foo';
} else {
$_SESSION['bar'] = '';
}
或者,在显示代码中,您可以首先检查是否存在$\u会话['bar']
:
if (isset($_SESSION['bar'])) {
echo $_SESSION['bar'];
}
通知只是说数组
$\u会话
没有名为'bar'
的索引。如果不确定该索引是否存在,则应检查它:
if (isset($_SESSION['bar']))
echo $_SESSION['bar'];
else
echo 'something else';
通知只是说数组
$\u会话
没有名为'bar'
的索引。如果不确定该索引是否存在,则应检查它:
if (isset($_SESSION['bar']))
echo $_SESSION['bar'];
else
echo 'something else';
很难说这个模糊的问题问了什么,但我敢打赌
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if($validation_condition) {
$_SESSION['bar'] = 'foo';
}
}
很难说这个模糊的问题问了什么,但我敢打赌
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if($validation_condition) {
$_SESSION['bar'] = 'foo';
}
}
只有当您试图阅读
$\u SESSION['bar']
且该通知不存在时,才应收到此通知,而不是在尝试设置它时。请确保读取值的任何代码都首先检查该值是否存在。只有在尝试读取会话['bar]$\u且该值不存在时,才应收到此通知,而不是在尝试设置该值时。确保所有读取该值的代码首先检查该值是否存在。发生的情况是您的PHP文件正在尝试获取会话
首先,在您将使用会话的每个地方声明以下内容:
session_start();
然后,根据您在文章中所展示的内容,您可以在PHP文件中执行以下操作:
session_start();
if(isset($_SESSION['bar']){
if ($validation_condition) {
$_SESSION['bar'] = 'foo';
} else {
$_SESSION['bar'] = '';
}
} else {
$_SESSION['bar'] = '';
}
这只是一个想法,但有一天我遇到了与您相同的错误,并且“isset”解决了我的问题。发生的是,您的PHP文件正在尝试获取会话 首先,在您将使用会话的每个地方声明以下内容:
session_start();
然后,根据您在文章中所展示的内容,您可以在PHP文件中执行以下操作:
session_start();
if(isset($_SESSION['bar']){
if ($validation_condition) {
$_SESSION['bar'] = 'foo';
} else {
$_SESSION['bar'] = '';
}
} else {
$_SESSION['bar'] = '';
}
这只是一个想法,但总有一天我会和你犯同样的错误,我会解决我的问题。。。。这是一个看起来很愚蠢的问题吗?我同意@Col.Shrapnel对我来说,设置会话和会话是否正确并不重要,但为什么我会收到通知?@Phill Pafford:通知应该有一个附带的行号。你能显示行号所指的代码(和周围代码)吗?您显示的PHP代码(
$\u SESSION['bar']='foo';
)没有引起注意。是的,行号指向我设置$\u SESSION['bar']的位置,在重新加载页面上,我可以看到我设置的会话。会话显示了正确的值,但是在日志中我得到了一个PHP通知,我想知道为什么。顺便说一句,它的示例代码“行号指向我设置$\u会话['bar']的位置”简单赋值永远不会引起关于左侧的通知。嗯。。。这是一个看起来很愚蠢的问题吗?我同意@Col.Shrapnel对我来说,设置会话和会话是否正确并不重要,但为什么我会收到通知?@Phill Pafford:通知应该有一个附带的行号。你能显示行号所指的代码(和周围代码)吗?您显示的PHP代码($\u SESSION['bar']='foo';
)没有引起注意。是的,行号指向我设置$\u SESSION['bar']的位置,在重新加载页面上,我可以看到我设置的会话。会话显示了正确的值,但是在日志中我得到了一个PHP通知,我想知道为什么。顺便说一句,它的示例代码“行号指向我设置$_会话['bar']的位置”简单赋值永远不会引起关于左侧的通知。我理解这一点,但我在会话中为bar设置的值显示正确。问题是我在日志中看到了PHP通知,我想知道如何摆脱它。如果调用var\u dump($\u SESSION)
,你看到bar
索引了吗?我知道,但是我在SESSION中为bar设置的值显示正确。问题是我在日志中看到了PHP通知,我想知道如何摆脱它如果你调用var\u dump($\u SESSION)
,你会看到条
索引吗?