PHP+MYSQL留言本
學編程,我覺得最重要的是動手實踐.今天第一天學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 DEFAULT CHARSET=utf8 AUTO_INCREMENT=6
好了數據庫建好了 ~~`下面開始寫程序了該程序包含三個頁面post.htm(留言提交頁面) index.php(留言顯示頁面) updata.php(把數據寫入數據庫的頁面)
post.htm代碼如下:<html><head><meta http-equiv='Content-Type' content='text/html; charset=utf-8'><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頁面代碼如下:<? $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 '<table><tr><td>姓名:'.$rs->name.'</td></tr>';echo '<tr><td>留言:'.$rs->content.'</td></tr></table><br/>';}?>
至于分頁,頁面轉向等功能暫時不用上去.為得就是使程序盡量精簡.麻雀雖小.但是留言本的核心功能全在這里了.
其中還需要再多說幾句
$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
相關文章:
