PHP SESSION 无法从 GET 表单变量中存储变量

Posted

技术标签:

【中文标题】PHP SESSION 无法从 GET 表单变量中存储变量【英文标题】:PHP SESSION cant store variable from GET form variable 【发布时间】:2021-09-07 19:52:19 【问题描述】:
<?
session_start();

 $_SESSION['name'] = "$_GET["name"]";
 $_SESSION['email'] = "$_GET["email"]";
 $session_id=session_id();
 
echo"$session_id <br>  $_SESSION['name'] <br> $_SESSION['email']";

?>

我正在尝试使用 GET 方法创建一个会话来存储访问者输入表单,我不能使用 POST,因为该表单是由 wordpress 插件处理的,并且客户端只给了我 GET 选项。问题是:

    在第 #1 页,这是我们提交表单后的页面,显示回显完成。 在第 2 页,我已经在顶部添加了 session_start();,但 $_SESSION['name'] 和 $_SESSION['email'] 保持为空(更改页面),但 $session_id 已存储并显示相同。

我错过了什么?或者 $_SESSION 不能存储 $_GET?

【问题讨论】:

$_SESSION['name'] = "$_GET["name"]"; 甚至在语法上都不是有效的,这只会给你一个解析错误。 “在第 1 页,这是我们提交表单后的页面,回显显示完成” - 不,不是您向我们展示的 那个 代码,因为那赢了甚至不执行。 @LawrenceCherone 我不能使用 POST,因为表单是由 wordpress 插件处理的,客户端只给了我 GET 选项哈哈哈 @CBroe 是的,它可能是错的,对不起,我在 php 中不是很好,在真正的 .php 脚本中我这样做了:$email_=$_GET['email']; $_SESSION['email'] = "$email_"; 感谢@DamianDziaduch 的支持_/_ 【参考方案1】:

因此,在第一页上,您保存用户输入的值,它按预期工作。

但是,当您转到第二页时,您的代码将使用新变量覆盖会话,在这种情况下这些变量是空的。在为会话分配任何内容之前,您应该检查它是否不为空/有效。

对于这个简单的代码,我建议通过 isset / array_key_exists 函数进行检查。

【讨论】:

谢谢!是工作! $email_=$_GET['email']; if (isset($email_)) $_SESSION['email'] = "$email_";我知道了,所以需要先检查然后注册,以后如果为空,它会先检查。谢谢达米安_/_

以上是关于PHP SESSION 无法从 GET 表单变量中存储变量的主要内容,如果未能解决你的问题,请参考以下文章

PHP初学者必须掌握的10个知识点

无法从 PHP 中的 HTML 表单获取 POST 值

php面试宝典

PHP表单- PHP $_GET 变量

php面试题2

PHP基础题