0
我试图从我的数据库中读取数据以找出我是否正确插入它。但是,下面的代码有一些错误。从PHP中的MySQL数据库读取线
$pwdcrypt = SHA1($pwd);
$userregisterquery='INSERT INTO user (email, password) VALUES ('.$email.', '.$pwdcrypt.')';
echo $userregisterquery;
mysqli_query($link, $userregisterquery);
// echo "Kantaan vietiin sähköposti: ".$email. " ja salasana: ".$pwdcrypt;
$usergetdataquery='select email, password FROM user WHERE email=\''.$email.'\'';
//echo $usergetdataquery;
$result = mysqli_query($link, $usergetdataquery);
$row = mysqli_fetch_row($result);
echo "the result is:".print_r($row);
它输出
INSERT INTO user (email, password) VALUES ([email protected], fcf007079136b14ee9632ea2e3b1e85a061f5006)select email, password FROM user WHERE email='[email protected]'SELECT user.id FROM user WHERE email = '[email protected]'the result is:1
在另一方面,正如我在终端检查表,它输出只有我通过终端谁拥有不同的e-mail地址插在那里的用户ID。为什么我看不到通过WWW形式插入的用户?
我想你的意思是mysql_real_escape_string() - addslashes()不够安全。 – JJJ 2010-11-13 22:55:08
我编辑了答案。但是,只要连接字符集是UTF-8或ISO-8859-15,我就不会知道对addslashes()的任何攻击,因为它可能位于芬兰语应用程序中。 – AndreKR 2010-11-13 23:04:46
我对安全问题有以下功能:function clean_input($ s){s} = strip_tags($ s); $ s = stripcslashes($ s); $ s = htmlspecialchars($ s); return trim($ s); } – 2010-11-13 23:55:36