HTML表单区分大小写

时间:2013-09-03 19:53:23

标签: php sql rows case-sensitive

这可能是一个相当奇怪的问题,但是当我登录我的网页时,即使我在资本中全部写完,它也能正常工作。无论如何,我在页面上做了一个“杀戮”功能(角色扮演游戏,你可以杀死其他人)。而且我试图制作一个简单的功能,让你无法自杀。这是代码:

        if ("$killuser"=="$user") {
        echo "You can't kill yourself!";
        }

$ user =当前用户登录,尝试使用该功能

$ killuser = HTML表单中的输入(您要杀死的用户)

问题是,如果我的用户名是“用户”,并且我试图杀死“用户”,它说我不能自杀,但是如果我用大写字母写它,或者不完整,因为它存储在数据库中,它不会,我将能够自杀。顺便说一下,数据库中的用户名表是VARCHAR,排序规则是utf8_general_ci。

4 个答案:

答案 0 :(得分:3)

将两个变量转换为小写,然后进行比较:

if ( strtolower($killuser) == strtolower($user)) {
    echo "You can't kill yourself!";
}

或者,您也可以使用strcasecmp()

if (strcasecmp($killuser, $user) == 0) {
    echo "You can't kill yourself!";
}

答案 1 :(得分:1)

if (strtolower($killuser) == strtolower($user)) {
    echo "You can't kill yourself!";
}

只需将所有内容都设为小写,您就不会有问题。

答案 2 :(得分:1)

尝试使用strcasecmp

if (strcasecmp($killuser, $user) == 0) {
    echo '$var1 is equal to $var2 in a case-insensitive string comparison';
}

答案 3 :(得分:0)

在没有引号的情况下试试

if ($killuser == strtolower($user)) {

这将使它更低级