### 用 PHP 打造无数据库的留言本

本文介绍一种通过读取文本文件的方法实现留言本基本功能，在PHP4+Apache For Win98 下调试通过。从这个程序中我们可以体会到PHP与HTML语言交互嵌入的灵活编程风格。
首先，进入留言本页面，我们需要用

窗体顶端

表单提交留言者的信息，并用PHP处理信息，可以在default.php中实现这两项功能，具有详细注释的源代码如下：
# default.php#
<?php
//条件语句用来判断表单是否提交，内容是否填写完整；
if ( sent=="sent"){
if ( name=="") {echo "请输入用户名";}
else if ( email=="") {echo "请输入email";}
else if ( note=="") {echo "请输入留言";}
else { fp=fopen("text.txt","a+"); //可读写方式打开text.txt文件用于存储留言，若不存在则新建一个；
t = date(Y年m月d日h时m分s秒);//得到当前时间；
main = "网上大名：<a href=\"mailto:$email\"> name</a>:( t)<br>
留言内容： <a href=\"text.txt\"> note</a> <br><hr>";
write=fwrite( fp, main); //写入文件；
fclose( fp);
echo "谢谢你的留言=>";
echo "<a href=\"body.php\">查看留言<a>|<a href=\"index.htm\">返回首页<a>";
}
}
?>
<center>
<h2>我的留言板</h2>
<form method="post" action="default.php?sent">
请输入你的姓名:<br>
<input type="text" name="name"><br>
请输入你的Email:<br>
<input type="text" name="email"><br>
请输入你的留言:<br>
<textarea name="note" cols="30" rows="5"></textarea>
<input type="hidden" name="sent" value="sent">
<input type="submit" name="Submit" value="确定">
<input type="reset" name="Submit2" value="重设">
</form>
</center>
其中，<form> 标签域中的代码是标准的HTML语言，用于输入访问者的信息，提交后的信息送到当前页面（default.php），注意在<form>中有一行：
<input type="hidden" name="sent" value="sent">
该行内容并不显示出来，只是完成给变量 sent赋一个值“sent”，表单未提交时，变量 sent值为空，<?php … ?>中条件判断 sent=="sent"不成立，PHP程序不进行任何操作，只有提交后才执行下面的PHP程序。完成后，可以通过“查看留言”链接查看留言，这就是我们下面给出的body.php程式：
# body.php#
<h3><center>朋友的留言:<center></h3>
<?php
f = fopen("text.txt","a+"); //读写方式打开文件，若不存在则新建
msg = fread( f,filesize("text.txt")); //读取文件
fclose( f); //关闭文件
print "<center> msg</center>"; //输出留言
echo "<a href=\"default.php\">返回留言本|</a>";
echo "<a href=\"index.htm\">返回首页</a>";
?>
相信大家能很容易地读懂这段代码。在上面的两段程序中，我们省略了HTML的其他标签，其实，大家可以将以上两段代码放在标签域中，对页面进行装饰，PHP界定符间的代码还可以放在<html> … <html>区域之外。可见，PHP同HTML的交互嵌入是相当灵活的，请注意在PHP中嵌入HTML语句的格式。
本例中，文件default.php、body.php和存放留言的text.txt(见于body.php中)放在服务器同一目录下，读者可根据需要进行调整。有兴趣的话，在此例的基础上还可以添加其它功能，如对留言者输入的信息内容或格式进行审查（用正则表达式）和留言本的管理、留言者的信息获取等。

窗体底端