2015-12-13 33 views
0

我花了几个小时试图弄清楚为什么这段代码无法正常工作。这段代码是登录页面的开始,但目前我无法超越这个阶段。此时代码的要点是输出刚刚登录的用户的用户详细信息。 我已正确连接到我的数据库。 任何帮助将不胜感激。mySQL/PHP登录表单无法正常工作

<?php 

$link= mysqli_connect("localhost", "mySql USER NAME", "mySql Password ", "mySql Database name"); 

if ($_POST['submit']=="Log In") { 

    $query="SELECT * FROM users WHERE email='".mysqli_real_escape_string($link, $_POST['loginemail'])."' AND password='".md5(md5($_POST['loginemail']).$_POST['logingpassword'])."' LIMIT 1"; 

    $result = mysqli_query($link, $query); 

    $row = mysqli_fetch_array($result, MYSQLI_BOTH); 

    print_r($row); 

} 



?> 

<form method="post"> 

    <input type="email" name="email" id="loginemail"/> 

    <input type="password" name="password" id="loginpassword"/> 

    <input type="submit" name="submit" value="Log In"/> 

</form> 
+2

'的print_r($ _ POST)',你应该有看到你的porblem –

+0

您的连接或查询 – amdixon

+1

如果'$ _ POST [ '注册邮箱']'可以是双md5ed处理上没有错误?还要注意'name'是传递给'$ _POST'的东西;不是'id'。 – chris85

回答

0

我想你在你的PHP代码中使用了错误的变量名来查询数据库。

$query="SELECT * FROM users WHERE email='".mysqli_real_escape_string($link, $_POST['loginemail'])."' AND password='".md5(md5($_POST['loginemail']).$_POST['logingpassword'])."' LIMIT 1"; 

在上面的线似乎是在数据库查询电子邮件地址和密码的使用错误,因为HTML表单POST声明的变量名作为名称=“电子邮件”和名称=“密码”。 (我假设这是完整的代码,并没有AJAX函数与其他变量名称一起提交此POST请求)

请尝试下面的代码来代替。

$query="SELECT * FROM users WHERE email='".mysqli_real_escape_string($link, $_POST['email'])."' AND password='".md5(md5($_POST['email']).$_POST['password'])."' LIMIT 1"; 
+0

认为这工作,但结果不是太。新查询也发生了同样的情况。任何其他想法? –