1

Web サイトのログイン システムを作成しようとしています。これは私が持っているものです。

    include('MYSQL_connect_userdata.php');
    $query = "SELECT * FROM userinfo WHERE username = '$username' AND password = '$password' ";
    $result = mysql_query($query) or die("cant find table");
    $count2 = mysql_num_rows($result);
    $resultarray = mysql_fetch_array($result);
    echo "SELECT * FROM userinfo WHERE username = '$username' AND password = '$password' ";

MYSQL_connect_userdata.php は mysql サーバーに接続し、データベースを選択します。

echo "SELECT * FROM userinfo WHERE username = '$username' AND password = '$password' "; の出力を貼り付けると、

phpmyadmin は、探している行を返します。(ユーザー名とパスワードを含む)

何らかの理由で、入力が正しい値であっても mysql_num_rows($result) が 0 を返しています。入力は、php ファイルの先頭でこのように $_POST を使用して取得されます

$username = $_POST['username'];
$password = $_POST['password'];

「AND password = '$password'」を除外するようにクエリを変更すると、一部の場合、ページは意図したとおりに機能し、mysql_num_rows は 1 を返します。

何が起こっているのですか?私はphpが初めてなので、追加の説明をいただければ幸いです。ありがとう。

4

1 に答える 1

1
$con = mysql_connect("localhost", "peter", "abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

$db_selected = mysql_select_db("test_db",$con);

$sql = "SELECT * FROM person";


//Your missing the connection , store in a variable
$result = mysql_query($sql,$con);

echo mysql_num_rows($result);

mysql_close($con);
于 2012-12-07T02:26:51.303 に答える