唐伯虎 发表于 2021-7-4 10:47:12

[PHP] PHP+MYSQL留言板制作

  PYTHON学习先告一段落,最近一直在研究PHP,刚好最近看到留言板制作,所以整理了点自己的心得写了出来,供大家参考
  PS:附件有代码包供大家下载.
  

  系统环境:    WAMP
  IDE:         NETBEANS
  SQL工具:   NAVICAT
  

  显示效果
  如图:




  

  1.导入MYSQL数据:
  将如下SQL语句导入库,假定库名称为bbs,这里保证库与表字段的编码都为UTF-8模式
  -------------------------------------------
  CREATE TABLE `message` (
  `id` tinyint(1) NOT NULL auto_increment,
  `user` varchar(25) NOT NULL,
  `title` varchar(50) NOT NULL,
  `content` tinytext NOT NULL,
  `lastdate` date NOT NULL,
  PRIMARY KEY(`id`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
  --------------------------------------------
  

  2.部分PHP代码
  add.php
  ------------------------------------------------
  <?
  //加载conn.php文件
  include("conn.php");
  //加载head.php文件
  include("head.php");
  //提交表单到数据库
  if($_POST['submit']){
  $sql = "insert into message(id,user,title,content,lastdate) " .
  "values('','$_POST','$_POST','$_POST',now())";
  mysql_query($sql);
  echo "<script language=\"javascript\">alert('添加成功');history.go(-1)</script>";
  }
  

  ?>
  <!--利用JS对表单输入进行字符限制-->
  <SCRIPT language=javascript>
  function CheckPost() {
  if (myform.user.value==""){
  alert("请填写用户名");
  myform.user.focus();
  return false;
  }
  if (myform.title.value.length<5){
  alert("标题不能少于5个字符");
  myform.title.focus();
  return false;
  }
  if (myform.content.value==""){
  alert("必须要填写留言内容");
  myform.content.focus();
  return false;
  }
  

  }
  </SCRIPT>
  <!--HTML表单结构-->
  <form action="add.php" method="post" name="myform" >
  用户: <input type="text" size="10" name="user"/><br>
  标题: <input type="text" name="title" value="value" size="40" maxlength="40"/><br>
  内容: <textarea name="content"></textarea><br/>
  

  <input type='submit' name='submit' value="发布留言"/>
  

  </form>
  ------------------------------------------------
  

  head.php
  -------------------------------------------------
  <!--HTML头导航链接-->
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title></title>
  <link href="p_w_picpaths/css.css" rel="stylesheet" type="text/css">
  <b><a href="add.php">添加留言</a> | <a href="list.php">浏览留言</a> | <a href="login.php">登陆</a></b>
  <hr size="1">
  -------------------------------------------------
  

  list.php

  -------------------------------------------------
  <?
  //加载conn.php文件
  include("conn.php");
  //加载head.php文件
  include("head.php");
  

  //设置分页值为5
  $pagesize=5;
  //取得除域名外后面完整的地址路径
  $url=$_SERVER["REQUEST_URI"];
  //取得该固定键值的url数组
  $url=parse_url($url);
  //print_r($url);
  //取得url的路径值
  $url=$url;
  

  //取得test表信息
  $numq =mysql_query("select * from message");
  //取得test表内容的行数
  $num = mysql_num_rows($numq);
  

  //判断是否能取到page参数值
  if($_GET){
  //将该值传给pageval
  $pageval=$_GET;
  //计算page值,供SQL语句使用
  $page=($pageval-1)*$pagesize;
  //等价于 $page = $page.',' 意思就是将page参数值与,连接起来
  $page.=",";
  }
  

  //判断数据库条目总数大于页数,显示分页
  if($num > $pagesize){
  //判断上一页和下一页的值若小于0,则按照0处理
  if($pageval<=1)
  $pageval=1;
  //显示分页
  echo "共 $num 条".
  //.(...).用来连接变量名
  " <a href=$url?page=".($pageval-1).">上一页</a> <a href=$url?page=".($pageval+1).">下一页</a>";
  }
  

  ?>
  <!--HTML留言列表结构-->
  <table width=500 border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#add3ef">
  <?
  $sql = "select * from message order by id desc limit $page $pagesize";
  $query = mysql_query($sql);
  while($row=mysql_fetch_array($query)){
  ?>
  <tr bgcolor="#eff3ff">
  <td>标题:<?=$row?> 用户:<?=$row?></td>
  </tr>
  <tr bgColor="#ffffff">
  <td>内容:<? echo htmtocode($row); ?></td>
  <tr bgColor="#ffffff">
  <td>时间:<?=$row?></td>
  </tr>
  <?
  }
  ?>
  </table>
  -------------------------------------------------
  

  conn.php

  --------------------------------------------------
  <?
  //登录MYSQL数据库
  $conn = @ mysql_connect("localhost", "root", "") or die("数据库链接错误");
  //进入BBS库
  mysql_select_db("bbs", $conn);
  //使用UTF-8中文编码传输数据流
  mysql_query("set names 'UTF8'");
  //修改空格和回车编码为HTML可识别编码
  function htmtocode($content){
  $content = str_replace("\n","<br>", str_replace(" ", "&nbsp;", $content));
  return $content;
  }
  

  ?>
  --------------------------------------------------
  

  login.php
  ---------------------------------------------------
  <?
  //加载conn.php文件
  include("conn.php");
  //判断是否退出,并标记cookie为out,返回登录页
  if($_GET){
  setcookie("cookie","out");
  echo "<script language=\"javascript\">location.href='login.php';</script>";
  }
  //提交表单判断登录ID是否为admin,密码是否匹配'PHP'的MD5值,并标记cookie为ok
  if($_POST =='admin'){
  $pw=md5($_POST);
  if ($pw=='e1bfd762321e409cee4ac0b6e841963c'){
  setcookie("cookie","ok");
  //刷新登录页面使cookie标记值生效.
  echo "<script language=\"javascript\">location.href='login.php';</script>";
  }
  }
  //加载head.php文件
  include("head.php");
  //提交表单判断cookie标记值不为ok,则显示登录页,否则显示退出页
  if($_COOKIE['cookie']!='ok'){
  ?>
  <!--利用JS对登录字符进行限制-->
  <SCRIPT language=javascript>
  function Checklogin(){
  if (myform.id.value ==""){
  alert("请填写登录名");
  myform.id.focus();
  return false;
  }
  if (myform.id.value !=="admin"){
  alert("用户名错误");
  myform.id.focus();
  return false;
  }
  if (myform.pw.value ==""){
  alert("密码不能为空");
  myform.pw.focus();
  return false;
  }
  

  }
  }
  </SCRIPT>
  <!--HTML登录页-->
  <form action="" method="post" name="myform" >
  用户名: <INPUT type="text" name="id" /><br>
  密&nbsp;&nbsp;码: <INPUT type="password" name="pw" />
  <input type="submit" name="submit" value="登陆">
  

  </form>
  

  <?
  }else{
  ?>
  <!--HTML退出页-->
  <a href='?out=login'>退出</a>
  <?
  }
  ?>
  ---------------------------------------------------
  


  
页: [1]
查看完整版本: [PHP] PHP+MYSQL留言板制作