2011-03-08 77 views
0

。我有三个PHP页面:从一个PHP到多个PHP传递参数

page1.php中 使page2.php page3.php

对我page1.php中有这样的代码:

<form id="try" method="post" action="page2.php"> 
Batch: <input id="batch" name="batch" type="text"/><br /> 
Dept: <input id="dept" name="dept" type="text"><br /> 
<input type="submit" /> 
</form> 
在page2.php中将我能够通过简单地使用 $_POST['batch']; and $_POST['dept'];

称他们使用插在了page1.php中值,但我婉

接下来做的是将批次和部门的值从page2.php传递给page3.php。或者可能从page1.php到page2.php,因为我认为它是一样的。

。请帮助!

session_start(); 
$_SESSION['batch'] = $_POST['batch']; 
$_SESSION['dept'] = $_POST['dept']; 

,然后: - 谢谢进阶

@ kjy112我很困惑,因为我使用

<form method="post"> 

,我应该通过以下首发上使page2.php我的会议使用

session_start(); 
$batch = $_SESSION['batch']; 

要在page3.php上使用它吗?

+0

它应该工作,如果你在会议中设置它。只要你确定session_start()' – kjy112 2011-03-08 20:41:11

+0

。好的另一个问题,在向浏览器输出任何东西之前必须调用session_start()的意思吗?如果我的目的是在SQL查询中使用批处理和分区,这也可以工作吗? – zerey 2011-03-08 20:56:27

+0

我不熟悉使用会话W /批处理和部门SQL查询(你是什么意思的部门?)。至于session_start,“要使用基于cookie的会话,必须在向浏览器输出任何内容之前调用session_start()。”基本上确保在使用会话之前调用该会话,并确保它在页面顶部。 – kjy112 2011-03-08 23:03:00

回答

3

Per @Crayon Violent:要使用基于cookie的会话,必须在向浏览器输出任何内容之前调用session_start()。

你需要使用PHP SESSION你可以获取/设置是这样的:

// page1.php 

session_start(); 
$_SESSION['myvar'] = 'test'; 

//page2.php 

session_start(); 
$myvar = $_SESSION['myvar']; 
echo $myvar; //should be test; 

//page3.php 
session_start(); 
echo $_SESSION['myvar']; //should give u test still 
+1

有一点需要注意的是,session_start()必须在任何输出之前出现,即使你想要使用它的所有页面上都有空格(除非你想使用输出缓冲,你不应该这样做) – 2011-03-08 20:14:56

+0

@CrayonViolent谢谢,我将在 – kjy112 2011-03-08 20:15:25

+0

中加上,请你再次查看我的问题,我有以下问题。 TNX! – zerey 2011-03-08 20:31:56

1

利用会话变量。

+0

+1用于扩充答案 – kjy112 2011-03-08 20:20:07

0

您可以在$ _POST值保存到$ _SESSION变量:

$_SESSION['POST'] = $_POST; 
+0

。这意味着我可以使用类似 session_start(); $ _SESSION ['batch'] = $ _POST ['batch']; $ _SESSION ['dept'] = $ _POST ['dept']; – zerey 2011-03-08 20:46:30

+0

是的,你可以做到这一点 – Neal 2011-03-08 21:14:13

0

之一,从一个脚本移动到另一个值的方式,并无需担心哪个脚本以什么顺序访问,是使用一个session

当你的脚本启动时,你打开会话。这使您可以访问$ _SESSION超全局,如$ _POST。您可以在一个脚本中写入$ _SESSION数组并在另一个脚本中读取它。这一切都在服务器上处理,因此您可以将所需的任何数据存储到会话中,而无需担心用户看到此数据。它非常有用,通常与多部分表单,登录网站一起使用,并跟踪用户在用户访问的页面上的用户选择。

0

在评论

你是什么在session_start(意味着只是回答问题)必须在输出之前被调用 什么东西给浏览器?

意味着它是最好的做法把在session_start()<?php<?php session_start();后直接并确保PHP的开始标记是不是以后<html>标签。

如果我的目的是使用SQL 查询上的批处理和部门,这也可以工作吗?

是的,当然,只需在$_SESSION['']变量中设置所有参数(sql,dept)。