php+dbfile开发小型留言本
2018-09-07 14:58
最近一直在用php+dbfile开发blog,开发过程中学到了不少东西,于是就试着写了一个小留言本。
这个留言本采用php+dbfile,不需要使用数据库,可以放在blog中使用,比如,这个blog中的Tag Board就是这个留言本。
整个留言本需要四个文件,分别是:board.php、index.php、config.php、admin.php。
board.php用来存储数据,可以先在里面添加了一条留言纪录。 代码拷贝框
<?php $Board=array( array(1081410332,测试,测试留言本,
[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]:
!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 留言本</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]))? :).($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 管理留言本</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]))? :).($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 全部选择 然后拷贝]
这个留言本还很简单,功能上还不健全,比如没有分页等,还可以继续完善。:-)