2015-10-20 49 views
0

最近,我正在登录和注册页面,在这里,如果你报名确认您的帐户的邮件被发送。我使用MySQL作为账户列表,并有一个'确认'列,其中0(未确认)或1(已确认)。现在PHP不执行登录表单的MySQL

,我创建了下面的脚本来登录,但它似乎并不奏效。在执行这个脚本之后,我看到了“正在处理...”,然后我看到了“这样的悲伤”部分。我已经在PHPMyAdmin中检查过该帐户存在,并且它已被确认。 MySQL_Base是连接到数据库的文件,该文件包含在脚本工作的其他文件中。

这里有什么确切的问题?在聊天

if($result = mysqli_query($conn, $sql) && $result->num_rows > 0){ 

UPDATE讨论后最后版本:

ini_set('display_errors',1); 
ini_set('display_startup_errors',1); 
error_reporting(-1); 
$email = $_POST['email']; 
$password = $_POST['password']; 
include("mysql_base.php"); 
echo "Processing...<br>"; 
$sql = "SELECT * FROM pages_accounts WHERE confirm='1' AND email='".$email."' AND pass='".$password."' LIMIT 1"; 
if($result = mysqli_query($conn, $sql) && $result->num_rows > 0){ 
    echo "FOUND UR ACCOUNT. MUCH HAPPINESS. SUCH GLAD. WOW REDIRECTING..."; 
} else { 
    echo "SUCH SADNESS. NO ACCOUNT WITH SUCH NAME. WEIRD RETURN. WOW. WHY NOT <a href='loginSignup.php'>SIGNUP</a>?"; 
} 
+1

你混合'mysql_'一个d'mysqli_'函数。这些是两个独立的图书馆,不能一起工作。 – andrewsi

+0

@andrewsi我把他们混在一起了? – FoxInFlame

+0

'if(mysql_fetch_array($ query)!==' – andrewsi

回答

1

替换这些3行:

$query = mysqli_query($conn, $sql); 
$row = mysqli_fetch_assoc($query); 
if(mysql_fetch_array($query) !== false){ 

与这一个

if($result = mysqli_query($conn, $sql)) { 
    if ($result->num_rows > 0){ 
     echo "FOUND UR ACCOUNT. MUCH HAPPINESS. SUCH GLAD. WOW REDIRECTING..."; 
    } else { 
     echo "SUCH SADNESS. NO ACCOUNT WITH SUCH NAME. WEIRD RETURN. WOW. WHY NOT <a href='loginSignup.php'>SIGNUP</a>?"; 
    } 
} else { 
    echo "Errormessage: %s\n". mysqli_connect_error(); 
} 
+0

紧凑。它的工作原理。谢谢。它应该是'!='对吗? – FoxInFlame

+0

不,我建议切换你的'回声'。 '真'应该是第一个的方式 – Alex

+0

比'!='更好吗?如果是这样,为什它基本上是一样的,如果我的知识是正确的...... – FoxInFlame