代码之家  ›  专栏  ›  技术社区  ›  jjclarkson Andy Rose

PHP-folksonomy标记检查正则表达式

  •  0
  • jjclarkson Andy Rose  · 技术社区  · 16 年前

    我正在尝试创建一个正则表达式,用于检查自由形式的大众分类系统中提交的标记的值。这是我现在拥有的。

    if (!preg_match('/([^-\\a-zA-Z0-9._@\'])+/',$proposedtag)) {
        //true, good
        return true;
    } else {
        //false, bad characters
        return false;
    }
    

    我很确定一个否定的角色类是解决这个问题的方法。。。

    然而,我上面的代码似乎允许使用其他字符(如+),我不知道为什么。 另外,作为旁注,我不确定我是否在无意中允许SQL注入。有什么建议吗?

    1 回复  |  直到 16 年前
        1
  •  2
  •   zombat    16 年前

    我相信这是一个在你的角色类中使用反斜杠字符的转义问题。试试这个,它在我给它喂食的测试中似乎效果更好。注意反斜杠上的双转义(我移到了末尾):

    if (!preg_match('/([^\-a-zA-Z0-9._@\'\\\\])+/',$proposedtag)) {