【问题标题】:PHP Passing a variable to another page then pass it back to the original pagePHP将变量传递给另一个页面,然后将其传递回原始页面
【发布时间】:2014-03-23 08:33:15
【问题描述】:

这有点难以解释。我想知道如何将字符串存储到变量中并将其传递给下一页,然后在下一页中将该变量再次传递给另一个变量,然后该变量会将其传递回原始页面。

示例:

我有两个 PHP 页面。让我们称它们为 form1.phpform2.php

在form1.php中,我会输入Hello,它会存储在var1中。

var1 将被发送到 form2.php 并存储在 form2.php 中的 var2 中。

在 form2.php 中,var2 被传递给 var3,而 var3 将被发送回 form1.php。

并使用 var3 而不是 var1 在 form1.php 中输出 Hello

这就是我卡住的地方。无法弄清楚如何做到这一点。如果问题有点模糊,请发表评论,即使我自己似乎也无法弄清楚。谢谢。

【问题讨论】:

  • 为什么会有这么多变数和混乱。只需为此目的使用Sessions
  • 这在我看来是多余的。
  • 你想达到什么目的,也许有更好的方法。
  • 您需要将数据存储在 session 或 cookie 中,以便在各种 http 请求中访问它

标签: php


【解决方案1】:

您想使用会话。通过会话,您可以将变量传递到不同的页面。

您必须在两个页面上都开始会话。

 session_start();

之后,您可以将变量存储在会话中。

例如:

$var1 = $_SESSION['name'];

现在您可以通过 session_start(); 在每个页面中使用 IT;

【讨论】:

  • +1 - 我正要对会话说同样的话。我只想说代码应该是$var1 = $_SESSION['name'];
  • 抱歉拼写错误。我在手机上自动更正
【解决方案2】:

据我了解,您需要两种表单将数据从第一个发送到第二个,然后从第二个发送回第一个。在这个通信中,你不需要第三个变量,这个怎么样?

form1.php

<form method=POST action="form2.php">
  <input type="text" name="var1" value="<?=@$_POST["var2"];?>">
  <input type="submit" value="Continue">
</form>

form2.php

<form method=POST action="form1.php">
  <input type="text" name="var2" value="<?=@$_POST["var1"];?>">
  <input type="submit" value="Continue">
</form>

【讨论】:

    【解决方案3】:

    我的理解是,您希望在两个不同的表单之间传递一些数据 - 您需要考虑这些表单彼此完全独立,因此您需要将数据传递回浏览器或利用服务器端会话。

    根据您的用例,您可以:

    提交数据到 form1.php - 这将返回一个带有附加字段的表单,准备好提交到 form2.php

    这里的技巧 - 需要在表单之间传递的数据将作为隐藏元素包含在第二个表单的生成中。

    <input type="hidden" id="var1" value="data from form1" />
    

    您可以拥有任意数量的隐藏类型。

    请注意,这种方法不是很安全 - 因此您可能需要考虑防御措施,例如csrf - 或使用会话并在服务器端跟踪数据。

    【讨论】:

      【解决方案4】:

      如果您实际使用表单,那么您应该能够获取 $_GET 或 $_POST 中的变量值(取决于表单使用的方法)。您可以将值存储在用户看不到的隐藏输入中并使用它来传递东西:

      &lt;input type = "hidden" value = "&lt;?php echo $_GET['var2'];?&gt;" /&gt;

      如果这不是您需要的,您可能需要查看sessions 以维护整个站点的状态。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-29
        • 1970-01-01
        • 1970-01-01
        • 2012-01-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多