| 
 
|   
 留言显示页面:比上一个例子增加了分页和留言回复的功能
 
   主要代码:
 install/index.php:程序安装页面
 代码如下:
 
 <?php
 if($_GET["action"]!=1)
 {
 ?>
 <form method="post" action="index.php?action=1">
 <table border="1">
 <tr>
 <td>MySQL主机名:</td>
 <td><input type="text" name="host" value="localhost"></td>
 </tr>
 <tr>
 <td>MySQL用户名:</td>
 <td><input type="text" name="user" value="root"></td>
 </tr>
 <tr>
 <td>MySQL密码:</td>
 <td><input type="password" name="password" value=""></td>
 </tr>
 <tr>
 <td>数据库名称:</td>
 <td><input type="text" name="database" value="ruizhi_messageboard"></td>
 </tr>
 <tr>
 <td>留言本每页记录数:</td>
 <td><input type="text" name="pagenum" value="10"></td>
 </tr>
 <tr>
 <td>管理员账号:</td>
 <td><input type="text" name="admin_name" value="admin"></td>
 </tr>
 <tr>
 <td>管理员密码:</td>
 <td><input type="text" name="admin_password" value="admin"></td>
 </tr>
 <tr>
 <td>留言本标题:</td>
 <td><input type="text" name="boardname" value="RUIZHINET留言本"></td>
 </tr>
 <tr>
 <td colspan="2" align="center"><input type="submit" name="submit" value="确定安装"> <input type="button" name="submit" value="关闭页面"></td>
 <td></td>
 </tr>
 </table>
 </form>
 <?php
 }else{
 @set_time_limit(1000);
 $lockfile = "install.lock";
 $host="localhost";
 $user="root";
 $password="";
 $database="ruizhi_messageboard";
 $pagenum=10;
 $admin_name="admin";
 $admin_password="123456";
 $boardname="RUIZHINET留言本";
 if($_POST["host"]!=""){
 $host=$_POST["host"];
 }
 if($_POST["user"]!=""){
 $user=$_POST["user"];
 }
 if($_POST["password"]!=""){
 $password=$_POST["password"];
 }
 if($_POST["database"]!=""){
 $database=$_POST["database"];
 }
 if($_POST["pagenum"]!=""){
 $pagenum=$_POST["pagenum"];
 }
 if($_POST["admin_name"]!=""){
 $admin_name=$_POST["admin_name"];
 }
 if($_POST["admin_password"]!=""){
 $admin_password=$_POST["admin_password"];
 }
 if($_POST["boardname"]!=""){
 $boardname=$_POST["boardname"];
 }
 if(file_exists($lockfile)){
 exit("已经安装过了,如果要重新安装请先删除install/install.lock");
 }
 $conn=mysql_connect($host,$user,$password);
 if($conn){
 $sql_drop_database="DROP DATABASE IF EXISTS `".$database."`";
 $sql_create_database="CREATE DATABASE `".$database."`";
 $sql_create_table_messageboard="CREATE TABLE `messageboard` (
 `id` int(11) NOT NULL auto_increment,
 `author` varchar(15) NOT NULL,
 `title` varchar(30) NOT NULL,
 `smiles` varchar(30) NOT NULL,
 `content` mediumtext,
 `photo` varchar(30) NOT NULL,
 `addtime` int(11) default NULL,
 PRIMARY KEY (`id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=gbk AUTO_INCREMENT=1";
 $sql_create_table_reply="CREATE TABLE `reply` (
 `id` int(11) NOT NULL auto_increment,
 `msgid` int(11) NOT NULL,
 `content` mediumtext,
 `addtime` int(11) default NULL,
 PRIMARY KEY (`id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=gbk AUTO_INCREMENT=1";
 if(mysql_query($sql_drop_database,$conn)){
 if(mysql_query($sql_create_database,$conn)){
 mysql_select_db($database,$conn);
 if(mysql_query($sql_create_table_messageboard,$conn) && mysql_query($sql_create_table_reply,$conn)){
 $config_file="../config.php";
 $config_strings="<?php\n";
 $config_strings.="\$boardname=\"".$boardname."\";\n";
 $config_strings.="\$host=\"".$host."\";\n";
 $config_strings.="\$user=\"".$user."\";\n";
 $config_strings.="\$password=\"".$password."\";\n";
 $config_strings.="\$database=\"".$database."\";\n";
 $config_strings.="\$pagenum=\"".$pagenum."\";\n";
 $config_strings.="\$admin_name=\"".$admin_name."\";\n";
 $config_strings.="\$admin_password=\"".$admin_password."\";\n";
 $config_strings.="\$conn=mysql_connect(\$host,\$user,\$password);\n";
 $config_strings.="mysql_select_db(\$database,\$conn);\n";
 $config_strings.="?>";
 if($fp=fopen($config_file,"wb")){
 if(fwrite($fp,$config_strings)){
 if($fp2 = fopen($lockfile, 'w'))
 {
 fwrite($fp2,'1212');
 fclose($fp2);
 }
 echo "安装成功!配置文件为:config.php,您可以手工修改该文件";
 echo "\n<a href='../index.php'>进入系统首页</a>";
 }else{
 exit("文件写入失败");
 }
 fclose($fp);
 }
 }else{
 exit("不能执行CREATE TABLE语句:".$sql_create_table);
 }
 }else{
 exit("不能执行CREATE DATABASE语句:".$sql_create_database);
 }
 }else{
 exit("不能执行DROP DATABASE语句:".$sql_drop_database);
 }
 }else{
 exit("连接数据库失败,请检查MySQL主机名、用户名和密码");
 }
 }
 
 
 生成的config.php文件:
 代码如下:
 
 <?php
 $boardname="RUIZHINET留言本";
 $host="localhost";
 $user="root";
 $password="";
 $database="ruizhi_messageboard";
 $pagenum="10";
 $admin_name="admin";
 $admin_password="admin";
 $conn=mysql_connect($host,$user,$password);
 mysql_select_db($database,$conn);
 ?>
 
 
 index.php:程序显示页面
 代码如下:
 
 <?php
 if(!$_GET["page"]){
 $page=1;
 }else{
 $page=$_GET["page"];
 }
 $sql="SELECT id FROM messageboard";
 $result=mysql_query($sql,$conn);
 $row_num=mysql_num_rows($result);
 $page_count=ceil($row_num/$pagenum);
 echo "当前共有".$row_num."条留言";
 echo " 共分".$page_count."页显示";
 echo " 当前为第".$page."页";
 ?>
 <p>
 <?php
 if($row_num==0){
 echo "暂时没有留言";
 }else{
 ?>
 <table border="1" width="700">
 <?php
 $offset=($page-1)*$pagenum;
 $sql2="SELECT * FROM messageboard ORDER BY id DESC LIMIT $offset,$pagenum";
 $result2=mysql_query($sql2,$conn);
 while($row=mysql_fetch_array($result2)){
 $offset++;
 echo "<tr>";
 echo "<td align=left bgcolor=#CCCCFF>";
 echo $offset.".<img src='smiles/".base64_decode($row[smiles])."'>";
 echo base64_decode($row[title])." - ".base64_decode($row[author])." [".date("Y年m月d日",$row[addtime])."] ";
 if(isset($_SESSION["admin_name"]) && $_SESSION["admin_name"]!=""){
 echo "<a href=del.php?id=".$row["id"].">删除 | </a>";
 echo "<a href=reply.php?id=".$row["id"].">回复</a>";
 }
 echo "</td></tr>";
 echo "<tr><td align=left>".base64_decode($row["content"])."</td></tr>";
 if($row["photo"]!="NONE")
 {
 echo "<tr><td align=left><img src='upfile/".base64_decode($row["photo"])."'></td></tr>";
 }
 $sql3="SELECT * FROM reply WHERE msgid=$row[id] ORDER BY id DESC";
 $result3=mysql_query($sql3,$conn);
 while($row3=mysql_fetch_array($result3)){
 echo "<tr><td align=left bgcolor=#99CCFF>回复:".date("Y年m月d日",$row3[addtime]);
 if(isset($_SESSION["admin_name"]) && $_SESSION["admin_name"]!=""){
 echo "<a href=delreply.php?id=".$row3["id"].">删除</a>";
 }
 echo "</td></tr>";
 echo "<tr><td align=left>".base64_decode($row3[content])."</td></tr>";
 }
 }
 ?>
 <?php
 if($page_count>1){
 $prev_page=$page-1;
 $next_page=$page+1;
 if($page<=1){
 echo "第一页 | ";
 }else{
 echo "<a href='index.php?page=1'>第一页</a> | ";
 }
 if($prev_page<1){
 echo "上一页 | ";
 }else{
 echo "<a href='index.php?page=".$prev_page."'>上一页</a> | ";
 }
 if($next_page>$page_count){
 echo "下一页 | ";
 }else{
 echo "<a href='index.php?page=".$next_page."'>下一页</a> | ";
 }
 if($page>=$page_count){
 echo "最后一页";
 }else{
 echo "<a href='index.php?page=".$page_count."'>最后一页</a>";
 }
 }
 ?>
 </table>
 <?php
 }
 ?>
 <?php
 if(isset($_SESSION["admin_name"]) && $_SESSION["admin_name"]!=""){
 ?>
 <p><a href="logout.php">退出管理</a></p>
 <?php
 }else{
 ?>
 <p><a href="login.php">登陆管理</a></p>
 <?php
 }
 ?>
 
 
 saveadd.php:保存留言
 代码如下:
 
 <?php
 if(!$_POST["author"] || !$_POST["content"])
 {
 echo "<meta http-equiv=\"refresh\" content=\"2;url=index.php\">\n";
 echo "你没有填写留言姓名或内容,2秒钟返回首页";
 exit();
 }else{
 $imgflag=0;
 function random($length)
 {
 $hash = 'IMG-';
 $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
 $max = strlen($chars) - 1;
 echo (double)microtime() * 1000000;
 for($i = 0; $i < $length; $i++)
 {
 $hash .= $chars[mt_rand(0, $max)];
 }
 return $hash;
 }
 function fileext($filename)
 {
 return substr(strrchr($filename, '.'), 1);
 }
 if($_FILES["upfile"]["name"]!=""){
 $uploaddir="upfile/";
 $type=array("jpg","gif","bmp","jpeg","png");
 if(!in_array(strtolower(fileext($_FILES['upfile']['name'])),$type))
 {
 echo "<meta http-equiv=\"refresh\" content=\"2;url=index.php\">\n";
 $text=implode(",",$type);
 echo "您只能上传以下类型文件: ",$text,"<br>";
 exit();
 }
 else
 {
 $filename=explode(".",$_FILES['upfile']['name']);
 do
 {
 $filename[0]=random(10);
 $randname=implode(".",$filename);
 $uploadfile=$uploaddir.$randname;
 } while(file_exists($uploadfile));
 if (move_uploaded_file($_FILES['upfile']['tmp_name'],$uploadfile)){
 echo "上传图片成功";
 $imgflag=1;
 }
 else{
 echo "上传图片失败!";
 $imgflag=0;
 }
 }
 }
 $author=base64_encode($_POST["author"]);
 $content=base64_encode(ereg_replace("\r\n","<br>",htmlspecialchars($_POST["content"])));
 $smiles=base64_encode($_POST["smiles"]);
 if($_POST["title"]){
 $title=base64_encode($_POST["title"]);
 }else{
 $title=base64_encode("无标题");
 }
 $addtime=time();
 if($imgflag==1){
 $photo=base64_encode($randname);
 }else{
 $photo="NONE";
 }
 //保存数据
 $sql="INSERT INTO messageboard(author,title,smiles,content,photo,addtime) VALUES('$author','$title','$smiles','$content','$photo',$addtime)";
 mysql_query($sql,$conn);
 echo "<meta http-equiv=\"refresh\" content=\"2;url=index.php\">\n";
 echo "谢谢您的留言,2秒钟返回首页";
 }
 ?>
 savereply.php:保存回复
 <?php
 if(isset($_SESSION["admin_name"]) && $_SESSION["admin_name"]!="")
 {
 if(!$_POST["content"])
 {
 echo "<meta http-equiv=\"refresh\" content=\"2;url=index.php\">\n";
 echo "你没有填写回复内容,2秒钟返回首页";
 exit();
 }else{
 $msgid=$_POST["msgid"];
 $content=base64_encode(ereg_replace("\r\n","<br>",htmlspecialchars($_POST["content"])));
 $addtime=time();
 //保存数据
 $sql="INSERT INTO reply(msgid,content,addtime) VALUES($msgid,'$content',$addtime)";
 mysql_query($sql,$conn);
 echo "<meta http-equiv=\"refresh\" content=\"2;url=index.php\">\n";
 echo "谢谢您的留言,2秒钟返回首页";
 }
 }
 ?>
 
 
 
 
 | 
 上一篇:网页游戏开发入门教程二(游戏模式+系统) 下一篇:24张用户组图片整套免费提供了(带PSD原图),透明背景的 |