私がやろうとしているのは、
単語ファイルを開き、行を読み取り、md5に変換し、まだ存在しない場合はdbに書き込みます(単語と暗号化された文字列の両方)
なんらかの理由で動作しません。
$file = fopen("list.txt", "r");
while (!feof($file))
{
$word = fgets($file);
$word = mysql_real_escape_string($word); // to prevent injections
$md5string = md5($word);
//check if in DB
$check = mysql_query("SELECT id FROM table WHERE word='$word'") or die(mysql_error
());
if (mysql_num_rows($check) > 0)
{
} //Nothing to do.
else
{
$write = mysql_query("INSERT INTO table (word, md5string) VALUES ('$word','$md5string')") or
die(mysql_error());
}
}
それはハッシュを作成し、すべてを保存することですが、それは正しくありませんでした。
私のコードのどこが悪いのでしょうか?
修正:ハッシュする前に文字列をmysql_real_escapeしましたが、それが間違っていました。
$word = trim(fgets($file));
$md5string = md5($word);
$word = mysql_real_escape_string($word); // to prevent injections`
追加:ここから得た提案を使用してスクリプトを修正したところ、
Md5ecnrypter.comはそれを間違っています。
ハッシュする前に文字列をエスケープしています。ダサいよ。他のサイトをチェックして、SOの提案が正しいことを確認しました。