登录时出错-php/ajax

登录时出错-php/ajax,php,jquery,html,ajax,forms,Php,Jquery,Html,Ajax,Forms,我有一个简单的表单来验证数据库中是否存在用户,并允许登录到另一个页面(是的,我删除了密码验证以简化代码,我测试时没有通过,脚本总是显示您的登录无效) 数据库:emprego,表:用户,字段:id,用户名,电子邮件,通行证 <script type="text/javascript" language="javascript"> $(document).ready(function () { $("#login_form").submit(function () {

我有一个简单的表单来验证数据库中是否存在用户,并允许登录到另一个页面(是的,我删除了密码验证以简化代码,我测试时没有通过,脚本总是显示您的登录无效)

数据库:emprego,表:用户,字段:id,用户名,电子邮件,通行证

<script type="text/javascript" language="javascript">
$(document).ready(function () {
    $("#login_form").submit(function () {
        $("#msgbox").removeClass().addClass('messagebox').text('Validating....').fadeIn(1000);
        $.post("ajax_login.php", {
            name: $('#name').val(),
        }, function (data) {
            if (data == 'yes') {
                $("#msgbox").fadeTo(200, 0.1, function () {
                    $(this).html('Logging in.....').addClass('messageboxok').fadeTo(900, 1, function () {
                        document.location = 'secure.php';
                    });
                });
            } else {
                $("#msgbox").fadeTo(200, 0.1, function () {
                    $(this).html('Your login is not valid').addClass('messageboxerror').fadeTo(900, 1);
                });
            }
        });
        return false; 
    });
}); 
</script>
    </head>
    <body>
        <form method="post" action="" id="login_form">
                    User Name : <input name="name" type="text" id="name">
                <div class="buttondiv">
                    <input name="Submit" type="submit" id="submit" value="Login" style="margin-left:-10px; height:23px">
                    <span id="msgbox" style="display:none"></span>
                </div>
        </form>

$(文档).ready(函数(){
$(“#登录表单”)。提交(函数(){
$(“#msgbox”).removeClass().addClass('messagebox').text('Validating…').fadeIn(1000);
$.post(“ajax\u login.php”{
名称:$('#name').val(),
},函数(数据){
如果(数据=‘是’){
$(“#msgbox”).fadeTo(200,0.1,函数(){
$(this.html('Logging in…')).addClass('messageboxok').fadeTo(900,1,function(){
document.location='secure.php';
});
});
}否则{
$(“#msgbox”).fadeTo(200,0.1,函数(){
$(this.html('您的登录无效').addClass('messageboxerror').fadeTo(900,1);
});
}
});
返回false;
});
}); 
用户名:
文件:ajax_login.php

<?php 

include("includes/f_banco.php");
conecta ();


$check = mysql_query("SELECT username FROM users WHERE username ='".mysql_real_escape_string($_POST['name'])."'")or die(mysql_error());
$row=mysql_fetch_array($check);

if ($row['username'] == $_POST['name']) {
    echo "yes";
    $_SESSION['name']=$row['username'];
}else{echo "no";}

?>

可能是使用字段名“name”?参见

我看到很多问题

<?php  
//removed the # from the post
$name = mysql_real_escape_string($_POST['name']);
//whys this here?
$row=mysql_fetch_array($check);
//name cant be used (common mistake)
$check = mysql_query("SELECT name FROM users WHERE name ='".$name."'")or die(mysql_error());
$check2 = mysql_num_rows($check);
if ($check2 == 1) {
    echo "yes";
    $_SESSION['name']=$name;
}

else
echo "no";
?>


为什么不使用
true
false
yes
no
只是意味着需要编写更多的代码。好的,但问题不是这样,对吗?谢谢问题是什么?问题是什么?我在BD中有一个用户,但登录不使用此用户名。这就是问题所在。不,我改成了name1,但我无法登录,真不敢相信这个问题。谢谢,我只需复制你的代码,将bd中字段的名称更改为用户名,但我可以“登录”。这可能是JS中的一个问题?使用普通表单测试您的php,您是否在ajax_login.php和表单页面中使用session_start()启动会话?目前我的代码与更新的帖子相同,谢谢Lawrenceput session_start();在“登录无效”下,重复一次,再重复一次。我不明白这个问题。
<?php  
session_start();
include("includes/f_banco.php");
conecta ();

if(isset($_SESSION['name'])){echo "yes";}else{
    $check = mysql_query("SELECT username FROM users WHERE username ='".mysql_real_escape_string($_POST['name'])."' LIMIT 1")or die(mysql_error());
    $row=mysql_fetch_array($check);

    if ($row['username'] == $_POST['name']) {
        echo "yes";
        $_SESSION['name']=$row['username'];
    }else{echo "no";}
}


?>