2013-12-14 95 views
0

我是使用Javascript的新手,我想要做的是提交一个用户名和密码到一个PHP页面,然后检查它们是否存在于数据库中,如果它们加载不同的页面。php&ajax返回错误结果

此刻,当我提交表单时,它返回false值。但是,如果我将值添加到php页面,它将返回true。

所以我认为我必须有一个问题之间的Ajax和PHP,但我不明白我要去哪里错了,所以任何建议,将不胜感激。

当我运行在Chrome开发者工具的代码中,控制台显示此警告:

event.returnValue已被弃用。请使用标准event.preventDefault()代替。

但我不确定它与Google搜索有什么关系,似乎这只是一个警告,但我没有看到任何其他警告。

HTML表单

<label id="errorMessage"></label> 
<form method="post" class="login"> 
    <input name="username" type="text" placeholder="Username"/> 
    <input name="password" type="password" placeholder="Password"/> 
    <input type="submit" name="login" class="login" value="Login" id="orange"/> 
</form> 

阿贾克斯

$(document).ready(function(){ 
$('form.login').submit(function() { 
var username = $(this).find('.username').attr('value'); 
var password = $(this).find('.password').attr('value'); 
// ... 
    $.ajax({ 
     type: "POST", 
     url: "login.php", 
     data: "username="+ username +"& password="+ password, 
     success: function(response){ 
     if(response == 'true') 
       { 
        window.location.href='main.html'; 
       } 
       else 
       { 
        $("#errorMessage").html(response); 
       } 
     } 
    }); 
    return false; 
     }); 
     }); 

PHP

$username = mysql_real_escape_string($_POST['username']); 
    $password = md5(mysql_real_escape_string($_POST['password'])); 

    if(!empty($username) && !empty($password)) 
    { 
    $result = mysql_query("SELECT * FROM users WHERE username='$username' and password ='$password'"); 
    $num_rows01 = mysql_num_rows($result); 
    if($num_rows01 === 1) 
    { 
     echo 'true'; 
    } 
    else 
    { 
     echo 'false'; 
    } 
    } 
+0

你试图缩小你的问题?请分别测试每个片段,使用Chrome/Firefox调试工具,显示报告/读取日志等,以找出哪些代码段无法正常工作 –

+0

谢谢,我已经尝试过通过手动添加表单数据并返回true的php代码,所以我想我需要尝试你所说的并检查窗体和ajax。欢呼 –

+0

尝试更改输入类型从提交到按钮...并在jquery。提交到.click;) – Hackerman

回答

0

你不必叫usernamepassword。所以它不是retrieveing这些值的任何类。

更改此:

var username = $(this).find('.username').attr('value'); 
var password = $(this).find('.password').attr('value'); 

要:

var username = $("[name='username']").val(); 
var password = $("[name='password']").val(); 

注:在客户端检索密码是危险的,您的网站有越来越hacked.So这种做法的机会高高度不安全,并建议您使用正常的表格提交

+1

谢谢你的工作完美 –