小弟做了一个简单的PHP登录界面,但是发现如果是中文用户名就无法登录,英文用户名是可以登录的,不知道应该怎么修改,希望大家能帮帮小弟,我数据库的字符集用的是UTF8的
<?
error_reporting(0);
$mysql_servername = "localhost"; //主机地址
$mysql_username = "root"; //数据库用户名
$mysql_password =""; //数据库密码
$mysql_database ="tzl0317"; //数据库mysql_connect($mysql_servername , $mysql_username , $mysql_password);
mysql_query("SET NAMES utf8");
mysql_select_db($mysql_database); 
$name=$_POST['name'];
$passowrd=$_POST['password'];if ($name && $passowrd){
 $sql = "SELECT * FROM login WHERE name = '$name' and password='$passowrd'";
 $res = mysql_query($sql);
 $rows=mysql_num_rows($res);
  if($rows){
   //header("refresh:0;url=index.php?id=");//跳转页面,注意路径
   echo "$name";
   exit;
 }
 //echo "<script language=javascript>alert('用户名密码错误');history.back();</script>";
  echo "$name+1";
}
//else {
 //echo "<script language=javascript>alert('用户名密码不能为空');history.back();</script>";
//}?>

解决方案 »

  1.   

    在页面加上:header("Content-Type:text/html;charset=UTF-8");  还有看看中文在你数据库能显示吗?
      

  2.   

    你登陆的html页面的编码写utf-8,这样PHP的_POST取出的内容才是utf-8格式的
      

  3.   

    编码问题,html和php中的编码要一样,以前也碰到过这问题。
      

  4.   

    只要英文可以,中文不行,就是字符集的问题。!首先看php文件和数据库设置的字符集是否一致,然后看文件本身的字符集是否一致。这些都一致一般不会出现乱码的情况
      

  5.   

    header(”content-type:text/html; charset=xxx”)