2012-02-19 78 views
1

我有页面register.php,用于获取用户信息,完成表单后,它提交到另一个页面post.php。再次重定向相同的页面

post.php中执行两个动作,它增加了输入数据,以便,1.PHP和2.PHP 2点的位置,因此数据流是

register.php -->post.php --> 1.php -->2.php -->register.php?value='abc' 

一旦数据被发送到两个位置再次register.php加载但此时页面像

http://www.example.com/register.php?value='abc' 

浏览器apears我如何可以重定向此页的welcome.php?新流程将

register.php -->post.php --> 1.php -->2.php -->register.php?value='abc' -->welcome.php 

,作为这样一个奇怪的流动而言,相当多学习东西,并没有与它没有任何问题,我被捉住了在最后一步,当我有重定向的页面到welcome.php ..

我该怎么办?

+0

为什么你不能使用HTTP重定向你前几页中做了? 'header('Location:')'不起作用?元重定向? (谷歌它) – Vyktor 2012-02-19 21:34:07

+0

以前我没有使用表格发送数据。 – 2012-02-19 21:34:55

回答

2

为什么不您使用会话变量而不是使用GET register.php页面?

if(isset($_SESSION['value']){ 
    header('Location:'); 
} 
1

您有几种选择,使用header()Location:(在手册的例子之一):

header('Location: welcome.php'); 
// Or with all parameters: 
header('Location: welcome.php', true, 301); 

或者meta redirect

<meta http-equiv="refresh" content="0; url=http://example.com/"> 

或者javascript redirect

window.location.href = 'welcome.php' 
+0

感谢您的帮助,但让我知道,如果我使用这3种方法中的任何一种,只要页面将被加载,它将被重定向到welcome.php,我是真的吗? – 2012-02-19 21:39:28

+0

只是一个头...它可能是有用的做header('Location:welcome.php',true,301);以避免错误 – jribeiro 2012-02-19 21:39:40

+0

@NewBee无论何时使用它们页面将被重定向(第一个,'header()',实际上会停止php脚本完成) – Vyktor 2012-02-19 21:41:07

1

这可能是你想要

if(str_pos($_SERVER['HTTP_REFERER'],"2.php") > 0){ 
    header('Location: welcome.php', true,301); 
} 

希望它可以帮助什么

+0

if($ _ SERVER ['HTTP_REFERER'] ==“2.php”)是否可以?或者我必须使用完整的网址? – 2012-02-19 22:31:25

+0

str_pos是最好的!它会搜索该字符串的所有地址。无论是这个还是preg_match,但这很容易! – jribeiro 2012-02-19 23:17:19

+0

如果你使用“==”,你将不得不匹配整个地址...... – jribeiro 2012-02-19 23:18:03