2011-11-13 5 views
1

私は多くの分野でデータベース(DB_NAME =メンバー)を持っているが、これに関連するものである:PHPコードをmysqlのテーブルのフィールド - リソースID#6

security_question, security_answer, email 

です:

$email = $_COOKIE['site_user']; 

$select_sa = mysql_query("SELECT security_answer FROM members WHERE email='".$email."'"); 
$result_sa = mysql_query($select_sa); 
$arr_sa = mysql_fetch_row($result_sa); 
$result2 = $arr_sa[0]; 
$get_sa = $result2; 

もし私

echo $select_sa; 

それ版画「リソースID#6」の表に、私は言葉ではなく、「リソースID#6」などのセキュリティの答えを見ることができますが。

I

echo $get_sa; 

それは何も印刷されない場合。


データベースからsecurty_answerフィールドを読み取ることができますか?

おかげで、 レイ

答えて

3

あなたが二番目のクエリテキストパラメータに最初の時間から結果ハンドルを供給し、二回のクエリをやっています。それは無効です。代わりにこれを試してみてください:

$select_sa = "SELECT security_answer FROM members WHERE email='".$email."'"; 
$result_sa = mysql_query($select_sa); 
$arr_sa = mysql_fetch_row($result_sa); 
$result2 = $arr_sa[0]; 
$get_sa = $result2; 

$emailフィールドがクエリで使用される前mysql_real_escape_string()を通過されていることを確認してください。すべてのデータがユーザから取り出される。 $_GET$_POSTまたは$_COOKIEを適切にエスケープする必要があります。エスケープしないと、SQLインジェクション攻撃が可能になります。

+0

ありがとうございました。問題は今ソートされています。私はセキュリティに関してもう少し時間を費やすつもりです。乾杯。 –

+0

喜んで助けました。セキュリティw.r.t SQLインジェクションを読む場合は、パラメータ化されたクエリとストアドプロシージャをチェックしてください。これらのツールは、クエリが安全であることを確認するための優れたツールです。 – Polynomial

関連する問題