【问题标题】:TextBox Not Allow Certain Characters & Symbols文本框不允许某些字符和符号
【发布时间】:2011-03-12 17:58:40
【问题描述】:

我在 PHP/HTML 文件中有以下表格:

<form method="post">
Username<input type="text" size="12" maxlength="16" name="username"><br />
<input type="submit" name="submit" value="Sign Up!" />
</form>

我将如何使它不允许像 &amp;/.,'"\|;:}]{[+= 这样的符号并且它不允许空格和某些单词?

谢谢!

【问题讨论】:

  • 您需要使用服务器端语言。
  • @yoda:Not true at all。为什么你这么想?事实上,如果您想防止人们输入无效字符,服务器端语言在这里是无能为力的。
  • @Tomalak Geret'kal:您可以使用 Firebug 或任何允许您这样做的软件/插件/hack 绕过 javascript 验证。控制用户输入的最安全方法是使用服务器端语言。当然,您可以使用这两个选项来简化服务器工作,但在服务器上进行这种验证始终是一个不错的选择。
  • @yoda:在服务器上进行验证是个好主意,是的,但是 OP 要求在输入控件中物理限制按键。

标签: php html forms character


【解决方案1】:

在 PHP 中使用 preg_match(); : /^[a-z0-9_-]{3,16}$/ 只允许:

a-z
0-9
_
-

介于 3-16 个字符之间。

您可以使用 Javascript 进行在线编辑(在输入时)。

Some other RegExp @NetTutsplus

【讨论】:

    【解决方案2】:

    不清楚您希望在客户端还是服务器端进行验证。

    在客户端,您需要 javascript 为您进行验证,请尝试 google jquery 验证。

    在服务器端,您需要编写代码来验证提交的数据,一种选择是 PHP 内置清理和过滤 - http://net.tutsplus.com/tutorials/php/sanitize-and-validate-data-with-php-filters/

    我认为您应该进行双方验证。这是一篇很好的入门文章 - http://www.php-mysql-tutorial.com/wikis/php-tutorial/form-validation-using-php.aspx

    【讨论】:

      【解决方案3】:

      您可以在客户端使用 JavaScript 来防止这些击键。但是,您必须对字符进行转义并删除服务器上的所有特殊字符,以防止被利用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-09
        • 2015-04-25
        • 1970-01-01
        • 2020-02-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多