用户名密码总是错误。。。。

terran312 2010-05-14 10:32:56
<?
error_reporting(0);
$conn = mysql_connect("localhost", "root", "root") or die("connect err.".mysql_error());
mysql_select_db("xssf");
$name = trim($_POST['name']);
$studentid = trim($_POST['studentid']);

if($_POST['ok']==1){
if ($name && $studentid){
$sql = "SELECT * FROM xueshengjibenxinxib WHERE 姓名 = '$name' and 学号='$studentid'";
$res = mysql_query($sql);
$rows = mysql_num_rows($res);
if($rows){
header("refresh:0;url=a.htm");//跳转页面
exit;
}
else echo "<script language=javascript>alert('用户名密码错误');history.back();</script>";
}
else echo "<script language=javascript>alert('用户名密码不能为空');history.back();</script>";
}
?>

数据库是可以链接的已测,SQL语句也可以执行,但是无论输入什么用户名和密码总显示“用户名密码错误”,数据库里有相关姓名和学号信息(执行SQL语句的时候可以查询到记录)
...全文
219 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
zongmekeneng 2010-05-17
  • 打赏
  • 举报
回复
[Quote]
header("refresh:0;url=a.htm");

[/Quote]
之前有输出吧 这条语句不能运行了 ……
dehexiao 2010-05-17
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 foolbirdflyfirst 的回复:]
一般情况下不要使用中文作为数据库字段名,如果用了,你得保证发送给mysql的语句的编码与字段编码一致。
也就是说查询语句之前要执行一下set names语句。
[/Quote]
UP!
daiyvlong 2010-05-17
  • 打赏
  • 举报
回复
受教了....
foolbirdflyfirst 2010-05-17
  • 打赏
  • 举报
回复
一般情况下不要使用中文作为数据库字段名,如果用了,你得保证发送给mysql的语句的编码与字段编码一致。
也就是说查询语句之前要执行一下set names语句。

vinsonyin 2010-05-16
  • 打赏
  • 举报
回复
if($_POST['ok']==1){
if ($name && $studentid){
$sql = "SELECT * FROM xueshengjibenxinxib WHERE 姓名 = '$name' and 学号='$studentid'";
$res = mysql_query($sql);
$rows = mysql_num_rows($res);
if($rows){
header("refresh:0;url=a.htm");//跳转页面
exit;
}
else echo "<script language=javascript>alert('用户名密码错误');history.back();</script>";
}
else echo "<script language=javascript>alert('用户名密码不能为空');history.back();</script>";
}
?>

类似判断语句的问题,
在else echo "<script language=javascript>alert('用户名密码错误');history.back();</script>";
前面加上}
ww884203 2010-05-16
  • 打赏
  • 举报
回复
我也是遇到这样的问题啊,SQL里面可以执行,但是用PHP来连接就是不行,急死人了
地雷 2010-05-16
  • 打赏
  • 举报
回复
页面编码没问题么
vinsonyin 2010-05-16
  • 打赏
  • 举报
回复
if($_POST['ok']==1){
if ($name && $studentid){
$sql = "SELECT * FROM xueshengjibenxinxib WHERE 姓名 = '$name' and 学号='$studentid'";
$res = mysql_query($sql);
$rows = mysql_num_rows($res);
if($rows){
header("refresh:0;url=a.htm");//跳转页面
exit;
}

else
{
echo "<script language=javascript>alert('用户名密码错误');history.back ();</script>";
}
}

else
{
echo "<script language=javascript>alert('用户名密码不能为空');history.back();</script>";
}
}
?>

Dleno 2010-05-15
  • 打赏
  • 举报
回复
$sql = "SELECT * FROM xueshengjibenxinxib WHERE `姓名` = '$name' and `学号`='$studentid'";

这个呢。

还不行的话就看看:
mysql_query($sql) or die(mysql_error());
正确执行没
jjc1989 2010-05-15
  • 打赏
  • 举报
回复
................................
kyzy_yy_pm 2010-05-14
  • 打赏
  • 举报
回复
$sql = "SELECT * FROM xueshengjibenxinxib WHERE 姓名 = '$name' and 学号='$studentid'";

如果不是上程序得出的sql,你要把'姓名'、'学好'改成name、$studentid
kyzy_yy_pm 2010-05-14
  • 打赏
  • 举报
回复
执行SQL语句的时候可以查询到记录


你所执行的sql语句是上程序的出来的sql还是直接在数据库中写的?
床上等您 2010-05-14
  • 打赏
  • 举报
回复

$sql = "SELECT * FROM xueshengjibenxinxib WHERE 姓名 = '$name' and 学号='$studentid'";

可能是你的 sql 出现问题。。

字段为中文可能搜索不出来的,把字段名改为英文,,,,,
blue44sky 2010-05-14
  • 打赏
  • 举报
回复
不好意思我理解错了
if($rows){
header("location:a.htm");//跳转页面
exit;
}
else echo "<script language=javascript>alert('用户名密码错误');history.back();</script>";
}

把查询语句打印出来然后执行一下,看是什么结果
blue44sky 2010-05-14
  • 打赏
  • 举报
回复

$rows>0 肯定就执行 else echo "<script language=javascript>alert('用户名密码错误');history.back
直接这样写
if($rows){
header("refresh:0;url=a.htm");//跳转页面
exit;
}
else echo "<script language=javascript>alert('登陆成功');history.back();</script>";
}


还有判断用户名和密码不能为空,直接在前端用JS判断,也可以在查询之前判断。
terran312 2010-05-14
  • 打赏
  • 举报
回复
表单里OK是HIDDEN属性的,恒等于1,也就是这个IF是肯定成立的,从执行结果也可以看出来是,这个IF是始终执行的
xuzuning 2010-05-14
  • 打赏
  • 举报
回复
你的表单呢?在什么情况下 $_POST['ok'] 会等于 1 呢?
by_baby 2010-05-14
  • 打赏
  • 举报
回复
"SELECT * FROM xueshengjibenxinxib WHERE 姓名 = '$name' and 学号='$studentid'";

请改成 "select * from xueshengjibenxinxib where 姓名='".$name."' and 学号=".$studentid.""
terran312 2010-05-14
  • 打赏
  • 举报
回复
用var_dump($rows);无论我输入的是正确还是错误的信息都输出:bool(false),请高手指点
床上等您 2010-05-14
  • 打赏
  • 举报
回复

$rows = mysql_num_rows($res);
var_dump($rows);//看下这个有没数据

加载更多回复(3)

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧