【问题标题】:How to call php variable from another php page如何从另一个php页面调用php变量
【发布时间】:2013-08-06 12:41:14
【问题描述】:

嗨,我有表单 php 页面的三个步骤,Form1 用户将填写数据并将此变量携带到 Form2 页面并执行数据库{Ins​​ert,Update}。Form2 再次传递他们填写的用户变量以及Form1 变量到 form3。我的问题是如何将 Form1 变量传递给 Form3。

Form2

//variable from Form1
$calendar_id_val = $_GET['calendar_id']; 
$calendar_name = $_GET['$calendar_choose_name'];
$calendar_type = $_GET['calendar_type'];

然后 Perfrom Database Select 并将结果显示给 Form2。用户选择并填写 form2 后。将变量传递给 Form3。

Form3

$current_month =  $_GET['month']; //Variable from Form2

我尝试使用 SESSION 调用 Form1 变量

$_SESSION['calendar_id_val'] = $_GET["calendar_id_val"];
$calendar_id = $_SESSION['calendar_id_val'] ; 

但它不起作用。如何从 Form3 调用 Form1 变量。我使用了 GET 方法。

【问题讨论】:

  • 隐藏字段或会话。如果您正在使用会话,请确保在尝试访问/设置任何会话变量之前使用 session_start();
  • 您必须设置会话。使用session_start() 开始使用会话。阅读有关会议的信息:php.net/manual/en/features.sessions.php
  • $_SESSION['calendar_id_val'] = $calendar_id_val;并开始会话。在 Form3 中,为什么要使用 $_GET 获取 calendar_id_val 并存储在 $_SESSION 中。您是从 Form2 发送 calendar_id_val 值吗??

标签: php database global-variables session-variables


【解决方案1】:

您似乎不太了解变量在内存中的保留时间。在 PHP 中,一旦脚本完成,该脚本分配的所有内存都会被释放,因此$calendar_id_val 不再在内存中。
如果您想在用户下一次发布表单(下一个请求)时使用表单中的值,那么您已经完成了一半,请尝试:

session_start();
$calendar_id_val = $_GET['calendar_id'];
$_SESSION['calendar_id_val'] = $calender_id_val;

在您可以使用会话之前,您必须始终致电session_start。假设在处理完第三种表单后无需保留数据,session_destroy 值得一看。但无论如何,在会话中存储数据后,只要会话有效,您就可以使用 id 值。 check the manual for more on sessions.
你也可以使用 cookie。由于您使用的是 GET,我认为您不会传递任何敏感或关键数据,so setcookie 也可以完成这项工作。然后使用$_COOKIE 超全局引用值。

请注意,建议使用会话,因为会话将数据存储在服务器端,而 cookie 存储在客户端计算机上。这使得它们易受攻击(可以调整)并且不可靠(客户端可以禁用/拒绝您的 cookie)

和往常一样,如果我没有链接到我提到的所有功能,请转到 http://www.php.net/<functionName> 了解详情

【讨论】:

    【解决方案2】:

    session_start(); 放入页面顶部1 行1 列

    session_start();
    $calendar_id_val = $_GET['calendar_id'];
    $_SESSION['calendar_id_val'] = $calender_id_val;
    

    【讨论】:

      【解决方案3】:

      您应该在使用之前启动会话。

      像这样在form1页面中分配会话变量

      session_start();
      $_SESSION['calendar_id_val'] = $_GET["calendar_id_val"];
      $calendar_id = $_SESSION['calendar_id_val'] ; 
      

      并像这样访问 form2 页面中的会话变量

      session_start();
      echo $_SESSION['calendar_id_val'];
      

      .

      【讨论】:

      • 而不是复制现有答案,如果您同意,请对它们进行投票,或者将其保留...但是您在现有答案中添加之前没有说过什么?
      • ??您的评论内容为 “@Elias Van Ootegem”...我该怎么做?
      【解决方案4】:

      您可以尝试将其声明为全局。

      global $a;
      $a = $_GET['really'];
      

      【讨论】:

        猜你喜欢
        • 2013-08-05
        • 1970-01-01
        • 1970-01-01
        • 2019-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-20
        • 2015-12-17
        相关资源
        最近更新 更多