我创建了一个mysql表,并使用php通过输入标签将数据插入表中。当我插入一个密码值在表的密码列通过使用<input type="password">
。它会自动在字符串的末尾添加amp;
。如何去除?
<?php
$username = $_POST['username'];
$password = $_POST['password'];
echo $username;
echo $password;
$connection = mysqli_connect("localhost", "root", "", "register");
if (!$connection) {
die("can not connect to database");
}
$sql = "SELECT * FROM signupinfo WHERE username= '" . $username . "' AND password ='" . $password . "' ";
$result = mysqli_query($connection, $sql);
if (!$result) {
die(mysqli_error($connection));
}
if (mysqli_num_rows($result) == 1) {
echo "login successfull";
} else {
echo "sorry incorrect password or username";
}
有三种可能:
1)检查密码字段的字符集,它应该是utf8_general_ci或
2)删除不需要的空格,如:SELECT * FROM signupinfo WHERE username=' '。' AND password='".$password."'
或
3)解码你的密码变量:
SELECT * FROM signupinfo WHERE username=' '。"' AND password='".html_entity_decode($password)."'
你能分享你的PHP代码提交到DB吗?我想你是通过GET方法发送的。类似于-
submitdemo.php吗?用户名=测试和密码=测试和
或者在POST方法中可能是这样的。请检查您没有在参数字符串的最后发送额外的&。