我有一个基本的登录代码,用户输入用户名和密码,点击“提交”,然后mySQL查询在数据库中检查用户名是否与密码相对应。
以下是查询,其中'pseudo'作为用户输入的用户名,'mot_de_passe'作为输入的密码。
$reponse = $bdd->query('SELECT * FROM user_data WHERE username = '.$_POST['pseudo'].' AND password = '.$_POST['mot_de_passe'].' ');
没有'AND ...'部分,我可以检查用户名是否存在,但是当我添加'AND ...'部分时,查询不起作用,并且'AND'不在与'SELECT * FROM'和'WHERE'相同的颜色
我尝试了点,简单的引号,引号,但没有任何变化。
提前致谢。
答案 0 :(得分:1)
您必须在SQL
中使用"
或'
关于字符串
$reponse = $bdd->query('SELECT * FROM user_data WHERE username = "'.$_POST['pseudo'].'" AND password = "'.$_POST['mot_de_passe'].'" ');
并且您的代码无法阻止SQL INJECTION攻击。
请使用prepared statement
或bind param
。
答案 1 :(得分:0)
使用以下代码并检查天气是否有效。
$reponse = $bdd->query('SELECT * FROM user_data WHERE username = ' .
$_POST['pseudo'] . ' AND password = ' . $_POST['mot_de_passe'] );
还要检查存储在数据库中的密码类型并尝试匹配
$reponse = $bdd->query('SELECT * FROM user_data WHERE password = ' .
$_POST['mot_de_passe'] );
如果正常工作,请检查您的数据库密钥并匹配您的密码拼写等等......