devdaily home | apple | java | perl | unix | directory | blog

What this is

This file is included in the DevDaily.com "PHP Source Code Warehouse" project. The intent of this project is to help you "Learn PHP by Example" TM.

Other links

The source code

<?php

require( dirname(__FILE__) . '/wp-config.php' );



function add_magic_quotes($array) {

	foreach ($array as $k => $v) {

		if (is_array($v)) {

			$array[$k] = add_magic_quotes($v);

		} else {

			$array[$k] = addslashes($v);

		}

	}

	return $array;

} 



if (!get_magic_quotes_gpc()) {

	$_POST   = add_magic_quotes($_POST);

	$_COOKIE = add_magic_quotes($_COOKIE);

}



$author = trim(strip_tags($_POST['author']));



$email = trim(strip_tags($_POST['email']));

if (strlen($email) < 6)

	$email = '';



$url = trim(strip_tags($_POST['url']));

$url = ((!stristr($url, '://')) && ($url != '')) ? 'http://'.$url : $url;

if (strlen($url) < 7)

	$url = '';



$comment = trim($_POST['comment']);

$comment_post_ID = intval($_POST['comment_post_ID']);

$user_ip = $_SERVER['REMOTE_ADDR'];



if ( 'closed' ==  $wpdb->get_var("SELECT comment_status FROM $tableposts WHERE ID = '$comment_post_ID'") )

	die( __('Sorry, comments are closed for this item.') );



if ( get_settings('require_name_email') && ('' == $email || '' == $author) )

	die( __('Error: please fill the required fields (name, email).') );



if ( '' == $comment )

	die( __('Error: please type a comment.') );





$now = current_time('mysql');

$now_gmt = current_time('mysql', 1);





$comment = balanceTags($comment, 1);

$comment = format_to_post($comment);

$comment = apply_filters('post_comment_text', $comment);



// Simple flood-protection

$lasttime = $wpdb->get_var("SELECT comment_date FROM $tablecomments WHERE comment_author_IP = '$user_ip' ORDER BY comment_date DESC LIMIT 1");

if (!empty($lasttime)) {

	$time_lastcomment= mysql2date('U', $lasttime);

	$time_newcomment= mysql2date('U', $now);

	if (($time_newcomment - $time_lastcomment) < 10)

		die( __('Sorry, you can only post a new comment once every 10 seconds. Slow down cowboy.') );

}





// If we've made it this far, let's post.



if(check_comment($author, $email, $url, $comment, $user_ip)) {

	$approved = 1;

} else {

	$approved = 0;

}



$wpdb->query("INSERT INTO $tablecomments 

(comment_post_ID, comment_author, comment_author_email, comment_author_url, comment_author_IP, comment_date, comment_date_gmt, comment_content, comment_approved) 

VALUES 

('$comment_post_ID', '$author', '$email', '$url', '$user_ip', '$now', '$now_gmt', '$comment', '$approved')

");



$comment_ID = $wpdb->get_var('SELECT last_insert_id()');



if (!$approved) {

	wp_notify_moderator($comment_ID);

}



if ((get_settings('comments_notify')) && ($approved)) {

	wp_notify_postauthor($comment_ID, 'comment');

}



do_action('comment_post', $comment_ID);



setcookie('comment_author_' . $cookiehash, $author, time() + 30000000, COOKIEPATH);

setcookie('comment_author_email_' . $cookiehash, $email, time() + 30000000, COOKIEPATH);

setcookie('comment_author_url_' . $cookiehash, $url, time() + 30000000, COOKIEPATH);



header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');

header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');

header('Cache-Control: no-cache, must-revalidate');

header('Pragma: no-cache');

$location = get_permalink($comment_post_ID);

if ($is_IIS) {

	header("Refresh: 0;url=$location");

} else {

	header("Location: $location");

}



?>




Copyright 1998-2008 Alvin Alexander
All Rights Reserved.
 
devdaily.com is based in louisville, kentucky, and this web site is hosted by godaddy.com