2016-12-14 38 views
0

这是我的登录系统代码。我有一个名为Users2的表,其中包含以下列:userID,prenume,nume,昵称,parola(它是密码)和tara。 我想要做的是: 用户键入他的用户名&密码。点击提交,然后点击提交后,他得到他是否连接PHP - MYSQL:无法识别表中的数据

<form method="post"> 
Username: 
<input type="text" name="nicknameee" placeholder="Username"> 
<br> 
Password: 
<input type="password" name="passwordd" placeholder="Password"> 
<br> 
<input type="submit" name="Submit2" value="submit"> 
<br> 
<?php 
if (isset($_POST['Submit2'])) { 

    $result1 = $conn->query("SELECT nicknamee, parola FROM Users2 WHERE nicknamee='$_POST[nicknameee]' AND parola='$_POST[passwordd]' "); 

    if (mysql_num_rows($result1)>0){ 
     echo "We are connected"; 
    } 
    else{ 
     echo "INCORRECT"; 
    } 

} 
?> 
</form> 

的事情是我得到这个消息:

(用户名和密码表单+提交按钮),然后: 警告:mysql_num_rows()预计参数1是资源,对象/home/u381189183/public_html/login.php给出线30 不正确

+0

你的代码对sql注入开放,考虑查看mysqli并准备好语句 – 2016-12-14 15:44:52

+0

切勿将密码以明文存储在数据库中! OMG还在做这些吗?使用像'''password_hash()'这样的哈希机制! – Cagy79

+0

我大约一周前开始使用PHP ..感谢信息 –

回答

0

因为查询返回的结果是一个object,而不是你有这个使用$result1->num_rows资源案例:

if (isset($_POST['Submit2'])) { 

    $result1 = $conn->query("SELECT nicknamee, parola FROM Users2 WHERE nicknamee='$_POST[nicknameee]' AND parola='$_POST[passwordd]' "); 

    if ($result1->num_rows > 0){ 
     echo "We are connected"; 
    } 
    else{ 
     echo "INCORRECT"; 
    } 

} 

此外,您应该切换到至少mysqli。也许PDO。并使用准备好的语句。

+0

@OP将程序和面向对象编程相结合。 (只是为了澄清为什么要使用num_rows而不是mysql_num_rows) – 2016-12-14 15:46:54

+1

因为查询返回的结果是'object'而不是资源。 – Ionut

+0

好吧,到目前为止这么好。所以它的工作,谢谢。但是现在我想将用户重定向到if语句中的link.ext/loggedin.php。我怎么做?它是一个HTML命令或PHP命令? –