Php 我可以´;t我的MySQL登录正常

Php 我可以´;t我的MySQL登录正常,php,mysql,Php,Mysql,我已经建立了这2个文件。注册工作正常,但登录似乎找不到用户,因为我总是收到“echo 2”。任何建议。谢谢 登录: <?php require("config.inc.php"); if (!empty($_POST)) { $user = $_POST['User']; $mail = $_POST['Mail']; $token = $_POST['Token']; $pass = $_POST['Pass']; $query_user = "SELECT * FROM Proteos

我已经建立了这2个文件。注册工作正常,但登录似乎找不到用户,因为我总是收到“echo 2”。任何建议。谢谢

登录:

<?php
require("config.inc.php");
if (!empty($_POST)) {
$user = $_POST['User'];
$mail = $_POST['Mail'];
$token = $_POST['Token'];
$pass = $_POST['Pass'];
$query_user = "SELECT * FROM Proteos WHERE User = '$user'";
$query_pass = "SELECT * FROM Proteos WHERE Pass = '$pass'";
$query_execuser = mysql_query($query_user) or die(mysql_error());
$query_execupass = mysql_query($query_pass) or die(mysql_error());
$rowsuser = mysql_num_rows($query_execuser);
$rowspass = mysql_num_rows($query_execpass);
if ($rowuser==0){
    echo 2;
}else if ($rowuser==$rowpass){
    echo 3; 
}else if ($rowuser!=$rowpass) {
echo 4;
}
mysqli_close($con)
?>
<?php
}
?>

首先,更正查询选择查询,即使用一个而不是两个

e.g $query_user = "SELECT * FROM Proteos WHERE user = '$user' and pass='$pass'"
第二,在查询数据库时使用小写字母,例如pass而不是pass,user而不是user,一些服务器可能无法在这个属性上工作,
第三,调用您的新表单,我在这里看不到它,因为我只看到值的echo,而不是类似于
头(“location:you_file.php”)

问题太多了。首先,您直接将未经统计的内容传递到数据库(并使用不推荐的方法进行传递)。您的问题也不包括说明
$\u POST['User']
的值是什么的内容-您是否确定已设置并设置正确?其次,您使用两个查询,不需要;您只需在单个查询中添加AND;这将返回一行,其中用户名和密码都匹配。事实上,如果两个用户拥有相同的密码,您可能会失败。第三,不要在数据库中存储未加密的密码。否。这两个查询不能做到这一点。它们检索一行用户名和一行密码。这些不一定是同一行-如果我们都有相同的密码怎么办?您会收到一条消息,说数据库中没有使用该用户名的行,但同样-我们不知道您的SQL是否正确生成,因为我们不知道表单是什么样子,或者是否设置了
$\u POST['User']
。@Fred ii--显然,我有点生疏;谢谢你的提醒:)我想它不是关于小写的,因为我的注册文件非常相似,它工作得很好。数据来了又去了安卓,这就是为什么你看不到任何问题的答案。我认为这是关于不推荐使用的命令。我用了新的,而且很有效