學編程,我覺得最重要的是動手實踐.今天第一天學php~~`~為了熟悉下這種語言~~~我開始自己編一個PHP+MySQL的留言本.
從易到難`~~~先由簡單的開始.功能以後慢慢完善.
留言本最基本的功能就是:
1:使用者寫留言
2:把資料寫入資料庫
3:顯示所有留言
下面就開始製作我的留言本
首先在PHPMYADMIN下建立一 guest_book資料庫 然後在該資料庫下建立一個contents的表 該表下建立兩個欄位
分別為 name 和 content
SQL語句如下:
CREATE TABLE `contents` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(20) NOT NULL default '"no name"',
`content` mediumtext NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=6
好了資料庫建好了 ~~`下面開始寫程式了
該程式包含三個頁面post.htm(留言提交頁面) index.php(留言顯示頁面) updata.php(把資料寫入資料庫的頁面)
post.htm代碼如下:
留言本
updata.php頁面代碼如下:
$name=$_POST['user_name'];
$content=$_POST['post_contents'];
$conn=mysql_connect("localhost:6033", "root", "");
mysql_query("set names utf-8"); //解決中文亂碼問題
mysql_select_db("guest_book");
$exec="insert into contents (name,content) values ('".$_POST['user_name']."','".$_POST['post_contents']."')";
$result=mysql_query($exec);
?>
index.php頁面代碼如下:
$conn=mysql_connect ("localhost:6033", "root", ""); //開啟MySQL伺服器串連
mysql_select_db("guest_book"); //連結資料庫
mysql_query("set names utf-8"); //解決中文亂碼問題
$exec="select * from contents"; //sql語句
$result=mysql_query($exec); //執行sql語句,返回結果
while($rs=mysql_fetch_object($result))
{
echo "
姓名:".$rs->name." |
";echo "
留言:".$rs->content." |
";
}?>
至於分頁,頁面轉向等功能暫時不用上去.為得就是使程式盡量精簡.麻雀雖小.但是留言本的核心功能全在這裡了.
其中還需要再多說幾句
$conn=mysql_connect ("localhost:6033", "root", "");
這一句很重要 一開始我用的是 $conn=mysql_connect ("127.0.0.1", "", "");
怎麼弄都不見資料進資料庫去~~~~但是又沒報錯~~後來看了半天才知道 原來哪個127的地方應該在PHPMYADMIN裡看伺服器名一擊資料庫連接埠是什麼~~~還有ROOT那裡就是mysql使用者名稱了,後面的是密碼
還有個問題就是 漢字亂碼問題
在$result=mysql_query($exec); 語句前面加上mysql_query("set names gb2312");或者mysql_query("set names utf-8");
可疑防止提交進資料庫的漢字以亂碼形式存放在資料庫中 以及防止 從資料庫中查詢出來的包含漢字的資料以亂碼顯示
有時候儘管這樣設定了後還是無法正常顯示漢字~~~~
我就遇見了這樣的情況,由於我是在本地調試的,每次都要把瀏覽器上的那個字元編碼調到utf-8才能正常顯示漢字
預設的編碼總是ISO-8859-1 於是google了一下`~原來是apache設定不對.於是找到 httpd.conf 設定檔案
把 default-character-set=ISO-8859-1 改為 default-character-set=utf-8
然後再 service httpd restart 重啟appache 清除所有cookies與記錄~~~然後問題就解決了
好了,今天就寫到這裡`~`明天繼續完善這個留言本~~~
http://blog.csdn.net/sputnik/archive/2007/02/11/1507954.aspx