【问题标题】:Passing PHP Session from Page 1 to Page 2将 PHP 会话从第 1 页传递到第 2 页
【发布时间】:2012-10-11 17:17:39
【问题描述】:

我的 Page1.php 顶部有以下内容。

<?php
    session_start();
    $_SESSION['ALL_YEAR'] = $_POST['ALL_YEAR'];
?>

当按下此按钮时,我正在尝试捕获名为 ALL_YEAR 的选择的表单选择:

<button type="button" value="Send" id="avgSubmitXLEW_1_12_3" onClick="location.href=this.value">Configure</button>

在 Page2.php 我有这个在顶部:

<?php
    session_start();
    $home = $_REQUEST['ALL_YEAR'];
?>

在页面正文的更下方,我有这个:

<? echo $_session['home'];?>

该值未显示在回声中?我做错了什么?

【问题讨论】:

  • 始终在代码开头使用&lt;?php 而不是&lt;?。并非所有服务器都启用了短标签。
  • 仅供参考,$_session 与 $_SESSION 不同。案件很重要。
  • 另外,您使用的 $_REQUEST 是一个超级全局变量,可能会引发一些安全问题。虽然您的代码可能不会因其当前目的而受到影响,但最好还是避免它。
  • $_REQUEST 的唯一潜在问题是服务器是否允许在此变量中包含 cookie,这不是默认情况下的。

标签: php session session-variables


【解决方案1】:

而不是:

$home = $_REQUEST['ALL_YEAR'];
...
<? echo $_session['home']; ?>

你应该这样做:

$home = $_SESSION['ALL_YEAR'];
...
<?php echo $home; ?>

【讨论】:

  • 始终在代码开头使用&lt;?php 而不是&lt;?。并非所有服务器都启用了短标签。
【解决方案2】:

PHP 变量名区分大小写:

 <? echo $_session['home'];?>

应该是

 <? echo $_SESSION['home'];?>

【讨论】:

  • 没有键是SESSIONhome
  • 如果您没有访问实际的 SESSION,那么会话中的密钥是什么无关紧要...
猜你喜欢
  • 2013-02-26
  • 2014-03-22
  • 1970-01-01
  • 2018-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-13
  • 2021-03-24
相关资源
最近更新 更多