【问题标题】:Changing form input to lowercase将表单输入更改为小写
【发布时间】:2012-04-20 22:59:33
【问题描述】:

我正在使用基于表单输入重定向用户的表单代码。我从这里得到它:

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 键入时,它不会重定向他们。

有没有什么方法可以在用户提交后将输入更改为小写,这将允许他们正确重定向。

【问题讨论】:

    标签: php forms input get lowercase


    【解决方案1】:

    您还可以对查询进行 url 编码,因为“#”或“:”等字符对网络浏览器具有特殊含义/功能。因此,如果用户使用了这些字符,这不会破坏您的导航。

    参考:Php Doc - urlencode()

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

    将其与上述 Marc B 的回答结合起来,结果是:

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

    要在下一页解析原始的小写用户输入,只需使用 urldecode()

    参考:Php Doc - urldecode()

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

    【讨论】:

    • 谢谢!我不知道那些字符会破坏表格。是的,现在效果很好。
    • 我注意到的一件事是它不能识别空格。如果我输入两个单词,它们之间有一个空格,并且我在“浏览”目录中有同名的文件,它不会重定向到它。
    【解决方案2】:

    strtolower():

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

    【讨论】:

    • 太好了,感谢您的快速回复!
    猜你喜欢
    • 2011-08-11
    • 1970-01-01
    • 2013-09-29
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多