是否有任何理由不允许我的PHP程序中的所有字符的用户名?

时间:2012-08-18 01:28:46

标签: php

对于我的第一个php网站,我目前允许在用户名中使用所有字符。当它们插入数据库时​​,我使用addslashes(),当从数据库中检索它们时,我使用stripslashes(),然后我使用htmlentities()使它们在页面上正确显示。到目前为止我没有遇到任何问题,但是出于任何原因我是否应该在用户名中禁用任何字符? HTML,CSS和PHP是我能流利的唯一语言,我担心将来我会遇到PHP或Java或其他一些语言难以解析某些字符的语言。

1 个答案:

答案 0 :(得分:3)

许多字符可能会导致问题:

显然,在你处理过的html和SQL中有一些特殊含义的字符。

其他可能性是:

  • 用于搜索用户,正则表达式字符/通配符,例如。 *,?

  • 如果您想为用户提供电子邮件地址,则电子邮件仅支持字母数字字符,下划线和非相邻点,并且许多系统假设电子邮件不区分大小写(尽管不是规范的一部分)

  • 如果您想为用户提供个人资料页面,其中网址包含其用户名,则需要对许多字符进行正确编码。

  • 非ascii字符可能会导致问题,具体取决于用户名的存储方式(如果它们存储在支持UTF-8的字段中,则支持任何字符)