php - session 变量未发送到下一页

标签 php mysql variables session

我试图为用户点击提交时在下拉菜单中选择的位置设置 session 变量。目标是将此变量传递到另一个 php 页面,以便我可以显示他们选择的下拉选项以及来自 MYSQL 表的与其关联的两个值。

下面是我的第一个 php 文件中的代码部分。它显示了根据 MYSQL 数据库的值列表创建的下拉列表,以及我尝试为所选选项设置 session 变量的位置。

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 变量进行显示。正如您所看到的,我输入了另一个变量用于测试目的。它应该显示“cat”,而且确实如此。

session_start();
echo $_SESSION['animal'];
echo $_SESSION['locations'];  

还需要注意的是,locationsprocessing.php 使用 header 运行重定向。但这实际上就是该文件的全部作用。

我错过了什么吗?我经历了无数次不同的尝试,并且一直盯着这段代码。我不明白为什么会这样

最佳答案

您需要在需要使用 session 的每个页面中启动 session :

<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_start();
  $_SESSION['locations'] = $_POST['locations'];
  $_SESSION['animal']   = 'cat';
} 

关于php - session 变量未发送到下一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22343145/

相关文章:

php - mysql 和 php 中的 AES 加密

php - Wordpress:将 if-else 语句插入 next_post_link()/previous_post_link() 参数?

PHP 和 Smarty 错误 : Trying to get property of non-object

PHP 无法连接到 Linux Apache/MYSQL Server [已编辑]

javascript - 如何在 Javascript 文件中包含使用 Jekyll 定义的液体/全局变量?

c - 如何使一个数组等于C中的另一个数组

javascript - 我想让一个变量看到它的值是另一个变量的名称并获取它的数组

php - strlen()==0 和 empty() 有区别吗?

mysql - 如何让空类别显示在此 SQL 选择中?

php - 从数据库中检索数据不适用于此代码