2012-04-07 81 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