0

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

表格2

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

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

表格3

$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 方法。

4

4 回答 4

0

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

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

在您可以使用会话之前,您总是需要调用session_start. 假设在处理完第三种表单后不需要保留数据,那么session_destroy值得一看。但无论如何,在会话中存储数据后,只要会话有效,您就可以使用 id 值。查看手册以获取有关会话的更多信息
你也可以使用 cookie。由于您使用的是 GET,我认为您不会传递任何敏感或关键数据,因此setcookie也可以完成这项工作。$_COOKIE然后使用超全局引用值。

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

与往常一样,如果我没有链接到我提到的所有功能,请转到http://www.php.net/<functionName>详细信息

于 2013-08-06T12:46:34.717 回答
0

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

session_start();
$calendar_id_val = $_GET['calendar_id'];
$_SESSION['calendar_id_val'] = $calender_id_val;
于 2013-08-06T12:47:19.343 回答
0

您应该在使用之前开始会话。

像这样在 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'];

.

于 2013-08-06T12:49:57.837 回答
-2

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

global $a;
$a = $_GET['really'];
于 2013-08-06T12:50:29.177 回答