php+dbfile开发小型留言本_php基础

最近一直在用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 全部选择 然后拷贝]

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

时间: 2024-12-29 14:55:02

php+dbfile开发小型留言本_php基础的相关文章

php+dbfile开发小型留言本

board.php用来存储数据,可以先在里面添加了一条留言纪录. 代码<?php$Board=array(array(1081410332,'测试','测试留言本','http://www.piscdong.com'));?> index.php是留言显示和提交页面. 代码<?phprequire_once('board.php');function htmlencode($content){$content=htmlspecialchars($content);$content=pre

用PHP编程语言开发动态WAP页面_php基础

文/成都 yell WAP(无线通讯协议)是在数字移动电话.个人手持设备(PDA等)及计算机之间进行通讯的开放性全球标准协议.随着无线通讯的不断发展,静态的WAP页面在很多方面已经不能满足用户个性化的要求,因此开发者可以在WAP服务器端使用诸如PHP等语言产生动态的WML页面,来满足用户的需要. WAP的应用结构非常类似于Internet,一个典型的WAP应用请求步骤描述如下: 1. 具有WAP用户代理功能的移动终端(如WAP手机),通过内部运行的微浏览器向某一网站发送WAP服务请求.该请求先由

PHP开发文件系统实例讲解_php基础

PHP中有许多与文件系统有关的函数,这些函数不仅可以打开文件,还可以显示目录中的内容.移动文件和其他一些功能,许多人甚至用PHP开发基于互联网的文件资源管理器.  下面的脚本样例可以显示一个目录清单,注释已经包含在代码中:  <? /把要读取的目录的全路径名存入一个名字为$dir_name的变量中./ $dir_name = "/home/me/"; / 创建一个句柄,其值是打开一个给定目录的结果/ $dir = opendir($dir_name); / 建立一个文字块

做一个有下拉功能的留言版_php基础

留言版里有太长的留言的话会把页面撑的很长的,大家对那些很长的留言版是不是觉得看的不舒服,每次都要点很多次滚动条. 如果每次一开始只出现标题,点击标题就会在下方出现内容(注意不是弹出窗口),这样的话是不是很不错呢! 接下来我们就看看如何实现: 首先要对各个标题和内容设上ID,这是第一个留言的ID设置,我们把标题的ID设为td1,内容为tdd1,接下去相同. <TR align=left id=td1 onclick=goit(tdd1) onmouseout=noit(td1) onmouseov

用PHP实现小型站点广告管理_php基础

图片链接广告大概是最为常用的网络广告模式,但是多条广告的动态随机显示可不是那么简单的事情.PHP的文件上传函数提供了在这块468x60像素的区域(网页广告的标准尺寸)实现能够根据权值大小而随机显示广告的解决方案,从而避免了开发FTP程序或是ASP和Perl CAI中需要外挂扩展才能实现此项功能的弊端. 本例在PHP4+MySQL+Apache for Win9x/2000下调试通过,共包括两部分:用来增加新广告的程序AddNewAd.php3以及显示广告的程序ShowAd.php3,都存放在服务

PHP在Web开发领域的优势_php基础

    在多数WEB开发者眼中,ASP和JSP都被认为是领跑者,而PHP却被认为是个弱小的"挣扎者",或者说它是一门被贬低为业余者才使用的语言,不值得参与企业Web开发的竞争.在我看来,PHP没有被当作竞争者的理由是评论者缺乏对它的了解,而且也不了解用于Web开发的其他操作系统.和一些观点相反,Windows不再占有Web虚拟主机服务市场的最大份额,我猜想它在Web开发这一领域里也在被摧城拔寨. 在企业开发里为什么没有PHP?  很显然,PHP被认为落后ASP和JSP太多,以至于它是没

我用php+mysql写的留言本_php基础

guestbook.php: <head> <meta http-equiv="Content-Language" content="zh-cn"> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title></title> <STYLE>A:link {    

用PHP编程开发“虚拟域名”系统_php基础

如果自己的服务器也能够实现简记域名就好了.其实这并不复杂.你也可以做一个简记域名系统. 简记域名系统的关键技术在于:实现Web页面的重定向(Redirctory).在本质上,简记域名系统和虚拟机系统完全不同.虚拟机的虚拟域名和IP是存在一一对应关系的.而简记域名系统不需要将域名和IP做一一映射.也就是说,它根本不需要复杂的域名解析机制和虚拟机来完成,它所做的事情就是当你在请求yourname.somedomain时,将你的浏览器重新定向到你本来存放Html页面的地方. 本程序运行环境是:RedH

如何开发一个虚拟域名系统_php基础

大家在使用诸如yourname.yeah.net这样的简记域名时都感到十分方便,有很多人在想:我要是能让自己的服务器也能够实现简记域名就好了.其实这并不复杂.看完了本文,你也可以做一个简记域名系统.   简记域名系统的关键技术在于:实现Web页面的重定向(Redirctory).在本质上,简记域名系统和虚拟机系统完全不同.虚拟机的虚拟域名和IP是存在一一对应关系的.而简记域名系统不需要将域名和IP做一一映射.也就是说,它根本不需要复杂的域名解析机制和虚拟机来完成,它所做的事情就是当你在请求you