コードを実行すると、次の 2 つのエラーが発生します。
mysql_num_rows() は、パラメーター 1 がリソース、ブール値であると想定します
これは、ファイルのまれな行で発生します。それらの残りの部分は問題なく動作します。
SQL 構文にエラーがあります。1 行目の「t」付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。
はい、その脆弱性、わかりました。おそらくいくつかの奇妙な文字が問題を構成していますが、単語をデータベースに保存してmd5ingするため、実際に編集できます。
スラッシュmysql_real_escape_string
を追加すると、別の md5 値が得られると思います。では、どうすればデータを編集せずに同時にスクリプトを保護できるのでしょうか?
require ("dbconnect.php");
$list = fopen("huge.txt","r");
//convert and save to db
while(!feof($list))
{
$word = fgets($list);
//check if already in db.
$check = mysql_query("SELECT id FROM `database` WHERE word='$word'") or
die(mysql_error());
if (mysql_num_rows($check)==0)
{
//rest of the codes
die()
何が悪いのかを確認するためだけに追加しました。