本文留言本并不是什么完美版本,如果你只想拿来使用不建议用此源文件,但是如果你想学习flash留言本的制作原理,可能此文对你有极大的帮助!
PS:本文留言本并不是什么完美版本,如果你只想拿来使用不建议用此源文件,但是如果你想学习flash留言本的制作原理,可能此文对你有极大的帮助!
其他flash留言本原文件可以去此处下载
flash+php+mysql简单留言本教程
目的:
用flash+php+mysql制作一个简单的留言本。
配置环境:
最开始肯定是先配置相应的环境了。我下载的是配置环境套件包,傻瓜式的方法,简易安装,比较适合我。下载地址:http://phpnow.org/download.html (包括:Apache、PHP、MySQL、Zend Optimizer、phpMyAdmin、 eAccelerator )
文件夹介绍如下(Init.cmd安装;PnCp.cmd控制面板。):
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、浏览器中输入“http://127.0.0.1”后显示配置相关信息,可以输入MySQl密码进行连接测试。
3、网站目录索引默认是关闭的,用控制台将其开启,便于后期对网站(留言板)的测试。
知识准备(思路):
1、先介绍如何用PHP连上数据库(数据库用户名“root”,密码“sun”,有库“myguestbook”)
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读取文本)。可以看火山的教程,很详细。
开始制作(做好上面的准备工作,下面的会很好理解):
1、SWF读取数据
①和②MySQl→PHP→SWF
PHP用“SELECT”从MySQl那里取,再写成xml给SWF读。
2、SWF储存数据
③和④SWF→PHP→MySQl
SWF用“sendAndLoad”给PHP,PHP用“INSERT”给MySQl。
点击放大
完成后的截图:
其他注意事项:
解决乱码(解决数据库中的中文读出来是"????"):
在用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));
进入论坛参与讨论:http://www.missyuan.com/viewthread.php?tid=427065