一个留言板
学习了两天的PHP和MySQL,自己写了一个小小的留言板。都说写程序是练出来的,我这也是检验自己的学习成果,同时我也非常乐意把源代码共享出来。唔,极其简陋,欢迎大家吐槽 :-)
#这是我的文件结构 >ls config.php index.php install.php publish.php style.css #一共五个文件,我一次介绍一下功能 #config.php 根据名字来看,这应该是一个配置文件 #index.php 留言板的首页,展示及发布内容 #install.php 留言板安装程序,其实就是自动创建留言板所需要的MySQL库和表 #publish.php 将表单内容反馈到MySQL服务器的程序 #style.css 控制主页的外观样式 #我已经将源代码打包为 board.zip 其中还有一个 说明.txt 文件
这个简易的留言板没有任何的安全措施,代码仅供初学者学习参考,请勿将该系统安装到真实网络中,带来的一切损失,本人概不负责。(看起来好严重的样子 - -|||)
下面是各文件的代码,本着开源精神,各位随意观赏摘抄~
(嘘,我不会告诉别人install.php的部分关键内容正是从w3school里抄过来的)
1 #config.php 2 3 <?php 4 //MySQL服务器地址 5 $db_server_addr = 'localhost'; 6 //MySQL服务器用户名 7 $db_username = 'root'; 8 //MySQL服务器登陆密码 9 $db_password = 'Eric0328'; 10 //MySQL服务器数据库名称 11 $db_database = 'board'; 12 //MySQL服务器数据表名称 13 $db_table_name = 'messages'; 14 ?>
1 #index.php 2 3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 4 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 5 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 6 <head> 7 <meta http-equiv="Content-Type" content="text/html; charset=uft-8" /> 8 <title>留言板</title> 9 <link rel="stylesheet" type="text/css" href="style.css" /> 10 </head> 11 <body> 12 <div class="all"> 13 <div class="head"> 14 <div style="width:83px;float:right;margin-top:20px;"><a href="http://validator.w3.org/check?uri=referer"><img 15 src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a></div> 16 <h1>留言板</h1> 17 </div> 18 19 <div class="publish"> 20 <form method="post" action="publish.php"> 21 <table> 22 <tr> 23 <td><input class="name" type="text" name="name" value="名字" /> </td> 24 <td><input class="email" type="text" name="email" value="电子邮件" /></td> 25 <td rowspan="2"><input class="pub" type="submit" value="发布留言" name="submit" /></td> 26 </tr> 27 <tr> 28 <td colspan="2"><textarea class="cont" name="other" cols="105" rows="6">在这里输入留言的内容</textarea></td> 29 </tr> 30 </table> 31 </form> 32 </div> 33 34 <div class="content"> 35 <table> 36 <?php 37 //读取配置信息 38 include("config.php"); 39 //连接数据库 40 $dbc = mysqli_connect($db_server_addr, $db_username, $db_password, $db_database) 41 or die('Error Connect to MySQL Server.'); 42 //倒叙读取数据表的内容 43 $query = " select * from $db_table_name order by id desc;"; 44 45 $result = mysqli_query($dbc, $query); 46 //逐行读取表格内容 47 while($row = mysqli_fetch_array($result)) 48 { 49 50 $id = $row['id']; 51 $datetime = $row['datetime']; 52 $name = $row['name']; 53 $email = $row['email']; 54 $content = $row['content']; 55 56 //打印到浏览器 57 echo '<tr>'; 58 echo " <td class=\"space\" colspan=\"3\"></td>"; 59 echo '</tr>'; 60 echo '<tr>'; 61 echo " <td class=\"name\">$name</td><td colspan=\"2\" class=\"id\">留言编号:$id</td>"; 62 echo '</tr>'; 63 echo '<tr>'; 64 echo " <td colspan=\"3\" class=\"content\">$content</td>"; 65 echo '</tr>'; 66 echo '<tr>'; 67 echo " <td colspan=\"3\" class=\"datetime\">$datetime</td>"; 68 echo '</tr>'; 69 70 } 71 //关闭数据连接 72 mysqli_close($dbc); 73 74 ?> 75 76 </table> 77 78 </div> 79 </div> 80 </body> 81 </html>
1 #install.php 2 3 <?php 4 //读取配置文件 5 include("config.php"); 6 7 //连接MySQL数据库 8 $con = mysql_connect($db_server_addr, $db_username, $db_password); 9 if (!$con) 10 { 11 //失败返回错误 12 die('Could not connect: ' . mysql_error()); 13 } 14 15 //创建数据库 16 if (mysql_query("CREATE DATABASE $db_database",$con)) 17 { 18 echo "数据库创建成功!<br />"; 19 20 //数据库创建成功后创建数据表格 21 mysql_select_db($db_database, $con); 22 $sql = "CREATE TABLE $db_table_name 23 ( 24 id int, 25 datetime datetime, 26 name varchar(30), 27 email varchar(50), 28 content text 29 )"; 30 31 if( mysql_query($sql,$con) ) 32 { 33 echo "数据表创建成功!<br />"; 34 echo "安装成功! <a href=\"index.php\">跳转到留言板首页</a>"; 35 } 36 else 37 { 38 //创建表格失败返回错误信息 39 echo "错误!创建数据表失败: <br />" . mysql_error(); 40 } 41 } 42 else 43 { 44 //创建库失败返回错误信息 45 echo "错误!创建数据库失败: <br />" . mysql_error(); 46 } 47 48 //关闭连接 49 mysql_close($con); 50 51 ?>
1 #publish.php 2 3 <?php 4 //读取配置文件 5 include("config.php"); 6 7 //读取表单填写的内容 8 $name = $_POST['name']; 9 $email = $_POST['email']; 10 $content = $_POST['other']; 11 12 //连接数据库 13 $dbc = mysqli_connect($db_server_addr, $db_username, $db_password, $db_database) 14 or die('Error Connect to MySQL Server.'); 15 16 //获得SQL语句: 获取表格中ID最大值 17 $query = "select max(id) from $db_table_name"; 18 19 //向数据库请求 20 $result = mysqli_query($dbc, $query); 21 22 //验证表中是否有内容 23 if($row = mysqli_fetch_array($result)) 24 { 25 //如有ID,将现有ID自增1 26 $id = $row['max(id)'] + 1; 27 }else{ 28 //如无ID,将ID设为1 29 $id = 1; 30 } 31 32 //获取当前日期时间信息 33 $datetime = date('Y-m-d H:i:s',time()); 34 35 //向数据表中添加数据 36 $query = "insert into $db_table_name (id, datetime, name, email, content) values ('$id', '$datetime', '$name', '$email', '$content');"; 37 38 $result = mysqli_query($dbc, $query); 39 40 //关闭数据连接 41 mysqli_close($dbc); 42 43 //跳转回留言板首页 44 echo "<script>location.href='index.php';</script>"; 45 46 ?>
1 #style.css 2 3 img { 4 border: none; 5 } 6 7 body{ 8 background:#CC8022; 9 } 10 11 .head { 12 height:70px; 13 top:0px; 14 border-bottom:5px solid #CC8022; 15 width:800px; 16 position:fixed; 17 background-color:orange; 18 } 19 .publish { 20 height:137px; 21 bottom:0px; 22 border-top:5px solid #CC8022; 23 width:800px; 24 position:fixed; 25 } 26 27 .publish table { 28 width:800px; 29 border-collapse: collapse; 30 background-color: orange; 31 border:none; 32 } 33 34 .publish .pub { 35 width:70px; 36 height:135px; 37 background-color: #FF8000; 38 border:none ; 39 } 40 41 .publish .cont { 42 resize: none; 43 border:none ; 44 width: 720px; 45 height: 106px; 46 background-color: #FFB937; 47 } 48 49 .publish .name, .publish .email { 50 resize: none; 51 width: 361px; 52 height: 21px; 53 background-color: #FFB937; 54 border:none; 55 } 56 57 .content { 58 width:800px; 59 margin-top:70px; 60 margin-bottom:137px; 61 background-color:orange; 62 } 63 64 .content .table{ 65 width:800px; 66 } 67 68 .content .name{ 69 width:200px; 70 } 71 .content .id{ 72 text-align:right; 73 } 74 .content .content{ 75 vertical-align:top; 76 background-color: #FFB937; 77 width:800px; 78 height:100px; 79 } 80 .content .datetime{ 81 text-align:right; 82 83 } 84 .content .space{ 85 height: 10px; 86 87 } 88 .all { 89 width: 800px; 90 margin:0px auto; 91 }
目前专注学习PHP&MySQL。