いちばん失敗した人決定戦

認証ページを作成していますが、
フィールドの値を取得できずに困っています。

$r = ?????????????????????;
の部分の記述が分かりません。
($rに、フォームで入力した$idのデータを参照して、もしあったら、その行のPasswdフィールドとフォームで入力した$passを比較したい)

よろしくお願いいたします。



$id・・・formの入力内容(Emailフィールドに該当)
$pass・・・formの入力内容(Passwdフィールドに該当)

<?


$hostname = "*";
$username = "*";
$password = "*";
$dbname = "*";
$tablename = "*";

$connect = mysql_connect($hostname, $username, $password) or die ("サーバに接続できません");

mysql_select_db($dbname) or die ("データベースに接続できません");

$sql = "SELECT Passwd FROM $tablename where Email='$id'";

$result = mysql_query($sql, $connect) or die ("クエリーを実行できません");

$num_rows = mysql_num_rows($result);
$r = ?????????????????????;


print "$num_rows\n";
print "$r\n";



if( $num_rows = 0 ) {
print "ユーザ登録されていません。";
print '<a href="">こちらから登録してください。</a>';
session_destroy();
exit;
}
if( $r != $pass ) {
print "パスワードが違います。";
session_destroy();
exit;
}

print "認証OK";
mysql_close($connect);
?>

A 回答 (1件)

$r = mysql_fetch_array($result);


とすると
$r['Passwd']と$r[0]の両方にPasswdフィールドの値が入ります
どちらか片方だけでよければ
$r = mysql_fetch_array($result, MYSQL_ASSOC); //$r['Passwd']のみ
$r = mysql_fetch_array($result, MYSQL_NUM); //$r[0]のみ
$r = mysql_fetch_assoc($result); //$r['Passwd']のみ
$r = mysql_fetch_num($result); //$r[0]のみ
などいろいろ使えます

あと質問とは関係ないのですが$idのチェックについてSQLインジェクションについて検索して調べられたほうがいいです
    • good
    • 0
この回答へのお礼

教えていただいた内容で値を取得できました。

>SQLインジェクション

ありがとうございました!

お礼日時:2005/07/23 16:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!