【发布时间】:2014-04-16 02:14:07
【问题描述】:
当用户点击提交时,我正在尝试为下拉菜单中选择的位置设置会话变量。目标是将此变量传递给另一个 php 页面,以便我可以显示他们选择的下拉选项以及 MYSQL 表中与之关联的两个值。
下面是我的第一个 php 文件中的一段代码。它显示了从 MYSQL 数据库中的值列表创建的下拉列表,以及我尝试为所选选项设置会话变量的位置。
session_start();
<form action="/locationsprocessing.php" method="post">
<select id="locations" name="locations"><? echo $option; ?></select>
<input type="submit" value="Submit" name="submit" id="submit">
</form>
<?php
if (isset($_POST['submit'])) {
$_SESSION['locations'] = $_POST['locations'];
$_SESSION['animal'] = 'cat';
}
下面是我在第二页中调用会话变量进行显示的代码。如您所见,我输入了另一个变量用于测试目的。它应该显示“猫”,它确实如此。
session_start();
echo $_SESSION['animal'];
echo $_SESSION['locations'];
还需要注意,locationsprocessing.php 使用标头运行重定向。但这就是该文件的全部功能。
我错过了什么吗?我经历了无数不同的 tuts 等等,并且一直盯着这段代码。我不明白为什么会这样
【问题讨论】:
-
您是否在实际设置值的脚本中执行了 session_start() ?并在执行任何输出之前执行此操作?您必须在使用 $_SESSION 的任何地方都这样做。 PHP 无法神奇地及时返回并打开会话,因为您试图访问已在未调用 session_start() 的脚本中设置的会话变量。
-
很抱歉没有添加该部分。是的,我做了 session_start();在每个带有变量的页面上。我只是忘记在这部分代码中复制并粘贴它。我修改了上面的代码以反映它包含在我的代码中。
标签: php mysql variables session