php - PHP会话未显示值
问题描述
<?php
session_start();
?>
<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="pageContainer">
<form action="second.php" class="formLayout" method="post">
<div class="formGroup">
<label>Name:</label>
<input type="text" name="first_name"><br>
<input type="hidden" name="postback" value="true"><br>
</div>
<div class="formGroup">
<label> Car model:</label>
<div class="formElements">
<input type="radio" name="model" value="Mustang">Ford Mustang<br>
<input type="radio" name="model" value="Subaru">Subaru WRX STI<br>
<input type="radio" name="model" value="Corvette">Corvette<br>
</div>
<input type="submit" name="submit">
</form>
<?php
if (isset($_POST['submit'])) {
$_SESSION["first_name"] = $_POST["first_name"];
$_SESSION["model"] = $_POST["model"];
}
?>
</div>
</body>
</html>
我设置我的代码以将“first_name”和“model”名称的值设置到我的会话变量中。
当我尝试访问表单提交页面中存储变量的值时:
<?php
session_start();
?>
<html>
<body>
<?php
echo $_SESSION["first_name"];
echo $_SESSION["model"];
?>
</body>
</html>
我只收到模型值之外的值,而不是 first_name 值。我不明白我在这里做错了什么。
解决方案
假设您的第一个文件名为first.php
. 如您所示<form>
,第二个是second.php
.
似乎您正在将数据写入first.php
文件中的会话,但是此代码将永远不会运行,因为您将表单提交给second.php
而不是first.php
!
因此,请移动写入会话变量的代码second.php
。要测试它是否真的有效,您可以创建一个third.php
来显示它们。
(我不知道为什么要看到这个model
集合,但我猜你之前的测试中它仍然存在。)
推荐阅读
- python - 遍历python中的任意嵌套数组并更改匹配值
- javascript - 发送请求后,Firebase http 无法设置标头
- java - 有没有更好/更短的语法?
- google-chrome-extension - 使用范围 = 名称电子邮件在 chrome 扩展中使用 Apple 登录
- python - 我该如何解决这个问题 pymongo.errors.OperationFailure?
- hadoop - 带有 Iceberg 和 S3 的独立 Hive Metastore
- sql - 用户“示例”未通过身份验证(对等)
- java - 为什么我的值没有被正确更新和传递?
- python - 而真正的循环实际上并不循环
- c++ - 需要帮助理解 FFT 算法中的这一行