2012-04-07 75 views
1

我使用一個代碼,基於表單的輸入將用戶重定向一個形式爲小寫。我是從這裏:更改形式輸入

php - How do I redirect a user based on their form input?

的形式爲:

<form action="index.php" method="get"> 
<input type="text" name="q" /> 
<input type="submit" /> 
</form> 

的index.php

header("Location: http://example.com/browse/".$_GET['q']); 

我遇到的問題是,當使用CAPS用戶類型LOCK,它不重定向它們。

有什麼辦法改變輸入小寫一旦用戶提交它,然後這將讓他們得到適當的重定向。

回答

2

您也可能URL編碼查詢,因爲字符「#」或「:」,其中有網絡瀏覽器有特殊的意義/功能。所以如果用戶使用這些字符,這不會中斷導航。

參考:Php Doc - urlencode()

header("Location: http://example.com/browse/". urlencode($_GET['q'])); 

這上面馬克·B的答案相結合,這將導致到:在接下來的幾頁

header("Location: http://example.com/browse/". urlencode(strtolower($_GET['q']))); 

要解決原來小寫的用戶輸入,只使用urldecode()

參考:Php Doc - urldecode()

// original lower-cased query 
$original_query = urldecode($path); 
+0

謝謝!我不知道這些角色可能會打破這種形式。是的,現在它工作得很好。 – user990175 2012-04-07 21:52:05

+0

但我注意到的一件事是它不識別空格。如果我用兩個詞在他們之間的空間類型和我在「瀏覽」目錄中的同名文件,它不會重定向到它。 – user990175 2012-04-07 22:04:08

1

strtolower()

header("Location: http://example.com/browse/". strtolower($_GET['q'])); 
+0

大,感謝您的快速回復! – user990175 2012-04-07 21:25:55