Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用.(点)连接在$u会话中定义索引_Php_Session_Post_Indexing - Fatal编程技术网

Php 使用.(点)连接在$u会话中定义索引

Php 使用.(点)连接在$u会话中定义索引,php,session,post,indexing,Php,Session,Post,Indexing,如果我在未提交的情况下设置$\u会话索引,我会收到一个PHP通知。 想知道是否有解决办法 公告: PHP注意:未定义索引:bar PHP 验证过程停止表单提交,将表单数据保存到数据库并重新加载页面。$\u会话['bar']显示了正确的值,但我在日志中得到了一个通知。想要停止通知 这里是var_dump() 正如你所看到的,一切都已准备就绪 和我原来的问题有一点不同,我是这样设置的 $_SESSION['bar'] .= 'foo'; 使用。(点)连接。当我取下它时,通知就消失了 拍桌子的头 一

如果我在未提交的情况下设置$\u会话索引,我会收到一个PHP通知。 想知道是否有解决办法

公告:

PHP注意:未定义索引:bar

PHP

验证过程停止表单提交,将表单数据保存到数据库并重新加载页面。$\u会话['bar']显示了正确的值,但我在日志中得到了一个通知。想要停止通知

这里是var_dump()

正如你所看到的,一切都已准备就绪

和我原来的问题有一点不同,我是这样设置的

$_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)
,你会看到
索引吗?