0

我正在尝试使用 AJAX 和 PHP 创建登录以更流畅地显示错误消息。

我的 HTML

<form>
    <input type="email" placeholder="Email Address" id="loginMail" name="loginMail" class="text"> 
    <input type="password" placeholder="Password" id="pass" name="pass" class="text"><br><br>
    <input type="checkbox" name="autologin" value="1">  Remember me:  | <a href="#">Forgot password?</a><br/><br>
    <input type="submit" name="submitLogin" id="submitLogin" class="submit" value="Sign In"><br />
</form>

我的Javascript:

$('#submitLogin').click(function()
{
    var email = $('#loginMail').val();
    var pass = $('#pass').val();
    $.post('login.php', 
        {email: email, pass: pass}, 
        function(data)
        {
            alert(data);
        });
});

我的 PHP

<?php
include('database.php');
$pdo = new database();

$email = $_POST['email'];
$pass = md5($_POST['pass']);
#$email = 'web.de';
#$pass = 'pw';

$qry = $pdo->pdo->prepare("SELECT * FROM userbasics WHERE email = :email AND pass =     :pass");
$qry->bindParam(':email', $email);
$qry->bindParam(':pass', $pass);
$qry->execute();
#$result = $qry->fetchAll();
$count = $qry->rowCount();

if($count == 1){
    echo "Eingeloggt!"; 
    header("Location: http://www.google.de");
}
else{
    echo "E-Mailadresse oder Passwort falsch!"; 
}

/*foreach($result as $row){
    echo $row['email']; 
}*/

?>

当我只是用定义的数据调用 PHP 脚本时,它会返回我应该做的事情。所以我猜这是Javascript-Part的一个问题。有什么建议么?

4

2 回答 2

0

在php中更改以下代码

if($count == 1){
echo "Eingeloggt!"; 
header("Location: http://www.google.de");
 }
else{
  echo "E-Mailadresse oder Passwort falsch!"; 
}

if($count == 1){
echo "Eingeloggt!"; 
} else{
  echo "E-Mailadresse oder Passwort falsch!"; 
}
exit;
于 2013-03-03T16:28:32.037 回答
0

你的代码 -

if($count == 1){
    echo "Eingeloggt!"; 
    header("Location: http://www.google.de");
}

是错误的......你不能在echoing 之后设置标题。echo当您将用户重定向到页面时,为什么要这样做?好吧,如果你认为如果重定向失败,那么页面不应该是空白的,它应该显示一些消息,然后试试这个 -

if($count == 1){
    header("Location: http://www.google.de");
    exit("Eingeloggt!");
}

那么对于 jQuery 部分,我看不出有什么问题。

此外,由于您没有submit在任何地方生成表单,您只是post通过 ajax 获取它,因此设置form

<form action="javascript:void(0);" onsubmit="return false;">

我希望这会有所帮助。

于 2013-03-03T16:34:55.743 回答