今天做一个简单的php留言本实例,发觉提交表单的时候,英文和数字可提交成功,但提交中文的时候就没有反应,数据库里面什么都没有,朋友提醒说是编码问题,由于长期从事维护工作没有主自开发的经验一直认为算是编码问题那数据库里面也应该有一堆乱码什么的显示,于是在网上找了下,说是apache需要启用语言默认中文,照改了下,没反应。
       于是看了看自己写的网页代码编码为utf-8,查了下my.ini里面的默认编码为gbk,于是修改了网页代码编码为gbk,终于在数据库里看到了数据的录入。
留言本代码:
post.html 该页为提交页面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">
<html xmlns="[url]http://www.w3.org/1999/xhtml[/url]">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>留言本</title>
</head>
<body>
   <form action="updata.php" method="post" name="name1">
    姓名:<input type="text" name="user_name"><br>
    留言:<textarea name="post_contents" rows="10" cols="50"></textarea>
    <input type="submit">
   </form>
</body>
</html>
updata.php  数据传送页
<?php
 $username=$_POST['user_name'];
 $content=$_POST['post_contents'];
 $conn=mysql_connect("localhost:3306","root","abc"
 mysql_query("set names gbk"); //解决中文乱码问题
 mysql_select_db("guest_book");
 $exec="insert into contents (username,content) values ('".$_POST['user_name']."','".$_POST['post_contents']."')";
 $result=mysql_query($exec);
?>
 
index.php  数据显示页
<?php
 $conn=mysql_connect("localhost:3306","root","abc"); //打开mysql服务器连接
 mysql_select_db("guest_book");//链接数据库
 mysql_query("set names gbk");//解决中文乱码问题
 $exec="select * from contents"; //执行sql语句
 $result=mysql_query($exec);//返回结果
 while($rs=mysql_fetch_object($result))
 {
  echo "<table><tr><td>姓名:".$rs->username."</td></tr>";
  echo "<tr><td>留言:".$rs->content."</td></tr></table><br/>";
 }
?>