您好,欢迎访问一九零五行业门户网

简单实用方便的ajax评论完整代码

简单的ajax评论完整代码
数据库结构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 current_timestamp,
primary key  (`id`)
) engine=myisam  default charset=utf8 collate=utf8_unicode_ci auto_increment=1;
演示
php 
[php]
php 
[php]
markup();  
}  
?>
add a comment
your name
your email
website (not required)
comment body
submit.php
php 
[php]  
1,'html'=>$insertedcomment->markup()));  
}  
else  
{  
/* outputtng the error messages */  
echo '{status:0,errors:'.json_encode($arr).'}';  
}  
?>  
comment.class.php
php 
[php] 
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')
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;  
}  
}  
?>
以上是本文关于ajax评论的完整代码,希望本文对广大php开发者有所帮助,感谢阅读本文。
其它类似信息

推荐信息