0

これはかなり奇妙な質問かもしれませんが、Web ページにログインすると、すべて大文字で書いても機能します。とにかく、ページに「殺す」機能を作りました(他の人を殺すことができるロールプレイングゲーム)。そして、私はあなたが自殺できないようにするための簡単な機能を作ろうとしました。コードは次のとおりです。

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

$user = 現在ログインしているユーザーで、関数を使用しようとしています

$killuser = HTML フォームの入力 (殺そうとしているユーザー)

問題は、私のユーザー名が「ユーザー」で、「ユーザー」を殺そうとすると、自分を殺すことはできないと言われますが、大文字で書いたり、データベースに保存されているとおりに正確に書いたりしないと、勝ちました。だめだ、自殺できる。ちなみに、データベースのユーザー名テーブルはVARCHARで照合はutf8_general_ciです。

4

4 に答える 4

3

両方の変数を小文字に変換してから比較します。

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

または、次を使用することもできますstrcasecmp()

if (strcasecmp($killuser, $user) == 0) {
    echo "You can't kill yourself!";
}
于 2013-09-03T19:56:08.510 に答える
1

strcasecmpを使用してみてください

if (strcasecmp($killuser, $user) == 0) {
    echo '$var1 is equal to $var2 in a case-insensitive string comparison';
}
于 2013-09-03T19:59:51.433 に答える
1
if (strtolower($killuser) == strtolower($user)) {
    echo "You can't kill yourself!";
}

すべてを小文字にするだけで問題はありません。

于 2013-09-03T19:58:23.503 に答える
0

引用符なしでこれを試してください

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

これにより、小文字になります

于 2013-09-03T19:56:28.503 に答える