2012-02-27 126 views
1

我对这款产品有点麻烦,因为它可能是最基本的。我有一个简单形式的姓名,电子邮件,注释等本身输出到一个PHP页面,但我想拥有它发送到第二个页面的链接,例如:发送表单数据到一个页面,然后另一个?

<label for="name">Name:</label><input type="text" name="name" size="20" /> 

都到了第二页(second.php)与此代码并打印出来就好了:

print "<div>Thank you, $name.</p></div>"; 

但是,如果我尝试发送$名称到第三页(third.php)使用类似的代码,它显示是这样的:

​​

随着实际变异而不是存储在$ name中的内容。

我觉得我错过了一个小小的东西,但我不知道它是什么。我用这个:

$name = $_POST['name']; 

要拿second.php,这要拿third.php:

print 'Click <a href="third.php? name=' . $name . '">here</a> to proceed.'; 

只是为了看它是否会从second.php得到相同的信息,但我不认为它是这样工作的。还有什么我应该在第三页上做的?我有一种感觉,这是一个令人难以置信的微不足道的事情,但就我所知,我无法完全理解它。

+2

http是无状态的,没有理由page3应该获得与第2页相同的数据,而是发布到第2页而不是第3页 - 如果要在 – 2012-02-27 03:34:30

+0

上传递变量,请参阅会话如果通过查询传递数据字符串它应该工作正常。它看起来像变量替换不会发生。 third.php的内容是什么?你使用单引号而不是双引号('谢谢你$ name'和'谢谢你$ name')?在单引号内使用变量时,PHP不会自动执行变量替换。 – 2012-02-27 03:38:38

+0

使用你的方法,你需要在第三页使用'$ name = $ _GET ['name']'not'$ name = $ _POST ['name']'。 – 2012-02-27 04:26:52

回答

1

你可以这样做。

在声明

$name = $_POST['name']; 

,你可以在头用它来传递这个变量

if(isset($_POST['btnname'])) 
{ 
header('Location: second.php?name='.$name); 
} 

的在你的第二个PHP

您可以通过这种方式得到它

Thank you, <php echo $_GET['name']; ?> 

或if要将所有的网页使用会话

$_SESSION['name'] = $_POST['name']; 

= d

0

您可以使用隐藏的输入

<label for="name">Name:</label> 
<input type="hidden" name="name" value="<? echo $name; ?>" size="20" /> 
0

网站是无状态的,这意味着该变量只能维持在服务器上的几秒钟,试试吧,然后将HTML渲染,并将其发送到客户端浏览器。服务器内存然后被释放以供其他客户端使用。

您有几种选择:
1)使用隐藏的表单字段和打印(使用PHP)他们的名字隐藏的表单字段,因此,当他们再次发布它被保存(如果他们再次发布)。
2)会议
3)饼干
4)地址打印出来(即page.php文件名=” $名;。)

这一切都取决于你如何让你的第三个页面(从链接?表单?php重定向?)

+0

我正在使用方法4.让我编辑上面所以你可以看到我的意思。 – Hydlide 2012-02-27 04:18:00

+0

使用PHP重定向似乎是最好的方法,但我似乎无法摆脱我之前遇到的问题,它只是说$名,而不是之前发送的内容。回到绘图板我想... – Hydlide 2012-02-27 05:10:07

+0

(third.php?name =)为什么之间的空格?和名字? – 2012-02-27 11:03:56

0

您可以在第二页的名称保存,并重新设置$ _GET变量第三页调用之前它是可用的。这是因为这些变量只对那个特定的请求有效,并且当另一个请求发生时需要重新设置它们。

相关问题