2012-02-19 112 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