2016-01-24 48 views
1

如何根據第一個數字輸入重定向到php中的特定url?基於第一個數字輸入的重定向

如果表單中輸入的第一個數字是1,然後重定向到www.mysite.com/page1,如果以相同的形式輸入的第一個數字是2,然後重定向到www.mysite.com/page2

輸入字段可以有多個數字,但我想僅基於第一個數字重定向。

我已經試過這並不起作用:

if ($number != '2') { 
    header("Location: http://example.com"); 
} 
+0

'標題(」位置:/ page「。$ number);',其中'$ number'是您從輸入中獲得的那個。請注意,標頭必須在向瀏覽器的任何一種輸出之前發送,請參閱[本文](http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php ) – Qirel

+0

更好地顯示您的表單內容。你從哪裏得到'$數字'? – zeflex

+0

除了最後的數字之外,URL是否始終相同?或者每個不同號碼的網址可能完全不同? – Will

回答

1

試試這個:

<?php 

$pages = [ 
    1 => 'http://example.com/some_page.html', 
    2 => 'http://example.com/some_page_other.html', 
    //... 
    9 => 'http://example.com/differentpage.html', 
]; 

if (!empty($_GET['number'])) 
{ 
    $firstNumber = (int) $_GET['number'][0] 
} 

if (isset($firstNumber, $pages[$number])) 
{ 
    header('Location: ' . $pages[$number]); 
} 
else 
{ 
    // We don't have a page for this number, or we don't have a number input. 
} 

這可以讓你使用一個完全不同的URL爲每個號碼。如果它總是相同的URL,在末端不同的號碼,你可以這樣做,而不是:

<?php 

$baseUrl = 'www.example.com/page'; 

if (!empty($_GET['number'])) 
{ 
    $firstNumber = (int) $_GET['number'][0] 
} 

if (isset($firstNumber)) 
{ 
    header('Location: ' . $baseUrl . $number); 
} 
else 
{ 
    // We don't have a number from the input. 
} 
0

不要忘記exit()或將繼續執行當前的腳本

if ($number != '2') { 
    header("Location: http://example.com"); 
    exit(); 
}