Maison >développement back-end >tutoriel php >关于php输出值的问题
我做了个简单的html登陆表单,点击提交按钮,异步提交验证。php文件连接数据库验证用户名密码,对则echo一个字符串‘true’,错了则无输出值。返给html后,做判断,再做响应动作。可我测试时发现,不管输错输对,页面均是输对的动作。php部分是正确的,可以根据表单提交数据输出响应的值,我觉得bug在客户端部分,怎么改都不对,望各位大神帮帮忙。以下是客户端脚本:
<script> <br /> $('#btn').click(function () { <br /> $('#form2').ajaxSubmit({ <br /> success:function(data) { <br /> console.log(data+' '+typeof data); <br /> console.log(data=='true'); <br /> if (data) { <br /> alert('登陆成功!'); <br /> }else { <br /> $('#tip5').html('用户名或密码错误,请重新输入!') <br /> } <br /> }, <br /> <br /> }) <br /> }) <br /> </script>
输错时,控制台输出data是什么?
输错时,无输出。这是我php代码部分:
$name_login=$_POST['name_login'];
$psw_login=$_POST['psw_login'];
$url = "127.0.0.1";
//账号
$user = "root";
//密码
$password = "";
//连接
$con = mysql_connect($url,$user,$password);
if (!$con){
die('Could not connect: ' . mysql_error());
}
//设置编码机
mysql_query("set names utf8");
//连接数据库
mysql_select_db("yang");
$sql = "select * from plane where username='$name_login'";
$result=mysql_query($sql,$con);
$re=mysql_fetch_assoc($result);
if($re) {
if($re['psw']==$psw_login) {
echo "true";
}
}
?>
输错时,控制台输出data是什么?
我是说输错时
console.log(data+' '+typeof data);
console.log(data=='true');
这两句输出什么?
我是说输错时
console.log(data+' '+typeof data);
console.log(data=='true');
这两句输出什么?
看看你的表单
看看你的表单
看看你的表单
这个js脚本是我改成了直接使用jq的ajax()方法异步提交,想看看是不是ajaxsubmit插件出了问题。结果还是一样,客户端根本不识别php返回来的字符串。这样测试
$(function() { //最好这样包起来,以防 jq 加载太慢 $('#btn').click(function () { $.ajax({ url:'plane/login.php', type:'post', data:{ 'name_login':'fengjie', 'psw_login':'123123', }, success:function(data) { alert(data); //直接查看返回的数据,如果 php 有问题,一样能看到 } }) })})
这样测试
$(function() { //最好这样包起来,以防 jq 加载太慢 $('#btn').click(function () { $.ajax({ url:'plane/login.php', type:'post', data:{ 'name_login':'fengjie', 'psw_login':'123123', }, success:function(data) { alert(data); //直接查看返回的数据,如果 php 有问题,一样能看到 } }) })})
alert(data.length); //看一下返回数据的长度
alert(data.length); //看一下返回数据的长度
因为长度不同,所以 dada == 'true' 不会成立
你可以进一步看一下多出来的字符的内码是多少
alert(data.charCodeAt(0));
如果小于等于 32,就表示你的程序多输出了 空格、制表符、回车、换行
如果大于 255,就表示你的程序文件有 BOM 头
看来,经过这一折腾,你已经具有处理 ajax 隐性问题的能力了
因为长度不同,所以 dada == 'true' 不会成立
你可以进一步看一下多出来的字符的内码是多少
alert(data.charCodeAt(0));
如果小于等于 32,就表示你的程序多输出了 空格、制表符、回车、换行
如果大于 255,就表示你的程序文件有 BOM 头
看来,经过这一折腾,你已经具有处理 ajax 隐性问题的能力了
因为长度不同,所以 dada == 'true' 不会成立
你可以进一步看一下多出来的字符的内码是多少
alert(data.charCodeAt(0));
如果小于等于 32,就表示你的程序多输出了 空格、制表符、回车、换行
如果大于 255,就表示你的程序文件有 BOM 头
看来,经过这一折腾,你已经具有处理 ajax 隐性问题的能力了
因为长度不同,所以 dada == 'true' 不会成立
你可以进一步看一下多出来的字符的内码是多少
alert(data.charCodeAt(0));
如果小于等于 32,就表示你的程序多输出了 空格、制表符、回车、换行
如果大于 255,就表示你的程序文件有 BOM 头
看来,经过这一折腾,你已经具有处理 ajax 隐性问题的能力了
你把程序文件的 bom 头去掉就行了
你把程序文件的 bom 头去掉就行了
保存文件时选择 utf-8 无 bom
保存文件时选择 utf-8 无 bom
那还要看 标记外是否有空格、空行之类的
那还要看 标记外是否有空格、空行之类的