-1

そのため、PDO を読みながら、if else ステートメントを使用して管理パネルにログインするための一時的な方法を作成しようとしています。誰かがここでエラーがどこにあるのか教えていただければ幸いです。

少し調べてからコードを更新しましたが、コードがどこに属しているかが表示されず、必要な情報が取得されないという問題がまだあります。

<?php
        $admin    = $_SESSION['admin_login'];
        $con=mysql_connect("$server","$user","$pass");
        if
        (!$con)
        {
            die('Could not Connect' .mysql_error());
            }
        mysql_select_db($webdb, $con);
            $result=mysql_query("SELECT * FROM permissions WHERE username= '$admin' ");
            $row = mysql_fetch_assoc($result);
            if ($row['permissions']=="3")
                {
                    echo 'Admin Panel';
                }
                elseif ($row['permissions']=="1")
                {
                    echo 'include acp_error.php';
                }

                    ?>

私が更新したものです。誰かがここで何か問題を見ていますか?

4

1 に答える 1

2

mysql_query は、選択しようとしている値/行ではなく、ステートメント HANDLE を返します。比較する必要がある値を取得できるようにするには、データの行をフェッチする必要があります。

$result = mysql_query(...) or die(mysql_error());
$row = mysql_fetch_assoc($result);
if ($row['somefield'] == 3) { 
    ...
}

のようなことに注意してください

"$webdb"

無意味なカーゴカルト プログラミングです。シンプルな

$webdb

そのようなものに必要なすべてです。唯一の内容が変数の内容である新しい文字列を作成しても意味がありません。変数自体を使用するだけです。

また、クエリで使用している $_SESSION 値を介したSQL インジェクションに対して脆弱であることに注意してください。それがテキスト値であり、ユーザー提供のデータが含まれている場合、サーバーは簡単に pwn できます。

于 2012-10-07T01:16:28.503 に答える