PHP-mySQL查询中的几个变量
我有一个基本的登录代码,用户输入用户名和密码,点击“提交”,然后mySQL查询检查数据库中的用户名是否与密码对应 这是一个查询,用户键入的用户名是“pseudo”,密码是“mot_de_passe”PHP-mySQL查询中的几个变量,php,mysql,variables,Php,Mysql,Variables,我有一个基本的登录代码,用户输入用户名和密码,点击“提交”,然后mySQL查询检查数据库中的用户名是否与密码对应 这是一个查询,用户键入的用户名是“pseudo”,密码是“mot_de_passe” $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 username = '.$_POST['pseudo'].' AND password = '.$_POST['mot_de_passe'].' ');
如果没有“和…”部分,我可以检查用户名是否存在,但是当我添加“和…”部分时,查询不起作用,并且“和”与“选择*自”和“何处”的颜色不同
我试过点,简单的引号,引号,但没有任何改变
提前谢谢 关于SQL中的字符串,必须使用“
或”
$reponse = $bdd->query('SELECT * FROM user_data WHERE username = "'.$_POST['pseudo'].'" AND password = "'.$_POST['mot_de_passe'].'" ');
您的代码无法阻止SQL注入攻击
请使用
prepared statement
或bind param
使用以下代码并检查其是否有效
$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'] );
如果有效,请检查您的数据库密钥并匹配密码拼写和诸如此类的内容。1.不要使用普通密码,使用密码哈希。2.尝试使用
prepared statements
来防止SQL注入。使用prepared statements,您将不必担心令人讨厌的引用问题。顺便说一句,这是其美妙之处的一部分s的方法是,它允许使用参数化查询。不使用它们是愚蠢的。将它们全部放在双qoutes-“'中$_POST['pseudo'].“如果您不应该这样做,请查看准备好的语句可能重复的No,这是针对表和列的,字符串需要引号。