在一个用户登录的系统中,输入用户名密码后判断是否与数据库中一致来进行登录,问题是用户名为汉字时总是出错(数据表中有该记录),英文时则正常。
我用的是mysql_num_rows(),代码如下:
<?php
$name=$_POST['admin-name'];
$passowrd=$_POST['admin-pwd'];
mysql_query("set names GBK");
$sql = "SELECT * FROM gbook where name = '".$name."' ";
$res = mysql_query($sql,$link);
$row = mysql_num_rows($res);
if ($row==1){
echo "$name<br>";
echo $row;
echo "登录成功!正在跳转到管理页面……";
}else{
echo "$name<br>";
echo $row;
my_msg("用户名密码错误","admin-login.html");
}
?>如果用户名是中文的话,echo出来的记录条数是0,如果是英文则正常。另外,数据表编码和该php文件编码都是gbk。
我试了很久,一直不行,希望高手帮忙,多谢多谢!!
我用的是mysql_num_rows(),代码如下:
<?php
$name=$_POST['admin-name'];
$passowrd=$_POST['admin-pwd'];
mysql_query("set names GBK");
$sql = "SELECT * FROM gbook where name = '".$name."' ";
$res = mysql_query($sql,$link);
$row = mysql_num_rows($res);
if ($row==1){
echo "$name<br>";
echo $row;
echo "登录成功!正在跳转到管理页面……";
}else{
echo "$name<br>";
echo $row;
my_msg("用户名密码错误","admin-login.html");
}
?>如果用户名是中文的话,echo出来的记录条数是0,如果是英文则正常。另外,数据表编码和该php文件编码都是gbk。
我试了很久,一直不行,希望高手帮忙,多谢多谢!!
我按你说的把$sql $res都打了出来,用李四进行登录时,$sql显示的是SELECT * FROM user where name = '李四' ,我把它粘贴到数据库里执行也是正常的。另外显示$res的 结果不管中文还是英文都是Resource id #5。问题就是mysql_num_rows($res)的结果在中文用户名时显示0,英文显示1。还请仁兄指点!
header("Content-type: text/html; charset=utf-8");呵呵。。来要分的
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\www\admin\admin-login.php on line 28
28行就是 $row = mysql_num_rows($res);