來源:互聯網
上載者:User
關鍵字
Flash+PHP+Mysql簡單留言本製作執行個體教程
剛開始做這個留言本的時候,連MySQL和php都沒接觸過。經過痛苦的尋找資料和學習,鬱悶了一個星期後完成了我的簡單留言本。網上沒有比較好的PHP留言本相關教程,我下載的N多源檔案都看得雲裡霧裡,而且好多都將代碼寫在MC上。又或許可能有好的教程我沒搜到,但無論如何,我現在要在這裡班門弄斧一番了。 目的:
用Flash+php+mysql製作一個簡單的留言本。
配置環境:
最開始肯定是先配置相應的環境了。我下載的是配置環境套件包,傻瓜式的方法,簡易安裝,比較適合我。下載地址:http://phpnow.org/download.html (包括:Apache、PHP、MySQL、Zend Optimizer、phpMyAdmin、 eAccelerator )
檔案夾介紹如下(Init.cmd安裝;PnCp.cmd控制台。):
圖1
Apache檔案夾:PHP伺服器(類似IIS)。
MySQL-5.0.15b檔案夾:MySQl資料庫伺服器。
data檔案夾:存放的是網站資料庫。(留言本的資料庫存放於此,後台)
bin 檔案夾:裡面的檔案用來操作資料庫(DOS方式)
php-5.2.6-Win32檔案夾:PHP的函數庫,用Apache來解釋。
ZendOptimizer檔案夾:加速PHP的執行。
htdoc(或www):存放網頁檔案。(留言本的網頁檔案放於此,前台)
phpMyAdmin檔案夾:操作資料庫(Windows方式)
注:
1、安裝時會提示你輸入MySQl資料庫密碼,這裡密碼以“sun”為例。(使用者名稱為“root”)
圖2
2、瀏覽器中輸入“http://127.0.0.1”後顯示配置相關資訊,可以輸入MySQl密碼進行串連測試。
圖3
3、網站目錄索引預設是關閉的,用控制台將其開啟,便於後期對網站(留言板)的測試。
圖4
圖5
知識準備:
1、先介紹如何用PHP連上資料庫(資料庫使用者名稱“root”,密碼“sun”,有庫“myguestbook”)
圖6
2、PHP和MySQl通訊(SQL語句:INSERT存,SELECT取):
PHP←MySQl:SELECT * FROM myguestbook;
PHP→MySQL:INSERT INTO myguestbook(name,comment) VALUE ("張三","這是留言");
3、SWF和PHP通訊(LoadVars類的sendAndLoad方法存,解析xml的方式取):
SWF←PHP:PHP用echo寫xml檔案,SWF直接解析該檔案。(我以前納悶為什麼藍色的rss是PHP格式的,學到這裡才明白。)
SWF→PHP:swf用“sendAndLoad”(data_lv.uname="張三")發送變數,php用$name=$_POST['uname']接收變數。
注:
1、留言本其實就是這兩個小的過程,PHP相當於一個橋樑。強烈建議將2和3都寫出一個簡單的例子,例子運行成功了,留言本沒開始寫就已經完成一大半了。
2、sendAndLoad既可以發送變數給php,也可以接收php的變數(類似於swf讀取文本)。可以看火山的教程,很詳細。
開始製作(做好上面的準備工作,下面的會很好理解):
圖7
1、SWF讀取資料
①和②MySQl→PHP→SWF
PHP用“SELECT”從MySQl那裡取,再寫成xml給SWF讀。
圖8
2、SWF儲存資料
③和④SWF→PHP→MySQl
SWF用“sendAndLoad”給PHP,PHP用“INSERT”給MySQl。
圖9 點擊放大
完成後的:
圖10
其他注意事項:
解決亂碼(解決資料庫中的中文讀出來是"????"):
在用PhpAdmin建立資料庫的時候選擇“utf8-geeral-ci”編碼。
在php檔案的查詢語句前,加上:mysql_query("set names 'utf8'");
php模組化(便於以後修改):
串連資料庫的語句寫在單獨的檔案中,如connectdb.php。
則寫資料(datatosql.php)和讀資料(datatoxml.php)的檔案中加上:require "connectdb.php"即可。
MySQL排錯函數(如操作有錯,根據提示會很方便修改):
mysql_errno(出錯號);mysql_error(出錯原因)。
php的日期函數(更詳細的可參考其他協助):
data("Ymd,l,H:i"); //20080608,Sunday,09:28
SWF即時重新整理(保證讀取最新資料):
swf發送並擷取即時變數:data_lv.sendAndLoad("datatosql.php?n="+random(9999), data_lv, "post");
swf讀取即時xml:myXML.load("datatoxml.php?n="+random(9999))