0

お手数をおかけして申し訳ありませんが、質問への回答を求めてインターネットを何時間も閲覧しました。Google を検索したり、yahoo の回答を尋ねたりしましたが、問題の解決策が見つかりません。

私はデータベースを持っており、そのデータベースにはアクティブと呼ばれる列があり、デフォルトは 0 です。ユーザーは参加できますが、アカウントが禁止されていることを示すエラー メッセージが表示されます。問題は、常に表示されるメッセージに関係ありません。

Your account has been banned, if you think this is in error email: admin@website.com.

問題の原因となっているコードの一部は次のとおりです。

$active = mysql_query("SELECT active FROM users WHERE username='$username'");
if (mysql_num_rows($active) == 0)
{
    session_start();
    $_SESSION['username'] = $username;
    echo "You've been logged in. <a href='http://techhelpandhowtos.tk'>Home</a>";        
}
else
{
    echo "<font color=Red>Your account has been banned, if you think this is in error email: admin@website.com</font>";
}

データベースへの接続はスクリプトの前半で行われるため、問題はありません。どんな助けでも大歓迎です。誰でも答えを見つけることができます。

4

3 に答える 3

1

ユーザーが存在する限り (そしてそのユーザー名が一意である限り)、mysql_num_rows は常に 1 を返します。

次のように mysql_fetch_array を使用します。

$active = mysql_query("SELECT active FROM users WHERE username='$username'");
$res = mysql_fetch_array($active);
if($res["active"] === "1")
...

また、新しいコードに mysql 拡張機能を使用しないでください。これは現在非推奨であり、将来削除される予定です。代わりに PDO または mysqli を使用してください。

于 2013-09-25T18:06:08.313 に答える
0

これで問題が解決すると思います

if (mysql_num_rows($active) == 1)
{
    $result = mysql_result($active,0,'active');
    if($result == 0)
    {
       session_start();
       $_SESSION['username'] = $username;
       echo "You've been logged in. <a href='http://techhelpandhowtos.tk'>Home</a>";
    }else
    {
        echo "<font color=Red>Your account has been banned, if you think this is in error email: admin@website.com</font>";

    }
}
于 2013-09-25T18:18:33.920 に答える
0

アクティブかどうかではなく、一致するレコードがあるかどうかを確認していました。以下のコードは、ユーザー名に一致するユーザーを選択し、禁止されているかどうかを確認します。

$active = mysql_query("SELECT active FROM users WHERE username='$username'");
$row = mysql_fetch_assoc($active);
if (isset($row['active']) && $row['active'] == 1)
{
    session_start();
    $_SESSION['username'] = $username;
    echo "You've been logged in. <a href='http://techhelpandhowtos.tk'>Home</a>";        
}
else
{
    echo "<font color=Red>Your account has been banned, if you think this is in error email: admin@website.com</font>";
}
于 2013-09-25T18:06:19.710 に答える