php+dbfile开发小型留言本


Posted in PHP onOctober 09, 2006

最近一直在用php+dbfile开发blog,开发过程中学到了不少东西,于是就试着写了一个小留言本。
这个留言本采用php+dbfile,不需要使用数据库,可以放在blog中使用,比如http://www.customyze.com,这个blog中的Tag Board就是这个留言本。

整个留言本需要四个文件,分别是:board.php、index.php、config.php、admin.php。

board.php用来存储数据,可以先在里面添加了一条留言纪录。 代码拷贝框
<?php $Board=array( array(1081410332,'测试','测试留言本','http://www.piscdong.com') ); ?>
[Ctrl+A 全部选择 然后拷贝]

index.php是留言显示和提交页面。 代码拷贝框
<?php require_once('board.php'); function htmlencode($content){ $content=htmlspecialchars($content); $content=preg_replace("/\r/i","<br />",$content); return $content; } if($HTTP_SERVER_VARS['REQUEST_METHOD']=='POST'){ $configpath_parts1 = pathinfo($SCRIPT_FILENAME); $time=time(); $name=$HTTP_POST_VARS['name']; $url=(preg_match("/^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$/i",$HTTP_POST_VARS['url'])
$HTTP_POST_VARS['url']=='')?$HTTP_POST_VARS['url']:'http://'.htmlspecialchars(preg_replace("/https?\:\/\//i",'',$HTTP_POST_VARS['url']),ENT_QUOTES); $info=htmlencode($HTTP_POST_VARS['info']); if($name!='' && $info!=''){ $Board[]=array($time,$name,$info,$url); } for($i=0;$i<count($Board);$i++){ $bd=current($Board); $s[]="\tarray(".$bd[0].",'".$bd[1]."','".$bd[2]."','".$bd[3]."')"; next($Board); } $content="<?php\n\$Board=array(\n".join($s,",\n")."\n);\n?>"; $filename=$configpath_parts1['dirname'].'/'.'board.php'; if(is_writable($filename)
!file_exists($filename)){ if(!$handle=fopen($filename,'w')){ return false; } if(!fwrite($handle,$content)){ return false; } fclose($handle); }else{ return false; } header('Location:.'); }else{ ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>留言本</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> </head> <body> <form method="post" name="form1" action=""> <table border="0" cellspacing="5" cellpadding="0" align="center"> <tr> <td> <div style="overflow:auto;height:250px;border:1px dotted #999999;padding:5px;word-wrap:break-word;width:400px;"> <?php end($Board); for($i=0;$i<count($Board);$i++){ $bd=current($Board); $s[]='<strong>'.($bd[3]!=''?'<a href="':'').(preg_match("/^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$/i",$bd[3])?'mailto:':'').$bd[3].(($bd[3]!='' && !preg_match("/^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$/i",$bd[3]))?'" target="_blank':'').($bd[3]!=''?'">':'').$bd[1].($bd[3]!=''?'</a>':'').':</strong> '.$bd[2].'<br/><em>-'.date("G:i, M j, Y",$bd[0]).'</em>'; prev($Board); } echo join($s,'<br/><br/>'); ?> </div> </td> </tr> <tr> <td align="center"> 名称:<input type="text" name="name"/> URL/Email:<input type="text" name="url"/><br/> <textarea name="info" cols="40" rows="8"></textarea><br/> <input type="submit" value="发布"/> </td> </tr> </table> </form> </body> </html> <?php } ?>
[Ctrl+A 全部选择 然后拷贝]

config.php中存放的是管理留言本的密码,把密码放在单独一个文件中方便修改。 代码拷贝框
<?php $password='123456'; ?>
[Ctrl+A 全部选择 然后拷贝]

admin.php是管理页面,功能很简单,只能删除留言。在删除时需要输入管理密码,管理密码存放在config.php中。 代码拷贝框
<?php require_once('board.php'); require_once('config.php'); if(isset($HTTP_POST_VARS['id']) && $HTTP_POST_VARS['id']!='' && addslashes($HTTP_POST_VARS['password'])==$password){ if(count($Board)>1){ unset($Board[intval($HTTP_POST_VARS['id'])]); for($i=0;$i<count($Board);$i++){ $bd=current($Board); $s[]="\tarray(".$bd[0].",'".$bd[1]."','".$bd[2]."','".$bd[3]."')"; next($Board); } $content="<?php\n\$Board=array(\n".join($s,",\n")."\n);\n?>"; $configpath_parts1 = pathinfo($SCRIPT_FILENAME); $filename=$configpath_parts1['dirname'].'/'.'board.php'; if(is_writable($filename)
!file_exists($filename)){ if(!$handle=fopen($filename,'w')){ return false; } if(!fwrite($handle,$content)){ return false; } fclose($handle); }else{ return false; } } header('Location:admin.php'); }else{ ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>管理留言本</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> </head> <body> <table width="500" border="0" cellspacing="1" cellpadding="5" align="center" bgcolor="#999999"> <?php for($i=0;$i<count($Board);$i++){ $bd=current($Board); $s[]='<tr><td bgcolor="#'.($i%2!=0?'ececec':'ffffff').'"><strong>'.($bd[3]!=''?'<a href="':'').(preg_match("/^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$/i",$bd[3])?'mailto:':'').$bd[3].(($bd[3]!='' && !preg_match("/^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$/i",$bd[3]))?'" target="_blank':'').($bd[3]!=''?'">':'').$bd[1].($bd[3]!=''?'</a>':'').':</strong> '.$bd[2].'<br/><em>-'.date("G:i, M j, Y",$bd[0]).'</em></td>'.(count($Board)>1?'<td bgcolor="#'.($i%2!=0?'ececec':'ffffff').'" align="center"><form method="post" action=""><input type="submit" value="删除" /><input type="hidden" name="id" value="'.$i.'" /><input type="password" name="password" /></form></td>':'').'</tr>'; next($Board); } echo join($s,''); ?> </table> </body> </html> <?php } ?>
[Ctrl+A 全部选择 然后拷贝]

这个留言本还很简单,功能上还不健全,比如没有分页等,还可以继续完善。:-)

PHP 相关文章推荐
关于mysql 字段的那个点为是定界符
Jan 15 PHP
比较全的PHP 会话(session 时间设定)使用入门代码
Jun 05 PHP
php 获取完整url地址
Dec 20 PHP
php print EOF实现方法
May 21 PHP
PHP 图片水印类代码
Aug 27 PHP
PHP查询网站的PR值
Oct 30 PHP
使用PHP函数scandir排除特定目录
Jun 12 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
Jul 22 PHP
ThinkPHP模板替换与系统常量及应用实例教程
Aug 22 PHP
PHP使用glob函数遍历目录或文件夹的方法
Dec 16 PHP
简介PHP的Yii框架中缓存的一些高级用法
Mar 29 PHP
PHP简单创建压缩图的方法
Aug 24 PHP
用 php 编写的日历
Oct 09 #PHP
第十三节 对象串行化 [13]
Oct 09 #PHP
第七节 类的静态成员 [7]
Oct 09 #PHP
用PHP实现文件上传二法
Oct 09 #PHP
PHP安装全攻略:APACHE
Oct 09 #PHP
用PHP生成自己的LOG文件
Oct 09 #PHP
VFP与其他应用程序的集成
Oct 09 #PHP
You might like
声音就能俘获人心,蕾姆,是哪个漂亮小姐姐配音呢?
2020/03/03 日漫
php 分库分表hash算法
2009/11/12 PHP
php5 apache 2.2 webservice 创建与配置(java)
2011/01/27 PHP
深入理解PHP原理之错误抑制与内嵌HTML分析
2011/05/02 PHP
php中++i 与 i++ 的区别
2012/08/08 PHP
PHP Directory 函数的详解
2013/03/07 PHP
初识Laravel
2014/10/30 PHP
php实现的一个简单json rpc框架实例
2015/03/30 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
2015/10/26 PHP
代码精简的可以实现元素圆角的js函数
2007/07/21 Javascript
JavaScript使用yield模拟多线程的方法
2015/03/19 Javascript
JSON字符串转JSON对象
2015/07/31 Javascript
jquery实现先淡出再折叠收起的动画效果
2015/08/07 Javascript
jQuery添加options点击事件并传值实例代码
2016/05/18 Javascript
在windows上用nodejs搭建静态文件服务器的简单方法
2016/08/11 NodeJs
微信小程序-详解数据缓存
2016/11/24 Javascript
浅谈js中同名函数和同名变量的执行问题
2017/02/12 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
Vue多组件仓库开发与发布详解
2019/02/28 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
微信小程序使用canvas自适应屏幕画海报并保存图片功能
2019/07/25 Javascript
[18:20]DOTA2 HEROS教学视频教你分分钟做大人-昆卡
2014/06/11 DOTA
[06:43]DAC2018 4.5 SOLO赛 Maybe vs Paparazi
2018/04/06 DOTA
python进阶教程之函数参数的多种传递方法
2014/08/30 Python
Python数据结构与算法之图结构(Graph)实例分析
2017/09/05 Python
解决pycharm 误删掉项目文件的处理方法
2018/10/22 Python
python 将对象设置为可迭代的两种实现方法
2019/01/21 Python
python找出一个列表中相同元素的多个索引实例
2019/06/11 Python
澳大利亚便宜隐形眼镜购买网站:QUICKLENS Australia
2018/10/06 全球购物
高校毕业生登记表自我鉴定
2013/11/03 职场文书
六个一活动实施方案
2014/03/21 职场文书
教师节学生演讲稿
2014/09/03 职场文书
音乐教师求职信范文
2015/03/20 职场文书
幼儿园教研工作总结2015
2015/05/12 职场文书
结婚典礼主持词
2015/06/29 职场文书
Oracle以逗号分隔的字符串拆分为多行数据实例详解
2021/07/16 Oracle