【www.gdgbn.com--留言】

*/

 代码如下

$link = @mysql_connect($db_host,$db_user,$db_pass) or die("unable to establish a db connection");

mysql_query("set names "utf8"");
mysql_select_db($db_database,$link);

class comment
{
 private $data = array();
 
 public function __construct($row)
 {
  /*
  / the constructor
  */
  
  $this->data = $row;
 }
 
 public function markup()
 {
  /*
  / this method outputs the xhtml markup of the comment
  */
  
  // setting up an alias, so we don"t have to write $this->data every time:
  $d = &$this->data;
  
  $link_open = "";
  $link_close = "";
  
  if($d["url"]){
   
   // if the person has entered a url when adding a comment,
   // define opening and closing hyperlink tags
   
   $link_open = "";
   $link_close =  "";
  }
  
  // converting the time to a unix timestamp:
  $d["dt"] = strtotime($d["dt"]);
  
  // needed for the default gravatar image:
  $url = "http://".dirname($_server["server_name"].$_server["request_uri"])."/img/default_avatar.gif";
  
  return "
  
   
    
     ".$link_open."
     
     ".$link_close."
    
    
    ".$link_open.$d["name"].$link_close."
    ".date("d m y",$d["dt"])."
    

".$d["body"]."


   
  ";
 }
 
 public static function validate(&$arr)
 {
  /*
  / this method is used to validate the data sent via ajax.
  /
  / it return true/false depending on whether the data is valid, and populates
  / the $arr array passed as a paremter (notice the ampersand above) with
  / either the valid input data, or the error messages.
  */
  
  $errors = array();
  $data = array();
  
  // using the filter_input function introduced in php 5.2.0
  
  if(!($data["email"] = filter_input(input_post,"email",filter_validate_email)))
  {
   $errors["email"] = "please enter a valid email.";
  }
  
  if(!($data["url"] = filter_input(input_post,"url",filter_validate_url)))
  {
   // if the url field was not populated with a valid url,
   // act as if no url was entered at all:
   
   $url = "";
  }
  
  // using the filter with a custom callback function:
  
  if(!($data["body"] = filter_input(input_post,"body",filter_callback,array("options"=>"comment::validate_text"))))
  {
   $errors["body"] = "please enter a comment body.";
  }
  
  if(!($data["name"] = filter_input(input_post,"name",filter_callback,array("options"=>"comment::validate_text"))))
  {
   $errors["name"] = "please enter a name.";
  }
  
  if(!empty($errors)){
   
   // if there are errors, copy the $errors array to $arr:
   
   $arr = $errors;
   return false;
  }
  
  // if the data is valid, sanitize all the data and copy it to $arr:
  
  foreach($data as $k=>$v){
   $arr[$k] = mysql_real_escape_string($v);
  }
  
  // ensure that the email is lower case:
  
  $arr["email"] = strtolower(trim($arr["email"]));
  
  return true;
  
 }

 private static function validate_text($str)
 {
  /*
  / this method is used internally as a filter_callback
  */
  
  if(mb_strlen($str,"utf8")<1)
   return false;
  
  // encode all html special characters (<, >, ", & .. etc) and convert
  // the new line characters to
tags:
  
  $str = nl2br(htmlspecialchars($str));
  
  // remove the new line characters that are left
  $str = str_replace(array(chr(10),chr(13)),"",$str);
  
  return $str;
 }

}

$comments = array();
$result = mysql_query("select * from comments order by id asc");

while($row = mysql_fetch_assoc($result))
{
 $comments[] = new comment($row);
}

?>





simple ajax commenting system | tutorialzine demo

css教程" href="styles.css" />

 


/*
/ output the comments one by one:
*/

foreach($comments as $c){
 echo $c->markup();
}

?>


 

add a comment


 

     
         
         
           
           
           
           
           
           
           
           
           
           
           
       
   

<script type="text/网页特效" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="script.js"></script>


数据库教程结构

 代码如下

--
-- table structure for table `comments`
--

create table `comments` (
  `id` int(10) unsigned not null auto_increment,
  `name` varchar(128) collate utf8_unicode_ci not null default "",
  `url` varchar(255) collate utf8_unicode_ci not null default "",
  `email` varchar(255) collate utf8_unicode_ci not null default "",
  `body` text collate utf8_unicode_ci not null,
  `dt` timestamp not null default "0000-00-00",
  primary key  (`id`)
) engine=myisam  default charset=utf8 collate=utf8_unicode_ci;

本文来源:http://www.gdgbn.com/zhufuduanxin/27698/