PHP+Access设计留言版实战
- 格式:doc
- 大小:157.00 KB
- 文档页数:37
简单的PHP留⾔板制作(⼀)⾸先是确定⾃⼰的留⾔板需求.例如:名字,邮件及留⾔内容.⼀. 建⽴⼀个数据库guestbook。
CREATE TABLE IF NOT EXISTS `content` (`id` int(11) NOT NULL auto_increment,`name` varchar(20) NOT NULL,`email` varchar(50) NOT NULL,`content` varchar(200) NOT NULL,PRIMARY KEY (`id`))ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3;⼆. 新建config.php<?php$q = mysql_connect("服务器","数据库⽤户","数据库密码");if(!$q){die('Could not connect: ' . mysql_error());}mysql_query("set names utf8"); //以utf8读取数据mysql_select_db("guestbook",$q); //数据库>三.新建index.php<?phpinclude("config.php"); //引⼊数据库连接⽂件$sql = "select * from content"; //搜索数据表content$resule = mysql_query($sql,$q);><html><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><body><table width="678" align="center"><tr><td colspan="2"><h1>留⾔本</h1></td></tr><tr><td width="586"><a href="index.php">⾸页</a> | <a href="liuyan.php">留⾔</a></td></tr></table><p>while($row=mysql_fetch_array($resule)){></p><table width="678" border="1" align="center" cellpadding="1" cellspacing="1"><tr><td width="178">Name:<? echo $row[1] ?></td><td width="223">Email:<? echo $row[2] ?></td></tr><tr><td colspan="4"><? echo $row[3] ?></td></tr><tr></table><?}></body></html>四.新建liuyan.php<html><body><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><table width="678" align="center"><tr><td colspan="2"><h1>留⾔本</h1></td></tr><tr><td width="586"><a href="index.php">⾸页</a> | <a href="liuyan.php">留⾔</a></td> </tr></table><table align="center" width="678"><tr><td><form name="form1" method="post" action="post.php"><p>Name:<input name="name" type="text" id="name"><p>Email:<input type="test" name="email" id="email"></p><p>留⾔:</p><p><textarea name="content" id="content" cols="45" rows="5"></textarea></p><p><input type="submit" name="button" id="button" value="提交"><input type="reset" name="button2" id="button2" value="重置"></p></form></td></tr></table></body></html>五. 新建post.php<?phpheader("content-Type: text/html; charset=utf-8");include("config.php");$name= $_POST['name'];$email= $_POST['email'];$patch = $_POST['content'];$content = str_replace("","<br />",$patch);$sql = "insert into content (name,email,content) values ('$name','$email','$content')"; mysql_query($sql);echo "<script>alert('提交成功!返回⾸页。
PHP实现留⾔板功能1.⼤概了解了⼀些PHP+数据库的语句2.了解了⼀下什么是MVC框架Model View Controller以下是不完整思路,今天继续完善思路:⼀个⽤来访问数据库的类成员变量:数据库的名称密码数据库服务器名称数据库服务器⽤户名存储查询源query函数链接数据库获取SQL语句转换成query?将query转成数组Model类,对留⾔板各种数据操作的类⼀个数据库类的对象获取全部的留⾔板内容插⼊⼀条新的留⾔删除留⾔Controller类派⽣出的三个⼦类(listController对应显⽰留⾔功能、postController对应发表留⾔功能以及deleteController对应删除留⾔功能)。
* ⼀个⽤来访问MySQL的类* 创建⼀个新的DataAccess对象* @param $host 数据库服务器名称* @param $user 数据库服务器⽤户名* @param $pass 密码* @param $db 数据库名称*/class DataAccess {var $db; //⽤于存储数据库连接var $query; //⽤于存储查询源function __construct(host,user,pass,db) {this−>db=mysql p connect(host,user,pass); //连接数据库服务器mysql_select_db(db,this->db); //选择所需数据库//特别注意db和this->db的区别//前者是构造函数参数//后者是类的数据成员 } 从sql语句中,db表中获取⼀个查询源并存储在数据成员$query中 function fetch($sql) { this−>query=mysql u nbuffered q uery(sql,$this->db); // Perform query here }//! 执⾏SQL语句/*** 执⾏SQL语句,获取⼀个查询源并存储在数据成员$query中* @param $sql 被执⾏的SQL语句字符串* @return void*/function fetch($sql) {this−>query=mysql u nbuffered q uery(sql,$this->db); // Perform query hereMVC (Modal View Controler)本来是存在于Desktop程序中的,M是指数据模型,V是指⽤户界⾯,C则是控制器。
用PHP构建留言本实例用PHP构建留言本实例导语:留言板,大家都有接触过,但是要你自己用php语言来写一个的话,你会吗?以下的是店铺为大家搜集的用PHP构建一个留言本,希望对你有所帮助。
下面是配置说明:为了配置的方便,重新整理了代码,现在已经把全部的需要设置的参数都放在config.php文件里了,配置起来应该很简单,里面有详悉的说明.目标:在十分种内搞定你的留言本!1: 建立一个数据库(要主页提供数据库空间)一般的有phpMyAdmin开放源玛的前端.创建以来很简单的. 取好名字后,记得把config.php 的$db_name改成这个名字2: 建立留言数据表表(等下把config.php的$table_name改成这里你起的名字).结构为:key_liuyan int(11) auto_increment primary key, //主建,自动增加nikename varchar(20) null // 昵称subject varchar(100) null // 留言主题date_created varchar(19) // 留言时间ip_address varchar(15) // 留言人的IP地址message mediumtext null // 留言信息email_address varchar(50) null // 留言人的e-mail地址zhuye_address varchar(50) null // 留言人的主页地址huifu_biaozi int(1) default 0 // 版主回复标志huifu mediumtext null // 版主回复内容oicq varchar(20) null // 留言人的OICQ号码可以用如下的SQL来完成(本人测试通过,记得把yourtable_name改成好记点的, 当然不改也行阿)create table your_liuyan_table(key_liuyan int(11) auto_increment primary key,nikename varchar(20) null,subject varchar(100) null,date_created varchar(19) ,ip_address varchar(15),message mediumtext null,email_address varchar(50) null,zhuye_address varchar(50) null,huifu_biaozi int(1) default 0 ,huifu mediumtext null,oicq varchar(20) null)3: 建立控制表:(同样要把这里起的名字放到config.php的$table_name_control里去)结构如下:leibie varchar(20) primary key,value varchar(20) null也可以用下面的SQL语句:create table your_control_table(leibie varchar(20) primary key,value varchar(20) null)因为这是你的控制表,所以要自己加入控制记录两条;SQL语句为:插入删除密码:insert into your_control_tble( leibie, value)values (delete,'1332');插入回复密码:insert into your_control_tble( leibie, value)values (huifu,'1332');这样放进去的密码为:123,用户名为空!怎么计算密码和插入的值的关系呢?是这样的,你的密码,如123 把三位数上的各位加起来,等于6,然后把6乘以222就是密码值6*222=1332.知道了这关系,当然你可以改成其它的密码了.不过用户名要为空,,,4: 一切完成,然后只要把除了readme.txt外的文件上传就行了.post.php 文件<?phprequire('config.php');><?php$nikename=$arr_request['nikename'];if (strlen($nikename)==0){echo "<center>";echo "<h2><font color=red>错误信息!</font></h2>";echo "对不起,<font color=red>呢称</font>必须填写请重填!<br>";echo "<hr></hr>";echo "免费留言本由<a href=>小熊</a>提供技术支持";echo "</center>";exit ;}$date_now=date('Y/m/d H:i:s');$ip_address=getenv("REMOTE_ADDR");$messageold=$arr_request['message'];//$pattern="/n/";//$replacement="<br>";$message=computer_message($messageold,$hang_zifu_nu mber);$subjectold=$arr_request['subject'];if (strlen($subjectold)>$hang_zifu_number)$subject=computer_message($subjectold,$hang_zifu_numb er);else$subject=$subjectold;$str_sql=" insert into $table_name(nikename,subject,date_created,ip_address,message,email_a ddress,zhuye_address,oicq)values( '$nikename','$subject','$date_now','$ip_address','$message','".$arr_request['email_address']."','".$arr_request['zhuye_address']."','".$arr_request['oicq']."')";$result=mysql_db_query($db_name,$str_sql,$id_link);if (! $result){affy_error_exit('SQL Insert Execution has failed.');}else{echo "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">";echo "<HTML><HEAD><TITLE>发表文章</TITLE>";echo "<META content="text/html; charset=gb2312" http-equiv=Content-Type>";echo "<meta HTTP-EQUIV="REFRESH" CONTENT="2;URL=display.php">";echo "</head><body topmargin="0"><br>";。
php实现留⾔板功能(代码详解)简单的PHP留⾔板制作做基础的留⾔板功能需要三张表:员⼯表,留⾔表,好友表⾸先造⼀个登⼊页⾯:<form action="drcl.php" method="post"><div>帐号:<input type="text" name="zhang"/></div><div>⼝令:<input type="text" name="mi"/></div><input type="submit" value="登⼊"/></form>上图:不多说,没⽑病然后来写处理页⾯:<?phpsession_start();//session存储数据include ("db.class.php");//引⽤类$db = new db();//造⽅法$zhang = $_POST["zhang"];$mi = $_POST["mi"];$sql = "select mi from yuangong WHERE zhang = '{$zhang}'";$arr = $db->Query($sql);if(!empty($mi)&&$mi = $arr &&!empty($zhang)){$_SESSION["zhang"] = $zhang;//即将跳转页⾯之前,把帐号存到session⾥⾯header("location:zym.php");}else{echo "登⼊失败了";}>正常的处理登⼊的页⾯只不过把账号存了⼀下session登⼊上进⼊主页⾯再来是主页⾯了:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><title>⽆标题⽂档</title></head><body><h1>留⾔板</h1><div><a href="fbym.php" rel="external nofollow" >发布信息</a></div><div><a href="ddrr.php" rel="external nofollow" rel="external nofollow" onclick=" return confirm('注销当前⽤户?')">注销登⼊</a></div><table border="1" cellpadding="0" cellspacing="0" width="100%"><tr><td>发件⼈</td><td>收件⼈</td><td>发布时间</td><td>内容</td></tr><?phpsession_start();//存储数据if(empty($_SESSION["zhang"])){header("location:ddrr.php");//防⽌输⼊⽹址进⼊exit;}$zhang = $_SESSION["zhang"];include ("../db.class.php");$db = new db();$sql = "select name from yuangong WHERE zhang = '{$zhang}'";$attr = $db->Query($sql);//取到登⼊的nameecho "<h5>欢迎你:{$attr[0][0]}</h5>";//输出登⼊的name$sql = "select * from liuyan WHERE shou = '{$zhang}' or shou = 'all' ORDER BY times DESC ";//条件!!我只看⾃⼰或所有⼈的$arr = $db->Query($sql);foreach ($arr as $v){$fa = aname($v[1]);//⽤⽅法echo "<tr><td>{$fa}</td><td>{$shou}</td><td>{$v[3]}</td><td>{$v[4]}</td></tr>";}//返回姓名function aname($zhang){global $db;//设置全局变量!if($zhang == "all"){//如果接收到的是all,显⽰:return "所有⼈";}else{//如果是⾃⼰的,根据帐号查name$sql = "select name from yuangong WHERE zhang ='{$zhang}' ";$arr = $db->Query($sql);//⼆维数组return $arr[0][0];}}></table></body></html>查找的条件即是只查⾃⼰的好友或者是all的所有⼈还要注意⼀点便是要把调⽤的db设为全局变量图:留⾔板需要发布信息:发布信息页⾯:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="/1999/xhtml"><head><title>⽆标题⽂档</title></head><body><h1>发布信息</h1><?phpsession_start();//存储数据if(empty($_SESSION["zhang"])){header("location:ddrr.php");//防⽌输⼊⽹址进⼊exit;}$zhang = $_SESSION["zhang"];include ("../db.class.php");$db = new db();$shaoyou = "select * from firend WHERE me = '{$zhang}'";$ahaoyou = $db->Query($shaoyou);><form action="fbcl.php" method="post"><div> 接收⼈: <select name="shou"><option value="all">所有</option><?phpforeach ($ahaoyou as $v){$name = aname($v[2]);echo "<option value='{$v[2]}'>{$name}</option>";}></select></div><br/><div>留⾔内容: <input type="text" name="lynr"/></div><br/><input type="submit" value="发送"/><input type="reset" value="清空"/></form><?phpfunction aname($zhang){global $db;//设置全局变量!if($zhang == "all"){//如果接收到的是all,显⽰:return "所有⼈";}else{//如果是⾃⼰的,根据帐号查name$sql = "select name from yuangong WHERE zhang ='{$zhang}' ";//⼆维数组return $arr[0][0];}}><a href="zym.php" rel="external nofollow" >查看信息</a><a href="ddrr.php" rel="external nofollow" rel="external nofollow" onclick="return confirm('确定要退出此帐号?')">注销登⼊</a></body></html>最后就是发布信息的处理页⾯:<?phpsession_start();$uid = $_SESSION["zhang"];include("../db.class.php");$db = new db();$jsr = $_POST["shou"];$neirong = $_POST["lynr"];$sj = date("Y-m-d H:i:s");$sql = "insert into liuyan values('','{$uid}','{$jsr}','{$sj}','{$neirong}',0)";if($db->Query($sql,0)){header("location:zym.php");}else{echo "发布失败!";}图:我⽤⼩花的账号给⼩明发⼀条留⾔:所以登⼊⼩明的帐号图:没错,他收到了⼩花的这条留⾔以上就是本⽂的全部内容,希望本⽂的内容对⼤家的学习或者⼯作能带来⼀定的帮助,同时也希望多多⽀持!。
基于php的留言板的设计与实现下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!基于PHP的留言板的设计与实现1. 简介在互联网时代,留言板作为一种简单而有效的交流工具,被广泛应用于各种网站和社区。
案例留言板设计一、概述现在很多网站都考虑到了与用户之间的互动交流,于是出现了各种各样的留言板。
在留言板中,用户可以看到前面使用者的留言,也可以留下自己的言论。
对商务网站,用留言板可以了解用户的需求和意见。
现在,网上也有很多免费的留言板程序,但亲自动手做一个,能体会其中的奥秘,应该是一个不错的主意。
二、系统架构留言板的功能可大可小,小则简单地让用户浏览留言和写一个短篇留言,具有回复的功能;大则可以做到能按不同讨论分门别类的WebBBS系统,再大就是Web社区系统了。
本案例留言板功能具有:1.浏览留言。
以一个主页形式,显示留言具有分页浏览功能。
2.回复留言。
通过主页的“回复留言”超级链接,进入写留言页面。
3.隐藏留言。
具有管理员身份的用户具有屏蔽不适宜公布留言的功能,也是在通过主页的“隐藏留言”超级链接,进入留言管理页面。
工作流程图如图1所示:管理员图1说明:1.用户向服务器发出访问请求;2.服务器根据用户的角色显示主页面的功能1)一般用户,在留言板的主页面中有浏览和回复功能;2)管理员,在留言板的主页面中有浏览、回复和屏蔽功能;3.留言信息记录在数据库中;4.服务器从数据库中读取留言信息显示在页面上,也把用户的留言存储在数据库中。
三、系统设计1.逻辑结构设计根据对系统架构的描述,可得系统的逻辑结构,如图2所示。
图22.数据库设计在MySQL数据库服务器上建立名为guest数据库,其中包含数据表guestbook,各字段的定义和说明如表1:表1 guest数据库中的数据表guestbook结构注:通过phpMyadmin建立,在MySQL的data文件夹中会自动创建以此数据库为名的文件夹,包含相关数据。
本案例用到的SQL命令如表2。
表2 本案例用到的SQL命令3.界面设计主页界面屏蔽留言页信息操作成功提示行,返回主页。
四、编码实现1.主页代码文件:index.php--> </style></HEAD><BODY><CENTER> <H1><FONT color=blue>留言板</FONT></H1></CENTER> ";//判断来者是否为管理员----[mark1]$webmasteIP=array("127.0.0.1");$isMaster=false;for($i=0;$i<count($webmasteIP);$i++){if ($REMOTE_ADDR==$webmasteIP[$i]){$isMaster=true;break;}}//连接数据库服务器----[mark2]$connection=@mysql_connect("localhost","root","") or die("无法连接数据库!");@mysql_query("set names 'gb2312'");@mysql_select_db("guest") or die("无法选择数据库!");//向服务器发送查询请求$query="SELECT * FROM guestbook WHERE flag='Y' ORDER BY time DESC"; $result=mysql_query("$query",$connection) or die("浏览失败");//取回留言$count=0;while($row=mysql_fetch_array($result)){$gb[$count][serial]=$row[serial];$gb[$count][name]=$row[name];$gb[$count][time]=$row[time];$gb[$count][msg]=$row[msg];$gb[$count][email]=$row[email];$gb[$count][flag]=$row[falg];$count++;}mysql_close($connection) or die("无法断开与数据库的连接");//制作导航条----[mark3]$indexstr="<a href=write.php>我要留言</a>|";//当用户进来时把$page设为0if (SQUERY_STRING=="")$page=0;//计算页数$count=count($gb);$msgPerPage=10;$start=$page*$msgPerPage;$end=$start+$msgPerPage;if($end>$count)$end=$count;$totalpage=ceil($count/$msgPerPage);echo "目前留言板共有".$count." 条留言,本页列出了第".($start+1)." 至".$end." 条\n"; //制作页导航if($page>0)$indexstr=$indexstr."<a href=index.php?page=".($page-1).">上一页</a>| ";for($i=0;$i<$totalpage;$i++){if($i!=$page)$indexstr=$indexstr."<a href=index.php?page=$i>第".($i+1)."页</a> ";else$indexstr=$indexstr."<font color=#8080FF>第".($i+1)."页</font>";if($i!=($totalpage-1))$indexstr=$indexstr." | ";}if($page<$totalpage-1)$indexstr=$indexstr."<a href=index.php?page=".($page+1).">下一页</a>";//输出导航条echo "<P>$indexstr</P>\n";//输出留言----[mark4]for($i=$start;$i<$end;$i++){//把换行符转换成<br>$msg=nl2br($gb[$i][msg]);//格式化时间输出$dbdate=$gb[$i][time];$year=substr($dbdate,0,4);$month=substr($dbdate,5,2);$day=substr($dbdate,8,2);$hour=substr($dbdate,11,2);$min=substr($dbdate,14,2);$sec=substr($dbdate,17,2);$time=$month." ".$day." ".$year." ".$hour.":".$min.":".$sec;//输出一条留言的所有信息echo "<P><hr></P>\n";echo "<table border=0 width=90% align=center>";echo "<td width=38% bgcolor=#8080FF>\n";echo "<font color=white>";echo "序列号:".$gb[$i][serial];echo "<BR>昵 称:";if(trim($gb[$i][email])!=""){echo "<a href=mailto:".$gb[$i][email].">";echo "<strong>".$gb[$i][name]."</strong>";echo "</a>";}echo "<BR>时 间:".$time;echo "<BR><a href=write.php?action=reply & serial=".$gb[$i][serial].">回复作者</a>";if($isMaster){echo "|<a href=hide.php?serial=".$gb[$i][serial].">屏蔽这一篇</a>";}echo "</font></td>\n";echo "<td width=70% background=#FFCC99 valign=top>[正文]<br>";echo $msg;echo "</td>\n";echo "</table>\n";}echo "<P><hr></P>\n";echo $indexstr;echo "</BODY></HTML>";?>-- index.php--代码解读1)输出HTML头用echo语句把HTML标记作为字符串引入。
创建数据库1、建立一个数据库,名称为“board”2、创建两个表分别为“admin”、“guestboard”3、建立表结构(1)admin表的结构名称数据类型name 文本password 文本(2)guest表的结构(其中guestid为编码,name为名称,title为标题,content为留言内容,reply为回复内容,date为留言日期)名称数据类型guestid 自动编码设置为主键name 文本title 文本content 备注replay 备注默认值为“无回复”date 日期/时间默认值为“now()”4、输入数据(1)admin表的值name列password列admin admin(2)guestboard表的值guestid neme title content replay date1 张三001 你好!(留空)(系统自动填写)留言板首页1、新建一个动态站点,名称1005。
2、在站点内新建一个ASP VBScript 动态页面。
保存文件名为“index.asp”。
设置文档标题为“留言板”。
(1)在首行输入“1005论坛”,设置字体为“华文琥珀”,大小为75,颜色为红色。
切换到“代码”视图,在“1005论坛”旁边加换行标志“<br />”(<span class="STYLE1">1005论坛</span><br />)。
(2)在第二行输入“当前位置:留言板”,设置字体为“华文琥珀”,大小为16,“当前位置:”的颜色设置为灰色(#666666),“留言板”设置为黑色。
单击“编辑”——>首先参数——>常规——>在“允许多个连续的空格”前面打钩。
插入多个空格,将光标移到到右侧,在右侧输入“管理员登陆”,各项属性为默认。
切换到“代码”视图,在“管理员登陆”旁边加换行标志“<br />”。
XXX 学 院毕 业 论 文2009年4月完成论文题目 基于ASP 和ACCESS 留言板系统的设计与实现 院(系)名称 计算机与信息工程学院 专业名称 计算机网络技术班 级 学生姓名 学 号指导教师姓名目录内容摘要 (2)关键词 (2)ABSTRACT (2)KEY WORDS (2)前言 (3)第一章相关理论和技术 (3)1.1开发环境 (3)1.2ASP的特点 (3)1.3留言板的其他开发工具 (5)第二章需求分析 (5)2.1留言本开发背景 (5)2.2留言本功能说明 (6)第三章程序设计 (7)3.1数据结构设计 (7)3.2数据库连接文件 (10)3.3页面代码设计 (11)第四章调试和运行 (15)4.1调试 (15)4.2功能测试 (15)结论 (20)5.1工作总结 (20)5.2有待完善之处 (20)参考文献 (21)致谢 (22)内容摘要网络在人们的生活中扮演了越来越重要的角色,各色网站、论坛相应而生,我们在浏览信息的同时也需要及时地交流信息,所以留言板在各类网站中应用广泛。
为了方便大家的勾通和获取信息,特创建这个留言板。
此留言板前台界面可使用户进行登陆并在留言板上进行发表和查看,管理员可以进行管理和维护。
它使用的是Microsoft公司的ASP作为开发工具,Access为后台数据库,构建一个小型的网络留言板,从功能需求来规划框架,最后设计数据库和编写代码进而完成全部功能要求。
关键词:留言板,ASP,数据库,IISAbstractThe network has played more and more important role in people's life, the assorted website, the forum corresponding and live, we also need during browsing information's to exchange the information promptly, therefore the message center applies widely in each kind of website. to facilitate everybody's colluding with the gain information, founds this message center especially. This message center onstage contact surface may cause the user to carry on the debarkation and carries on the publication and the examination on the message center, the manager may carry on the management and the maintenance. What it uses is Microsoft Corporation's ASP takes the development kit, Access is the backstage database, constructs a small network message center, plans the frame from the function demand, the ultimate design database and the compilation code then complete the complete function request.Key words:Message center,ASP,Database,IIS前言网络在人们的生活中扮演了越来越重要的角色,各色网站、论坛相应而生,我们在浏览信息的同时也需要及时地交流信息,所以留言板在各类网站中应用广泛。
PHP实现留⾔板功能的详细代码本⽂实例为⼤家分享了php留⾔板的实现思路,供⼤家参考,具体内容如下1.创建⼀个存放留⾔信息的⽂件名2.获取表单中的数据给⼀个变量3.判断⽂件的时候存在4.对⽂件执⾏写的操作,在这之前,注意打开⽂件的时候,选择对⽂件的访问⽅式,最后记得关闭⽂件5.对⽂件执⾏读的操作,同样最后要记得关闭⽂件<?php//留⾔板的思路:1.先创建⼀个⽂件名,⽅便于存放写⼊的内容// 2.将表单中的内容赋值给⼀个变量//3.判断⽂件是否存在,将⽤户输⼊的值写进变量,打开⽂件的是时候注意选择对⽂件访问的操作//4.读取⽂件的内容,关闭⽂件header("Content-Type:text/html;charset=utf8");$filename = "message.txt";//创建⼀个⽂件的名字//如果⽤户提交了,就写⼊⽂件,按⼀定格式写⼊if(isset($_POST['dosubmit'])) {//字段的分隔使⽤||, ⾏的分隔使⽤[n]$mess = "{$_POST['username']}||".time()."||{$_POST['title']}||{$_POST['content']}[n]";writemessage($filename, $mess);//向⽂件写进内容}if(file_exists($filename)) {//判断⽂件是否存在readmessage($filename);//读取⽂件的函数}function writemessage($filename, $mess) {$fp = fopen($filename, "a");//在尾部执⾏写的操作,且不删除原来的⽂件内容fwrite($fp, $mess);//写⼊⽂件fclose($fp);//关闭⽂件}function readmessage($filename) {$mess = file_get_contents($filename);$mess = rtrim($mess, "[n]");$arrmess = explode("[n]", $mess);foreach($arrmess as $m) {list($username, $dt ,$title, $content) = explode("||", $m);echo "<b>{$username}</b>, ".date("Y-m-d H:i").": <i>{$title}</i>, <u>{$content}</u><br><hr><br>";}}><form action="message.php" method="post">⽤户: <input type="text" name="username" value="" /><br>标题:<input type="text" name="title" value="" /><br>内容:<textarea name="content" cols="40" rows="4"></textarea><br><input type="submit" name="dosubmit" value="留⾔" /><br></form>以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
PHP+Access设计留言版实战1、什么是PHP?php是一种开发动态网站的很好的工具.2、php容易学么?非常容易,只要你掌握一点c或者c++基础.3、为什么选择php?速度,易上手,模板,等等4、php主要学什么?模板和函数5、支持那些数据设备?你知道那些就有那些6、为什么我要选择access?因为很多情况下access简单,易操作,虽然公认的mysql是no.1,但是鉴于对新手比较陌生,access得了,其实我的mysql水平不怎么样...7、我的特色:简单,实用, 经济,xhtml.,没有设计到smarty技术{太复杂,以后说},这次废话极少了。
我的这个实例主要实现的功能是:1:发表留言2:分页显示3:可回复4:管理员编辑删除5:支持UBB6:xhtml和一些其他简单技巧7:记起再写先看看文件目录:d:web\php--<guest>--------<data>-----------------db.mdb {数据库}---------<js>-----------------common.js{常用的js}-----------------ubbcode.js{UBB点击的使用用的js}--------<images>-----------------<ubbimages>{保存ubb的图片的文件夹}--------<style>------------------all.css{公用css样式表}--------<inc>-------------------config.php{ 整体配置}-------------------conn.php{ 数据库配置}-------------------header.php{ 头文件配置}-------------------footer.php{ 脚文件配置}-------------------function.php{ 一些简单函数}--------index.php{首页}--------post.php{发表留言}--------admin.php{管理界面}涉及到的源文件下载页面:点击这里下载源文件公用的all.css文件:*{margin:0;padding:0;}body{FONT-FAMILY: Tahoma, MS Shell Dlg,betty, female; table-layout:fixed;word-break:break-all; color: #000;line-height: 1.166;margin:0;padding: 0px;background-color:#401F00;word-wrap: break-word;font-size:12px;}a{color:#008;TEXT-DECORATION:none;font-weight:bold;}a:hover{color:#009;TEXT-DECORATION:none;}h5 {background-color:#00AEEF;padding:3px 10px;font-size:12px}h4 {padding:5px 10px;background-color:#000080;font-size:12px;color:#fff;}h4 a{color:#fff}h4 a:hover{color:#b00;border-bottom:2px solid #fff}#format_all{width:500px;padding:0;margin:auto;float:none;border:2px solid #000080;background-color:#fff} #top_ul{background-color:#BBDDFF}#top_ul p{padding:50px 0 5px 10px;height:30px;color:#b00;font-size:14.6px}#top_ul ul{display:block;clear:both;background-color:#313A97;height:22px}#top_ul ul li{list-style:none;float:left;padding:5px 3px;}#top_ul ul li a{color:#b00;padding:0 5px;}#top_ul ul li a:hover{color:#FFF100;border-bottom:2px solid #00AEEF;}#show_c{background-color:#BBfbFF;padding:3px 0;}#show_c h6{background-color:#00AEEF;padding:3px 10px;font-size:12px}#show_c h6 a{color:#313A97}#show_c h6 a:hover{color:#b00;border-bottom:2px solid #b00}#show_c div{padding:5px 10px}#show_c div sub{font-size:105%;color:#313A97;padding:2px 15px;display:block;float:none}#show_c ul{padding:5px 10px 5px 20px;color:#E82B2B}#show_c ul li{padding:5px 10px}#show_c ul li a:hover{border-bottom:2px solid #FFF100;}label {padding:2px 0 2px 20px;display:block}#footer{background-color:#BBDDFF;padding:8px;font-weight:bold}#footer a:hover{color:#b00;border-bottom:2px solid #00AEEF;}php代码写的时候以<??>最为长用,注释的时候以单行//这里是注释,多行以注释/*这里是注释*/ 都行。
php主要是以函数和模板著名吧,它支持class的继承。
学好数组和模板技术是必须掌握的,但这里牵扯到的函数比较多,以后我5do8慢慢的给新手们介绍,关于php开发,函数那句话,模块化,能很好的于xhtml 结合,模板技术,很有钱途的。
我在下面提到的深度就是指程序执行的if..else 层数,一次判断是一个深度。
相关php的库函数请查看详尽书籍或者文章介绍,此处只讲"怎么用"----->style/css.all抄上面的也可以,估计速度比较慢,哈哈哈...先说说数据库吧:表php_guest ,没啥说的,一看图就会了:表php_admin,也没啥说的look here :下面看看inc/config.php是怎么设置的:<?phpob_start();$NowPathArray=explode("inc",str_replace("\\","/",dirname(__FILE__))) ;@define("root_path", $NowPathArray[0]);@define("confign_path", root_path . "inc/");@define("db_path", root_path."data/db.mdb");$scriptFullPath = $_SERVER["PHP_SELF"];$scriptArray = split("/",$scriptFullPath);//$myfilename = $scriptArray[sizeof($scriptArray)-2];$myfilename = end($scriptArray);$szd_title="我的留言版";$page_size=5;require_once(confign_path.'conn.php');require_once(confign_path.'function.php');?>解释:<?ob_start();//缓存开始,提高速度$NowPathArray=explode("inc",str_replace("\\","/",dirname(__FILE__))) ;//强制将windows下"\分隔符"转化为/ @define("root_path", $NowPathArray[0]);//定义本文件的上一位置,也就是定位到了跟目录下面.@define("confign_path", root_path . "inc/");//定义整体配置文件夹@define("db_path", root_path."data/db.mdb"); //定义数据库路径$scriptFullPath = $_SERVER["PHP_SELF"];//得到引用页文件的url地址.$scriptArray = split("/",$scriptFullPath);//切割成数组$myfilename = end($scriptArray);//得到本页名称$szd_title="我的留言";//留言班的标题$page_size=5; //每页的数目require_once(confign_path.'conn.php'); //包含数据库文件,只一次require_once(confign_path.'function.php');//包含公用函数库文件,只一次?>下面是inc/conn.asp的文件:<?php$conn = new COM('ADODB.Connection');$accessdsn = "Driver={Microsoft Access Driver (*.mdb)};DBQ=".db_path.";Uid=;Pwd=;";$conn->Open($accessdsn);?>解释:<?$conn = new COM('ADODB.Connection'); //--------------->创建对象$accessdsn = "Driver={Microsoft Access Driver(*.mdb)};DBQ=".db_path.";Uid=;Pwd=;";//$accessdsn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=".db_path."";//--------------->2中连接mdb数据库的字符串,都行,前者在asp里面不被推荐,在php里面好像经常使用,c-blog 是前者,我....$conn->Open($accessdsn);//---------------> 实例?>inc/function.php函数库用的使用我就一个一个的说到了,下面开始走正路:我看这个东西有3部分比较合理就用了3部分了,呵呵,so创建了1、inc/header.php :<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/1999/REC-html401-19991224/loose.dtd"><HTML xmlns="/1999/xhtml"><head><title><?=$szd_title?></title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><link rel="stylesheet" href="style/all.css" type="text/css"></head><body><div id="format_all"><div id="top_ul"><p>老农:PHP留言版</p><ul><li><a href="index.php">首页</a></li><li> <a href="POST.php">发表</a></li><li><a href="FAQ.php">FAQ</a></li><li><a href="admin.php">管理</a></li></ul></div>2、inc/footer.php :<div id="footer">技术支持:老农,网站:<a href=""></a></div></div></body></html>3、要包含两个文件的这样使用,比方index.php :<?phprequire_once('inc/config.php');require_once(confign_path.'header.php');?>这里你自定义哦,有点模板的味道,我在一下的教程里面都是修改这里面的内容的.,以后替换的就是这行哦,5do8这样说.<?phprequire_once(confign_path.'footer.php');?>index.php<?$page_sql="select * from php_guest order by id desc"; $rs = new COM('ADODB.recordset');$rs->open($page_sql,$conn,1,1);$pagesize=$rs->Pagesize=$page_size ;if($rs->PageCount<>0){if(!empty($_GET['p age'])){if($_GET['page']<=0){$rs->AbsolutePage=1;$nowpage=1;}elseif($_GET['page']>$rs->PageCount){$rs->AbsolutePage=$rs->PageCount;$nowpage=$rs->PageCount;}else{$rs->AbsolutePage=$_GET['page'];$nowpage=$_GET['page'];}}else{$rs->AbsolutePage=1;$nowpage=1;}}else{$nowpage = 1;$pagesize = 0;}for ($m=1; $m<=$pagesize; $m++){if (!$rs->EOF){?><h6>[<?=$rs->Fields[1] ?>]AT[<?=str2time($rs->Fields[7]) ?>]Title:[<?=htmlspecialchars($rs->Fields[2]) ?>] <?=admin_ rep($rs->Fields[0] )?></h6><div><?= ubb($rs->Fields[4]) ?>[<?=$rs->Fields[5] ?>]<sub><?= $rs->Fields[6] ?></sub></div><? $rs->MoveNext();}}if($rs->PageCount==0){echo "没有信息哦";}if($rs->PageCount<>0){echo "<h4>共有".$rs->RecordCount."条记录,每页".$pagesize."条,共".$rs->PageCount."页. ";echo "<a href=".$myfilename."?page=1>首页</a>";if (!($nowpage<=1)){echo "<a href=".$myfilename."?page=".($nowpage-1).">上一页</a>";}if (!($nowpage>=$rs->PageCount)){echo "<a href=".$myfilename."?page=".($nowpage+1).">下一页</a>";}echo "<a href=".$myfilename."?page=".$rs->PageCount.">尾页</a></h4>";}$conn->Close();$rs=NULL;$conn =NULL;?>这是首页的全部文件,你只要替换我前面说的那个地方就行了,下面开始解释:和asp的分页没啥大的区别,如果您明白asp的分页的话这个也很简单:sql读取记录,如果空的话输出为空的信息,如果不是空的话,读取当前的页数,页数为空或者大于记录总数的话游标定位到第一条,负责定位到页数* 每页的数目上.注意else对应和它相邻最近的if.$page_sql="select * from php_guest order by id desc";//------------------>创建sql语句$rs = new COM('ADODB.recordset');//------------------>创建记录对象$rs->open($page_sql,$conn,1,1);//------------------>执行语句,返回记录集$pagesize=$rs->Pagesize=$page_size ;//------------------>设置每页显示条数if($rs->PageCount<>0){//------------------>防止数据库为空,执行深度1if(!empty($_GET['p age'])){//------------------>如果当前querysting中page不是空,执行这里,定位页数.执行深度2if($_GET['page']<=0){//------------------>如果当前page小于0,定位页数到第一条.执行深度3$rs->AbsolutePage=1;$nowpage=1;}elseif($_GET['page']>$rs->PageCount){//------------------>如果当前page大于记录总数,定位页数到第一条.执行深度4$rs->AbsolutePage=$rs->PageCount;$nowpage=$rs->PageCount;}else{//------------------>如果当前page不小于0到总数内,定位页数到page页.执行深度3$rs->AbsolutePage=$_GET['page'];$nowpage=$_GET['page'];}}else{//------------------>如果当前querysting中page是空,执行这里,定位第一条记录.执行深度2$rs->AbsolutePage=1;$nowpage=1;}}else{//------------------>数据库为空的话执行这里,执行深度1$nowpage = 1;$pagesize = 0;}for ($m=1; $m<=$pagesize; $m++)//------------------>按照每页显示条数的设定进行循环{if (!$rs->EOF){//------------------>防止达到记录集尾产生错误?><h6>[<?= $rs->Fields[1] ?>]AT[<?=str2time($rs->Fields[7]) ?>]Title:[<?=htmlspecialchars($rs->Fields[2]) ?>] <?=admin_rep($rs->Fields[0] )?></h6><div><?= ubb($rs->Fields[4]) ?>[<?=$rs->Fields[5] ?>]<sub><?= $rs->Fields[6] ?></sub></div><? $rs->MoveNext();//------------------>记录转向下一条}}if($rs->PageCount==0){//------------------>数据库为空,打印为空的信息echo "没有信息哦";}if($rs->PageCount<>0){//------------------>数据不是空的话大于页数信息.echo "<h4>共有".$rs->RecordCount."条记录,每页".$pagesize."条,共".$rs->PageCount."页. ";echo "<a href=".$myfilename."?page=1>首页</a>";if (!($nowpage<=1)){echo "<a href=".$myfilename."?page=".($nowpage-1).">上一页</a>";}if (!($nowpage>=$rs->PageCount)){echo "<a href=".$myfilename."?page=".($nowpage+1).">下一页</a>";}echo "<a href=".$myfilename."?page=".$rs->PageCount.">尾页</a></h4>";}$conn->Close();$rs=NULL;$conn =NULL;//------------------>释放资源,5do8没啥说的了,哈哈哈哈上面有个htmlspecialchars函数,相当于server.htmlencode函数,原样输出的函数。