0

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

4

1 回答 1

3

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

显然html和SQL中有特殊含义的字符,你已经处理过了。

其他可能性是:

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

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

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

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

于 2012-08-18T01:32:29.337 回答