登录时出错-php/ajax
我有一个简单的表单来验证数据库中是否存在用户,并允许登录到另一个页面(是的,我删除了密码验证以简化代码,我测试时没有通过,脚本总是显示您的登录无效) 数据库:emprego,表:用户,字段:id,用户名,电子邮件,通行证登录时出错-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 () {
<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";}
}
?>