2013-08-06 66 views
0

嗨我有三个形式的PHP页面,Form1用户将填写数据并将此变量带到Form2页面并执行数据库{Ins​​ert,Update}。并再次Form2传递他们的变量,用户填写,Form1变量的form3.My问题是如何将Form1变量传递给Form3。如何从另一个php页面调用php变量

窗体2

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

然后借此在数据库中选择,并显示结果给用户Form2.After选择并填写窗口2 .Pass变量的Form3。

Form3

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

我打电话Form1的变量,SESSION

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

但忽略了最低的工作。如何从Form3调用Form1变量。我使用GET方法。

+0

隐藏的字段或会话。如果您正在使用会话,请确保在尝试访问/设置任何会话变量之前使用'session_start();'。 – Novocaine

+0

您必须设置会话。使用'session_start()'开始使用会话。阅读关于会议的这个:http://php.net/manual/en/features.sessions.php –

+0

$ _SESSION ['calendar_id_val'] = $ calendar_id_val; 并做开始会话。为什么你使用$ _GET获取calendar_id_val并存储在$ _SESSION中。你是否从Form2发送calendar_id_val值? – Priya

回答

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的值。

请注意,建议使用会话,因为会话存储数据服务器端,而cookie存储在客户端的机器上。这使得他们很容易(可以与回火)和不可靠的(客户端可以禁用/拒绝您的Cookie)

与往常一样,如果我没有链接到我提到的所有功能,只是去http://www.php.net/<functionName>的细节

0

session_start();到你的页面顶部1row 1列

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

您在使用前应启动会话。

分配在Form1网页会话变量这样

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

和访问会话变量窗口2页这样

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

+0

而不是复制现有的答案,如果你同意的话可以提高他们的评价,或者把它留在那个......但是你对现有的答案有什么不同? –

+1

??您的评论是_“@ Elias Van Ootegem”_...我该怎么做? –

-2

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

global $a; 
$a = $_GET['really']; 
相关问题