php简单的留言板实例程序

 更新时间:2016年11月25日 15:40  点击:1531
下面是一个简单的留言板例子,包括创建mysql数据表与连接mysql数据库然后对数据表的查询,提交保存数据与数据删除功能,这其实就是一个最基本的留言板功能了,下面直接上例子。

首先数据库的SQL如下:

 代码如下 复制代码

-- -- 表的结构 `message` --

CREATE TABLE `message` (   `id` int(10) NOT NULL auto_increment,   `user` varchar(25) character set utf8 NOT NULL,
`title` varchar(50) character set utf8 NOT NULL,   `content` tinytext character set utf8 NOT NULL,   `lastdate` date NOT NULL,

PRIMARY KEY  (`id`) ) ENGINE=InnoDB  DEFAULT CHARSET=gbk AUTO_INCREMENT=11 ;

程序代码如下:

首先创建config.php,代码如下:

 代码如下 复制代码

<?php $conn = @mysql_connect("localhost","root","") or die("数据库连接出错!");
mysql_select_db("lyb",$conn); mysql_query("set names utf8"); ?>

然后创建index.php,代码如下:

 代码如下 复制代码

<form action="index.php" method="post"> <table border="1" align="center" > 用 www.111cn.net 户:<input type="text" name="user" /><br>
标题:<input type="text" name="title" /><br /> 内容:<textarea name="content"></textarea><br />

<input type="submit" name="submit" value="php教程" /></table> </form>

接受提交数据保存到数据表中

 

 代码如下 复制代码

<?php include("config.php");

if($_POST['submit'] && !empty($_POST['title'])&& !empty($_POST['user'])&& !empty($_POST['content']))

{ $sql="insert into message (id,user,title,content,lastdate) values ('','$_POST[user]','$_POST[title]','$_POST[content]',now())";

mysql_query($sql); //echo "成功"; }?>

查询留言记录

 代码如下 复制代码

<table width=500 border="1" align="left" cellpadding="5" cellspacing="1" bgcolor="#add3ef">

<?php $sql="select * from message order by id desc"; $query=mysql_query($sql); while($row=mysql_fetch_array($query)){ ?>

<tr bgcolor="#eff3ff"> <td>标题:<?php echo $row[title];?> 用户:<?php echo $row[user];?></td> </tr> <tr bgColor="#ffffff">

<td>内容:<?php echo $row[content];?></td> </tr>

<?php } ?>

原理分析

先来看看入库吧,这个就是最基础的没有进行任何数据判断处理了

 代码如下 复制代码

if($_POST['submit'] && !empty($_POST['title'])&& !empty($_POST['user'])&& !empty($_POST['content']))

{ $sql="insert into message (id,user,title,content,lastdate) values ('','$_POST[user]','$_POST[title]','$_POST[content]',now())";

mysql_query($sql); //echo "成功"; }?>

判断用户提交过来的数据是不是不为空

$_POST['submit'] && !empty($_POST['title'] && !empty($_POST['user'])&& !empty($_POST['content'] (这里主要是介绍到所有需要填写的不为空了)

安全分析,这个很容易给大家实现sql注入了,因为没进行任何过滤处理了哦,只要网随便搜索一段注入代码就可以成功注入了,同时可以重复无限提交数据

 代码如下 复制代码

{ $sql="insert into message (id,user,title,content,lastdate) values ('','$_POST[user]','$_POST[title]','$_POST[content]',now())";

这一是保存到数据库,但没进行任何安全处理,一般情况我们不提倡直接把$_POST[user]入库的,是需要经过处理之后再进入变量传递进行入库哦,


查询数据库

 代码如下 复制代码

$sql="select * from message order by id desc";
$query=mysql_query($sql);
while($row=mysql_fetch_array($query))

这三句代码实现了数据库查询了,其实也是非常的简单的,我们只是处理了查询并没有任务一些技术处理,如判断是否有值或一次读取多少条记录。

php中遍历目录下文件函数有不少,下面本文章就来介绍dir(),readdir()函数遍历目录的例子,希望这些例子能给各位朋友带来帮助哦。

方法一:使用dir()遍历目录


dir()函数,成功时返回Directory类实例

PHP dir() 语法格式为:
dir(directory);//directory为需要显示文件名的目录名称,可包含路径信息
PHP dir() 用法举例:列出upload目录下的所有文件名:

 代码如下 复制代码
<?php
$dir = @ dir("upload");//打开upload目录;“@”可屏蔽错误信息,因有时候需要显示文件的目录内并没有文件,此时可能会报出错误,用“@”隐藏掉错误
//列举upload目录中的所有文件
while (($file = $dir->read()) !== false)
{
  echo "文件名: " . $file . "<br />";
}
$dir->close();
?>



输出结果为:

文件名: .
文件名: ..
文件名: logo.gif
文件名: arrow.gif
文件名: bg.gif

例子

 代码如下 复制代码

function tree($dir)
{
    $mydir = dir($dir);
    while($file = $mydir->read())
    {
        if($file != '.' && $file != '..')
        {
            if(is_dir("$dir/$file"))
            {
                echo '目录名:'.$dir.DIRECTORY_SEPARATOR.'<font color="red">'.$file.'</font><br />';
                tree("$dir/$file");
            }else{
                echo '文件名:'.$dir.DIRECTORY_SEPARATOR.$file.'<br />';
            }
        }
    }
    $mydir->close();
}
tree('./phpmyadmin');




方法二 使用readir()遍历目录

定义和用法

readdir() 函数返回由 opendir() 打开的目录句柄中的条目。
若成功,则该函数返回一个文件名,否则返回 false。
语法

readdir(dir_stream)

例子

 代码如下 复制代码

header('content-type:text/html;charset=utf-8');

function listDir($dir)
{
    if(is_dir($dir))
    {
        if($handle = opendir($dir))
        {
            while($file = readdir($handle))
            {
                if($file != '.' && $file != '..')
                {
                    if(is_dir($dir.DIRECTORY_SEPARATOR.$file))
                    {
                        echo '目录名:'.$dir.DIRECTORY_SEPARATOR.'<font color="red">'.$file.'</font><br />';
                        listDir($dir.DIRECTORY_SEPARATOR.$file);
                    }else{
                        echo '文件名:'.$dir.DIRECTORY_SEPARATOR.$file.'<br />';
                    }
                }
            }
        }
        closedir($handle);
    }else{
        echo '非有效目录!';
    }
}
listDir('./phpmyadmin');
php中json中文处理功能对于初学者来说是一个比较好用的函数,如果我们直接使用json处理函数来做你会发现中文会变成了null了,如果我们转换在uft8之后会显示的是中文的字符编码了,下面我整理两个工作中用到的函数,希望对各位有帮助。

例子

 代码如下 复制代码

function encodeConvert($str,$fromCode,$toCode)
{
 if(strtoupper($toCode) == strtoupper($fromCode)) return $str;

 if(is_string($str)){
  if(function_exists('mb_convert_encoding')){
   return mb_convert_encoding($str,$toCode,$fromCode);
  }
  else{
   return iconv($fromCode,$toCode,$str);
  }
 }
 elseif(is_array($str)){   
  foreach($str as $k=>$v){    
   $str[$k] = encodeConvert($v,$fromCode,$toCode);
  }
  return $str;
 }
 return $str;

}


例子

 代码如下 复制代码

/**************************************************************
 *
 *  将数组转换为JSON字符串(兼容中文)
 *  @param  array   $array      要转换的数组
 *  @return string      转换得到的json字符串
 *  @access public
 *
 *************************************************************/
function JSON($array) {
    arrayRecursive($array, 'urlencode', true);
    $json = json_encode($array);
    return urldecode($json);
}
/**************************************************************
 *
 *  使用特定function对数组中所有元素做处理
 *  @param  string  &$array     要处理的字符串
 *  @param  string  $function   要执行的函数
 *  @return boolean $apply_to_keys_also     是否也应用到key上
 *  @access public
 *
 *************************************************************/
function arrayRecursive(&$array, $function, $apply_to_keys_also = false){
    static $recursive_counter = 0;
    if (++$recursive_counter > 1000) {
        die('possible deep recursion attack');
    }
    foreach ($array as $key => $value) {
        if (is_array($value)) {
            arrayRecursive($array[$key], $function, $apply_to_keys_also);
        } else {
            $array[$key] = $function($value);
        }                                       
        if ($apply_to_keys_also && is_string($key)) {
            $new_key = $function($key);
            if ($new_key != $key) {
                $array[$new_key] = $array[$key];
                unset($array[$key]);
            }
        }
    }
    $recursive_counter--;
}


测试例子

 代码如下 复制代码

$arr = array ( 

  array ( 

      'catid' => '4', 

      'catname' => '一聚教程网', 

      'meta_title' => '一聚教程网2' 

    ), 

    array ( 

      'catid' => '55', 

      'catname' => 'php教程', 

      'meta_title' => 'http://www.111cn.net', 

    ) 

); 
                                                                          
echo JSON($arr);


echo  json_encode(encodeConvert($arr,'gb2312','utf-8'));/*  */

输出结果如下


[{"catid":"4","catname":"一聚教程网","meta_title":"一聚教程网2"},{"catid":"55","catname":"php教程","meta_title":"http://www.111cn.net"}]

[{"catid":"4","catname":"\u4e00\u805a\u6559\u7a0b\u7f51","meta_title":"\u4e00\u805a\u6559\u7a0b\u7f512"},{"catid":"55","catname":"php\u6559\u7a0b","meta_title":"http:\/\/www.111cn.net"}] 

下面整理了一些关于PHP计算两个时间差的例子,希望这些例子能帮助你解决你在日期时间差之间的一些困扰哦,下面我们一起来看看吧。

例子1

 代码如下 复制代码

<?php
//$startdate是开始时间,$enddate是结束时间

$startdate="2011-3-15 11:50:00";
$enddate="2012-12-12 12:12:12";
$date=floor((strtotime($enddate)-strtotime($startdate))/86400);
$hour=floor((strtotime($enddate)-strtotime($startdate))%86400/3600);
$minute=floor((strtotime($enddate)-strtotime($startdate))%86400/60);
$second=floor((strtotime($enddate)-strtotime($startdate))%86400%60);
echo $date."天<br>";
echo $hour."小时<br>";
echo $minute."分钟<br>";
echo $second."秒<br>";
 ?>

例子2

 代码如下 复制代码

<?php
$one = strtotime('2011-05-08 07:02:40');//开始时间 时间戳
$tow = strtotime('2012-12-25 00:00:00');//结束时间 时间戳
$cle = $tow - $one; //得出时间戳差值

/* 这个只是提示
echo ceil($cle/60); //得出一共多少分钟
echo ceil($cle/3600); //得出一共多少小时
echo ceil($cle/3600/24); //得出一共多少天
*/
/*ceil()函数,即进一法取整*/
$d = cell($cle/3600/24);
$h = cell(($cle%(3600*24))/3600);  //%取余
$m = cell(($cle%(3600*24))/60);

echo "两个时间相差 $d 天 $h 小时 $m 分"
?>

总结,两个例子都使用到了strtotime函数把日期转换在时间戳之后再除以86400等操作来算出两个日期之间相差多少时间,从天数据到秒都计算机出来了。

下面转一站长写的PHP mysql备份与恢复的类实例了,这里面主要用到的是一个数据备份类与一个文件上传类了,我们结合它们两个就可以实现数据备份与文件恢复上传功能了,具体方法如下图所示。

今天推荐的精品PHP代码就是mysql备份与恢复的类了,在一般的PHP网站中都会有在线mysql备份与恢复,这样做的好处是不用每次备份都要使用 phpmyadmin 或者是客户端的工具了,使用时将备份恢复的类 dbback.class.php 进行实例化就可以使用了。

这里直接附上该类作者的说明了:该类适用于小型的网站的数据库备份,内置MYSQL连接,只需要简单的配置数据库连接及存贮备份的位置即可,类实例化并且连接数据库以后可执行以下操作:

 代码如下 复制代码

* get_db_table($database) 取得所有数据表

* export_sql($table,$subsection=0)) 生成sql文件,注意生成sql文件只保存到服务器目录,不提供下载

* import_sql($dir) 恢复数据只导入服务器目录下的sql文件

包里作者文件的说明如下:

一、之前有发过一个mysql的备份类,但是只有备份功能,今天花了点时间,对该类进行重写, 1.新增读取数据库内所有表格 2.新增mysql在线恢复 3.修改了mysql的下载试为保存到服务器,该类具有很强的灵活性与易用性,附上两张实际开发中的应用效果.

二、另外附加前几天写的一个文件上传类,类中有附说明

 代码如下 复制代码

<?php
 /**
 * 类名:upfile
 * 作用:处理文件上传
 * 说明,该类处理单个或者多个文件上传,使用该类时,只需要实列化该类
 * 例:
 * $up = upfile()
 * $up->update_file($_FILE['filename'])
 *
 * $up->update_file   函数返回一个数组,如果是多文件上传,则为多维数据。
 * 数组的内容:
 * $fileInfo['file_size']   上传文件的大小
 * $fileInfo['file_suffix'] 上传文件的类型
 * $fileInfo['file_name']   上传文件的名字
 * $fileInfo['error']     上传文件产生的错误
 *
 * @author 赵红健[游天小虾]
 * email:328742379@qq.com
 * qq交流群:69574955 聚义堂-网页制作交
 */
class upfile {
 public $fCount = 1;           //上传文件的数量
 public $fType  = array('jpg','jpeg','gif','png');  //文件格式
 public $fSize  = 1024;          //文www.111cn.Net件大小单位kb
 public $fDir   = 'test/';         //文件存放目录
 public $errorMsg = '';          //产生的临时错误信息�ļ��ϴ�����Ĵ���

 /**
  *函数名:get_tmp_file($putFile)
  *作用:取得上传的临时文件名
  *@param array $putFile
  *@return string $upImg 返回临时文件名
  */
  function get_tmp_file($putFile){
  if($this->fCount == 1){
   $tmpFile = $putFile['tmp_name'];
  }else{
   for($i=0;$i<$this->fCount;$i++){
    $tmpFile[] = $putFile['tmp_name'][$i];
   }
  }
  return $tmpFile;
  }

 /**
  *函数名:get_suffix($fileName)
  *作用:取得文件的后缀名
  *@param file $fileName
  *@return string $suffixName 返回后缀名
  */
  function get_suffix($fileName){
  $link = pathinfo($fileName);
     $suffixName = strtolower($link['extension']);
     return $suffixName;
  }

 /**
  *验证文件大小
  *@author 赵红健
  *@param $fileSize
  *@return booln
  */
 function check_file_size($fileSize){
  $this->errorMsg = '';
  if($fileSize/1000 > $this->fSize){
   $this->errorMsg = '警告:文件超出大小!';
   return false;
  }else{
   return true;
  }
 }

 /**
  *验证文件类型是否合法
  *@author 赵红健
  *@param $fileSuffix
  *@return booln
  */
 function check_file_suffix($fileSuffix){
   $this->errorMsg = '';
   if(!in_array($fileSuffix,$this->fType)){
    $this->errorMsg = '警告:文件类型不在允许范围内!';
    return false;
   }else{
    return true;
   }
 }

 /**
  *移动临时文件
  *@author 赵红健
  *@param $fileSuffix
  *@return booln
  */
 function move_temp_file($tmpFile,$targetFile){
   $this->errorMsg = '';
   if(!move_uploaded_file($tmpFile,$targetFile)){
    $this->errorMsg = '警告:文件移动失败!';
    return false;
   }else{
    return true;
   }
 }


     /**
   *函数名:update_file($putFile)
   *作用:上传文件
   *@param array $putFile
   *@return array 文件信息
   */
    function update_file($putFile){
   $tmpFile = $this->get_tmp_file($putFile);
   if(!file_exists($this->fDir)){
       $this->errorMsg[] = '错误:目录'.$this->fDir.'不存在';
    return $this->errorMsg;
   }
   $this->fDir = substr($this->fDir,strlen($this->fDir)-1,1)=='/'?$this->fDir:$this->fDir.'/';
   if(!is_array($putFile['size'])){
    $fileInfo['file_size'] = $putFile['size'];
    if(!$this->check_file_size($fileInfo['file_size'])){
     $fileInfo['error'] = $this->errorMsg;
     return $fileInfo;
    }
    $fileInfo['file_suffix'] = $this->get_suffix($putFile['name']);
    if(!$this->check_file_suffix($fileInfo['file_suffix'])){
     $fileInfo['error'] = $this->errorMsg;
     return $fileInfo;
    }

    $fileInfo['file_name']   = date('ymdhms').'.'.$fileInfo['file_suffix'];
    if(!$this->move_temp_file($tmpFile,$this->fDir.$fileInfo['file_name'])){
     $fileInfo['error'] = $this->errorMsg;
     return $fileInfo;
    }
    return $fileInfo;

   }else{
    for($i=0;$i<$this->fCount;$i++){
     $fileInfo[$i]['file_size'] = $putFile['size'][$i];
     if(!$this->check_file_size($fileInfo[$i]['file_size'])){
      $fileInfo[$i]['error'] = $this->errorMsg;
      continue;
     }

     $fileInfo[$i]['file_suffix'] = $this->get_suffix($putFile['name'][$i]);
     if(!$this->check_file_suffix($fileInfo[$i]['file_suffix'])){
      $fileInfo[$i]['error'] = $this->errorMsg;
      continue;
     }

     $fileInfo[$i]['file_name']  = date('ymdhms').rand().'.'.$fileInfo[$i]['file_suffix'];
     if(!$this->move_temp_file($tmpFile[$i],$this->fDir.$fileInfo[$i]['file_name'])){
      $fileInfo[$i]['error'] = $this->errorMsg;
      continue;
     }
     }
    return $fileInfo;
   }
    }
}

?>

备份类

 代码如下 复制代码

 <?php
 /**
  * 说明,该类适用于小型的网站的数据库备份,内置MYSQL连接,只需要简单配置数据连接
  * 及存贮备份的位置即可。
  * 类实列化并且连接数据库以后可执行以下操作
  * get_db_table($database)    取得所有数据表
  * export_sql($table,$subsection=0))   生成sql文件,注意生成sql文件只保存到服务器目录,不提供下载
  * import_sql($dir)     恢复数据只导入服务器目录下的sql文件
  * 该类制作简单,可任意传播,如何您对该类有什么提议,请发送邮件给小虾
  * @author 赵红健[游天小虾]
  * email:328742379@qq.com
  * qq交流群:69574955 聚义堂-网页制作交
  */

class data {
 public   $data_dir    = "class/"; //备份文件存放的路径
 public   $transfer     ="";   //临时存放sql[切勿不要对该属性赋值,否则会生成错误的sql语句]

/**
 *数据库连接
 *@param string $host 数据库主机名
 *@param string $user 用户名
 *@param string $pwd  密码
 *@param string $db   选择数据库名
 *@param string $charset 编码方式
 */
 function connect_db($host,$user,$pwd,$db,$charset='gbk'){
  if(!$conn = mysql_connect($host,$user,$pwd)){
   return false;
  }
  mysql_select_db($db);
  mysql_query("set names $charset");
  return true;
 }

/**
 * 生成sql语句
 * @param   $table     要备份的表
 * @return  $tabledump 生成的sql语句
 */
 public function set_sql($table,$subsection=0,&$tableDom=''){
  $tableDom .= "DROP TABLE IF EXISTS $tablen";
  $createtable = mysql_query("SHOW CREATE TABLE $table");
  $create = mysql_fetch_row($createtable);
  $create[1] = str_replace("n","",$create[1]);
  $create[1] = str_replace("t","",$create[1]);

  $tableDom  .= $create[1].";n";

  $rows = mysql_query("SELECT * FROM $table");
  $numfields = mysql_num_fields($rows);
  $numrows = mysql_num_rows($rows);
  $n = 1;
  $sqlArry = array();
  while ($row = mysql_fetch_row($rows)){
     $comma = "";
     $tableDom  .= "INSERT INTO $table VALUES(";
     for($i = 0; $i < $numfields; $i++)
     {
    $tableDom  .= $comma."'".mysql_escape_string($row[$i])."'";
    $comma = ",";
     }
    $tableDom  .= ")n";
     if($subsection != 0 && strlen($this->transfer )>=$subsection*1000){
       $sqlArry[$n]= $tableDom;
       $tableDom = ''; $n++;
     }
  }
  return $sqlArry;
   }

/**
 *列表数据库中的表
 *@param  database $database 要操作的数据库名
 *@return array    $dbArray  所列表的数据库表
 */
 public function get_db_table($database){
  $result = mysql_list_tables($database);
  while($tmpArry = mysql_fetch_row($result)){
   $dbArry[]  = $tmpArry[0];
  }
  return $dbArry;
 }

/**
 *验证目录是否有效
 *@param diretory $dir
 *@return booln
 */
 function check_write_dir($dir){
  if(!is_dir($dir)) {@mkdir($dir, 0777);}
  if(is_dir($dir)){
   if($link = opendir($dir)){
    $fileArry = scandir($dir);
    for($i=0;$i<count($fileArry);$i++){
     if($fileArry[$i]!='.' || $fileArry != '..'){
      @unlink($dir.$fileArry[$i]);
     }
    }
   }
  }
  return true;
 }
/**
 *将数据写入到文件中
 *@param file $fileName 文件名
 *@param string $str   要写入的信息
 *@return booln 写入成功则返回true,否则false
 */
 private function write_sql($fileName,$str){
  $re= true;
  if(!@$fp=fopen($fileName,"w+")) {$re=false; echo "在打开文件时遇到错误,备份失败!";}
  if(!@fwrite($fp,$str)) {$re=false; echo "在写入信息时遇到错误,备份失败!";}
  if(!@fclose($fp)) {$re=false; echo "在关闭文件 时遇到错误,备份失败!";}
  return $re;
 }

/**
 *生成www.111cn.net sql文件
 *@param string $sql sql    语句
 *@param number $subsection 分卷大小,以KB为单位,为0表示不分卷
 */
     public function export_sql($table,$subsection=0){
      if(!$this->check_write_dir($this->data_dir)){echo '您没有权限操作目录,备份失败';return false;}
      if($subsection == 0){
       if(!is_array($table)){
    $this->set_sql($table,0,$this->transfer);
   }else{
    for($i=0;$i<count($table);$i++){
     $this->set_sql($table[$i],0,$this->transfer);
    }
   }
       $fileName = $this->data_dir.date("Ymd",time()).'_all.sql';
       if(!$this->write_sql($fileName,$this->transfer)){return false;}
      }else{
       if(!is_array($table)){
    $sqlArry = $this->set_sql($table,$subsection,$this->transfer);
    $sqlArry[] = $this->transfer;
   }else{
    $sqlArry = array();
    for($i=0;$i<count($table);$i++){
     $tmpArry = $this->set_sql($table[$i],$subsection,$this->transfer);
     $sqlArry = array_merge($sqlArry,$tmpArry);
    }
    $sqlArry[] = $this->transfer;
   }
       for($i=0;$i<count($sqlArry);$i++){
        $fileName = $this->data_dir.date("Ymd",time()).'_part'.$i.'.sql';
        if(!$this->write_sql($fileName,$sqlArry[$i])){return false;}
       }
      }
      return true;
    }
/**
 *载入sql文件
 *@param diretory $dir
 *@return booln
 *注意:请不在目录下面存放其它文件,或者目录
 *以节省恢复时间
 */
    public function import_sql($dir){
  if($link = opendir($dir)){
   $fileArry = scandir($dir);
    $pattern = "_part[0-9]+.sql$|_all.sql$";
   for($i=0;$i<count($fileArry);$i++){
    if(eregi($pattern,$fileArry[$i])){
     $sqls=file($dir.$fileArry[$i]);
     foreach($sqls as $sql){
      str_replace("r","",$sql);
      str_replace("n","",$sql);
      if(!mysql_query(trim($sql))) return false;
     }
    }
   }
   return true;
  }
    }

}

//$d = new data();

//连接数据库
//if(!$d->connect_db('localhost','root','','guestbook','gbk')){
// echo '数据库连接失败';
//}

//查找数据库内所有数据表
//$tableArry = $d->get_db_table('guestbook');

//备份并生成sql文件
//if(!$d->export_sql($tableArry)){
// echo '备份失败';
//}else{
// echo '备份成功';
//}

//恢复导入sql文件夹
//if($d->import_sql($d->data_dir)){
// echo '恢复成功';
//}else{
// echo '恢复失败';
//}
?>

[!--infotagslink--]

相关文章

  • php简单数据操作的实例

    最基础的对数据的增加删除修改操作实例,菜鸟们收了吧...2013-09-26
  • node.js+express留言板功能实现示例

    本文介绍基于nodejs+express+art-template的留言板功能。包含列表界面、添加界面和发送留言功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-21
  • php实现网站留言板功能

    我要实现的就是下图的这种样式,可参考下面这两个网站的留言板,他们的实现原理都是一样的畅言留言板样式:网易跟帖样式:原理 需要在评论表添加两个主要字段 id 和 pid ,其他字段随意添加,比如文章id、回复时间、回复内容、...2015-11-08
  • php+ajax制作无刷新留言板

    本文就是和大家分享一款由php结合ajax实现的无刷新留言板,先给大家看一下最后的效果图:数据库连接代码如下: <&#63;php$conn = @mysql_connect("localhost","root","root") or die ("MySql连接错误");mysql_select_db("d...2015-10-30
  • 关于MySQL外键的简单学习教程

    在MySQL中,InnoDB引擎类型的表支持了外键约束。 外键的使用条件: 1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持); 2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时...2015-11-24
  • C# 实现简单打印的实例代码

    C# 实现简单打印的实例代码,需要的朋友可以参考一下...2020-06-25
  • Vue实现简单的留言板

    这篇文章主要为大家详细介绍了Vue实现简单的留言板,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-10-22
  • javascript实现简单留言板案例

    这篇文章主要为大家详细介绍了javascript实现简单留言板案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
  • Go语言实现简单留言板的方法

    这篇文章主要介绍了Go语言实现简单留言板的方法,涉及数据库、模板页面元素等留言板相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-05-03
  • 个人网站留言页面(前端jQuery编写、后台php读写MySQL)

    这篇文章主要为大家介绍了个人网站的留言页面,前端使用jQuery编写、后台利用php简单读写MySQL数据库,感兴趣的小伙伴们可以参考一下...2016-05-05
  • ajax简单与ajax+php实例应用(1/4)

    [ajax介绍]   ajax是使用客户端脚本与web服务器交换数据的web应用开发方法。web页面不用打断交互流程进行重新加裁,就可以动态地更新。使用ajax,用户可以创建接近本地...2016-11-25
  • php简易留言板程序代码

    这是一个最基础的留言板程序了,但是己经有了留言板程序基本功能,很适合于php初学者用用,学习用啊,当然也可以用于企业网站也是很不错的哦。 代码如下 复...2016-11-25
  • C#最简单的字符串加密解密方法

    这篇文章主要介绍了C#最简单的字符串加密解密方法,本文直接给出实例代码,需要的朋友可以参考下...2020-06-25
  • php留言板制作教程

    本文章给各位php入门者提供一篇从数据库的创建到最后的读写留言板过程全部分享给各位朋友,有需要了解的可参考参考。 创建一个数据表 代码如下 复制代码...2016-11-25
  • PHP结合Mysql数据库实现留言板功能

    这篇文章主要介绍了PHP结合Mysql数据库实现留言板功能的相关资料,需要的朋友可以参考下...2016-03-07
  • php 简单留言板教程三

    好了,其它的都快完了我们就来看看index.php文件显示留方的页面吧. <?php @session_start(); include("global.php"); if(isset($_GET['act']) && $_GET['act'...2016-11-25
  • PS简单给偏暗的人物图片美白及锐化处理(1/2)

    最终效果 ps简单给偏暗...2016-09-14
  • php模板简单写法

    这是一个简单的用php 实现的模板教程物。 class TEMPLATE { private $path = "." ;...2016-11-25
  • 简单谈谈 php 文件锁

    本文简单谈了php文件锁,对初学php的同学来说非常有用,大家可以看看 锁机制之所以存在是因为并发导致的资源竞争,为了确保操作的有效性和完整性,可以通过锁机制将并发...2017-07-06
  • java web实现简单留言板功能

    这篇文章主要为大家详细介绍了java web实现简单留言板功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-11-24