我想做的是,
打开word文件,读取一行,将其转换为md5,如果它不存在则写入db(word和加密字符串)
由于某种原因,它不起作用。
$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_escaped 字符串,这就是我错的地方。
$word = trim(fgets($file));
$md5string = md5($word);
$word = mysql_real_escape_string($word); // to prevent injections`
添加:我刚刚使用从这里得到的建议更正了我的脚本并发现
Md5ecnrypter.com 做错了。
他们在散列之前转义了字符串。多么蹩脚。刚刚检查了其他站点以查看 SO 建议是正确的。