简单生活 发表于 2015-2-4 00:04:56

PHP网页编程之一个可分页的基于文本的PHP留言板

掌握静态网页的制作技术是学习开发网站的先决条件,这一点就讲到这里,因为这篇文章不是教程文章,也就不对技术进行深入的刨析了。   小弟初学PHP,编了一个留言板法式,自我感到优秀,故厚着脸皮放了下去,请列位年老斧正。源法式以下:
<?php
//文件名:guest.php
//设定局部
$guestfile="guest";//记载留言的文本文件
$home="index.html";//前往的主页
$imagedir="image"; //图象文件的目次
$backimage=$imagedir."/bk.gif";//后台图象
$backcolor="#ceffff";//后台色彩,在$backimage=""时起感化
?>
<html>
<head>
<?php
if($QUERY_STRING!="") {
$page = $QUERY_STRING;
} else {
$page = 1;
}
if($mode=="add"){
$name=htmlspecialchars(trim($name));
$title=htmlspecialchars(trim($title));
$data=nl2br(htmlspecialchars($data));
$data=str_replace("r","",$data);
$data=str_replace("x0A","",$data);
$data=str_replace(" "," ",$data);
if($data=="") $data=" ";
$e_mail=trim($e_mail);
if($e_mail=="") $e_mail=0;
$url=trim($url);
if($url=="http://" || $url=="") $url=0;
$time=date("Y")."年".date("m")."月".date("d")."日[".date("H").":".date("i").":".date("s")."]";
if($name=="" || $title==""){
    echo "<script Language="JavaScript">n";
    echo "alert("请最少输出姓名与留言题目。");n";
    echo "history.back();";
    echo "</script></head></html>n";
    exit;
}
$adddata=$name."t".$e_mail."t".$url."t".$title."t".$data."t".$icon."t".$time."n";
if(file_exists($guestfile)){
    $filebuffer=file($guestfile);
    if(sizeof($filebuffer)>100){
      for($i=0;$i<100;$i++)
      $newbuffer=$filebuffer;
    }
    else{
      $newbuffer=$filebuffer;
    }
    $fp=fopen($guestfile,"w");
    fputs($fp,$adddata);
    fclose($fp);
    $buffer=implode("",$newbuffer);
    $fp=fopen($guestfile,"a");
    fputs($fp,$buffer);
    fclose($fp);

}
else{
    $fp=fopen($guestfile,"w");
      fwrite($fp,$adddata);
      fclose($fp);
}
}
?>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<title>留言板</title>
<style>
a{text-decoration:none; font-size:9pt; color:blue}
a:visited {text-decoration:none; color:009999}
a:hover {color:red; text-decoration:underline}
td{font-size:9pt;line-height:14pt}
P{font-size:9pt}
</style>
</head>
<?php
if($backimage!="" && file_exists($backimage)){
echo "<body background="".$backimage."" bgproperties="fixed">n";
}
else{
echo "<body bgcolor="".$backcolor."">n";
}
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#9999FF">
    <td height="28">
      <div align="center"><b>供电9901网上空间留言板</b></div>
    </td>
</tr>
<tr><td><div align="right"><a href="<? echo $home; ?>">[前往首页]</a></div></td></tr>
</table>
<font size="2">
<form method="post" action="guest.php">
<input type="hidden" name="mode" value="add">
<p>姓名:
    <input type="text" name="name" size="20">
    <br>
    E_Mail:
    <input type="text" name="e_mail" size="20">
    <br>
    主页:
    <input type="text" name="url" value="http://" size="30">
    <br>
    留言题目:
    <input type="text" name="title" size="50">
    <br>
    留言内容:(不撑持HTML)<br>
    <textarea name="data" rows="5" cols="60"></textarea>
<div id="Layer1" style="position:absolute; left:460px; top:152px; width:301px; height:104px; z-index:1">
    <p>脸色:</p>
    <p>
      <input type="radio" name="icon" value="1">
      <img src="<? echo $imagedir."/1.gif"; ?>" width="15" height="15">
      <input type="radio" name="icon" value="2">
      <img src="<? echo $imagedir."/2.gif"; ?>" width="15" height="15">
      <input type="radio" name="icon" value="3">
      <img src="<? echo $imagedir."/3.gif"; ?>" width="15" height="15">
      <input type="radio" name="icon" value="4" checked>
      <img src="<? echo $imagedir."/4.gif"; ?>" width="15" height="15">
      <input type="radio" name="icon" value="5">
      <img src="<? echo $imagedir."/5.gif"; ?>" width="15" height="15">
      <input type="radio" name="icon" value="6">
      <img src="<? echo $imagedir."/6.gif"; ?>" width="15" height="15"><br>
      <input type="radio" name="icon" value="7">
      <img src="<? echo $imagedir."/7.gif"; ?>" width="15" height="15">
      <input type="radio" name="icon" value="8">
      <img src="<? echo $imagedir."/8.gif"; ?>" width="15" height="15">
      <input type="radio" name="icon" value="9">
      <img src="<? echo $imagedir."/9.gif"; ?>" width="15" height="15">
      <input type="radio" name="icon" value="10">
      <img src="<? echo $imagedir."/10.gif"; ?>" width="15" height="15">
      <input type="radio" name="icon" value="11">
      <img src="<? echo $imagedir."/11.gif"; ?>" width="15" height="15">
      <input type="radio" name="icon" value="12">
      <img src="<? echo $imagedir."/12.gif"; ?>" width="15" height="15"><br>
      <input type="radio" name="icon" value="13">
      <img src="<? echo $imagedir."/13.gif"; ?>" width="15" height="15">
      <input type="radio" name="icon" value="14">
      <img src="<? echo $imagedir."/14.gif"; ?>" width="15" height="15">
      <input type="radio" name="icon" value="15">
      <img src="<? echo $imagedir."/15.gif"; ?>" width="15" height="15">
      <input type="radio" name="icon" value="16">
      <img src="<? echo $imagedir."/16.gif"; ?>" width="15" height="15"> </p>
</div>
</p>
<p align="center">
    <input type="submit" name="b1" value="写入">
    <input type="reset" name="b2" value="重写">
</p>
</form>
<hr>
<?php
if(!file_exists($guestfile)){
echo "<p align="center">没有留言</p>";
}
else{
$filebuffer=file($guestfile);
$size=sizeof($filebuffer);
$pages=ceil($size/20);
echo "<p align="center">共".$size."条留言    第".$page."页/共".$pages."页<br>";
if($page>1){
    $prev=$page-1;
    echo "<a href="guest.php?".$prev.""><<</a> ";
}
for($i=1;$i<=$pages;$i++){
    echo " <a href="guest.php?".$i."">".$i."</a> ";
}
if($page<$pages){
    $next=$page+1;
    echo "<a href="guest.php?".$next.""> >></a>";
}
echo "</p></font><table width="650" border="0" cellspacing="0" cellpadding="0">";
for($i=($page-1)*20; $i<$page*20 && $i<$size; $i++){
    $buffer=explode("t",$filebuffer[$i]);
    echo "<tr><td valign="top" width="25"><img src="".$imagedir."/".$buffer.".gif"></td>";
    echo "<td valign="top" width="250"><p align="left">".$buffer."</p></td>";
    echo "<td valign="top" width="80"><p align="left"><B>(".$buffer.")</B></p></td>";
    echo "<td valign="top" width="35"><p align="center">";
    if($buffer!="0"){
      echo "<a href="".$buffer."">主页</a>";
    }
    else{
      echo "主页";
    }
    echo "</p></td>";
    echo "<td valign="top" width="35"><p align="center">";
    if($buffer!="0"){
      echo "<a href="mailto:".$buffer."">E_Mail</a>";
    }
    else{
      echo "E_Mail";
    }
    echo "</p></td>";
    echo "<td valign="top" width="175"><p align="left">".$buffer."</p></td>";
    echo "</tr><tr><td> </td>";
    echo "<td colspan="5" width="575">".$buffer."</td></tr><tr><td> </td></tr>";
}
}
?>
</table><hr><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td>
<div align="center">本网站由<a href="mailto:gdgzljx@163.net">猖狂电脑任务室</a>制造   2000</div></td></tr></table>
</body></html>   
毕业设计作品自己个人还是觉得比较满意的,尽管有些功能考虑的不全面,也没有很好的实现。

分手快乐 发表于 2015-2-4 08:40:39

为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。

柔情似水 发表于 2015-2-9 20:17:33

学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql

金色的骷髅 发表于 2015-3-8 01:12:51

微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。

小妖女 发表于 2015-3-15 18:26:03

在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。

老尸 发表于 2015-3-17 17:08:35

,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。

深爱那片海 发表于 2015-3-24 12:37:47

有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。

只想知道 发表于 2015-4-2 05:14:29

要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。

变相怪杰 发表于 2015-4-10 00:15:34

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

飘灵儿 发表于 2015-4-12 15:55:59

Ps:以上纯属原创,如有雷同,纯属巧合

乐观 发表于 2015-4-13 22:20:50

遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。

灵魂腐蚀 发表于 2015-4-14 21:45:15

在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、

因胸联盟 发表于 2015-4-16 23:12:57

其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎

仓酷云 发表于 2015-4-21 16:30:44

兴趣是最好的老师,百度是最好的词典。

谁可相欹 发表于 2015-4-28 09:21:20

真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,

小魔女 发表于 2015-5-3 05:57:38

不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。

活着的死人 发表于 2015-5-10 16:16:22

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的

不帅 发表于 2015-6-10 14:03:48

建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。

精灵巫婆 发表于 2015-6-13 06:36:34

在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、

透明 发表于 2015-6-24 15:31:04

再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
页: [1]
查看完整版本: PHP网页编程之一个可分页的基于文本的PHP留言板