Php 传递会话变量,获取错误

Php 传递会话变量,获取错误,php,session-variables,Php,Session Variables,我试图将一个会话变量从一个页面传递到另一个页面,但下一个页面上的会话变量似乎为空。谢谢你的帮助 这是两页上的全部代码 mysql_connect($db_hostname, $db_username, $db_password); mysql_select_db($db_sitename); $pagename= $row_getDisplay['USER_NAME']; $query=mysql_query("SELECT * FROM COMMENTS WHERE COMMENT_ON='

我试图将一个会话变量从一个页面传递到另一个页面,但下一个页面上的会话变量似乎为空。谢谢你的帮助

这是两页上的全部代码

mysql_connect($db_hostname, $db_username, $db_password);
mysql_select_db($db_sitename);
$pagename= $row_getDisplay['USER_NAME']; 
$query=mysql_query("SELECT * FROM COMMENTS WHERE COMMENT_ON='$pagename' LIMIT 0, $no_of_comments");
echo "<hr />";

echo "<h3>Latest Comments</h3>";
session_start();
$count = 0;
while($fetch=mysql_fetch_array($query)) 
{

  echo "<p>".$fetch['COMMENT']."<a href=delete_comment.php?count=".$count.">X</a><br/><sub><b>Comment by: </b>".$fetch['COMMENT_BY']."</sub><hr /><p>";
  $_SESSION[strval($count)]=$fetch['COMMENT'];
  //echo $_SESSION[strval($count)];
  $count = $count + 1;

  print_r($_SESSION);
}
mysql_close();

我相信这是因为您在$\u会话中使用了数字键。我在当地试用过,在第一页上看到了这样的通知:

Notice: Unknown: Skipping numeric key 0 in Unknown on line 0
在收到通知后,我也看到了这个bug报告

如果您这样做,它不会引起注意,并且会正确地传递变量:

$_SESSION['keyName'][strval($count)]=$fetch['COMMENT'];
编辑:谢谢你给我提供了这些信息

他的评论如下:

据介绍,$\u会话数组中的键受 与PHP中的常规变量名相同的限制,即 不能以数字开头”。我想这是一个副作用 全球注册。奇怪的是,这些文件不再说明这一点。也许 在启用register_globals选项时,此限制被删除 在PHP5.4.0中删除

详细说明一下,它不适用于register\u globals的原因是因为PHP如何处理超级全局变量,例如$\u SESSION。使超级全局变得特别的一点是,它存在于所有作用域中,而不需要使用“global”关键字。另一件事是它自动为所有子元素创建变量。。。同样在所有范围内。所以如果你有
$\u会话['username']='Levi'

这将创建一个额外的变量$username,它等于“Levi”。因此,在上面的示例中,当您设置
$\u会话[1]=“测试”


PHP将尝试设置一个变量$1='Test'

您能否在第一个脚本结束时进行打印(美元会话)?可能您实际上没有在会话开始()之后的第二个文件上设置索引“0”和打印($\u会话)?在第二个文件上设置数组([0]=>sdlkfjasdf):数组()0@NikkiGrinberg那么错误就在某个地方,但不在我们看到的代码中。+1很好的发现。根据“SESSION
数组中的键与PHP中的常规变量名受相同的限制,即它们不能以数字开头”。我想这是全球注册的副作用。奇怪的是,这些文件不再说明这一点。在PHP5.4.0中删除了
register\u globals
选项后,这个限制可能被删除了。感谢您的后续工作:)这很有趣,也很好。我想我永远也找不到那一点信息。
Notice: Unknown: Skipping numeric key 0 in Unknown on line 0
$_SESSION['keyName'][strval($count)]=$fetch['COMMENT'];