您好我有三步形式的php页面,Form1用户将填写数据并将此变量携带到Form2页面并执行数据库{Insert,Update}。再次使用Form2传递用户填写的变量以及Form1变量到form3.My的问题是如何将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选择并将结果显示给Form2.A用户选择并填写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方法。
答案 0 :(得分: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值。 check the manual for more on sessions。
你也可以使用cookie。既然你正在使用GET,我认为你无论如何都没有传递任何敏感或关键数据,so setcookie
也可以做到这一点。请使用$_COOKIE
super-global参考值,然后使用。
请注意,建议使用Sessions,因为会话存储数据服务器端,而cookie存储在客户端的计算机上。这使得它们易受攻击(可以调整)并且不可靠(客户端可以禁用/拒绝您的cookie)
与往常一样,如果我没有链接到我提到的所有功能,请转到http://www.php.net/<functionName>
了解详情
答案 1 :(得分:0)
将session_start();
放入页面顶部的第1行第1列
session_start();
$calendar_id_val = $_GET['calendar_id'];
$_SESSION['calendar_id_val'] = $calender_id_val;
答案 2 :(得分: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'];
答案 3 :(得分:-2)
您可以尝试将其声明为全局。
global $a;
$a = $_GET['really'];