defr/DualBlog

diff comment.php @ 65:434751e80c88

Utilisation de la classe Requete dans tb.php

Cela permet de gérer automatiquement l'ajout des quotes si on a pas de
magic_quotes notamment, empechant les injections SQL :-)
author Franck Deroche <webmaster@defr.org>
date Tue Mar 11 16:33:07 2008 +0100 (2008-03-11)
parents 25c6e59f019e
children 464f4b94ee27
line diff
     1.1 --- a/comment.php	Tue Mar 11 15:53:15 2008 +0100
     1.2 +++ b/comment.php	Tue Mar 11 16:33:07 2008 +0100
     1.3 @@ -12,22 +12,41 @@
     1.4       $AdresseMail = $Req->get('AdresseMail');
     1.5       $Comment=$Req->get('Comment');
     1.6       $DateComment=gmdate("Y-m-d H:i:s", time() + 3600*2);
     1.7 -
     1.8 +     
     1.9       // Si on essaie d'ajouter un commentaire et que la graine n'est pas bonne
    1.10       if(!empty($Comment) && $_SESSION['commentSeed'] != $Req->get('seed', null, 't'))
    1.11       	die("L'ajout de commentaire doit se faire à partir du formulaire de ce blog");
    1.12 -
    1.13 -     if(!is_null($Auteur) && $Auteur!='Votre Nom' && $Auteur != $Adresse && !empty($Comment)) {
    1.14 +     
    1.15 +     if(!is_null($Auteur) && $Auteur!='Votre Nom' && $Auteur != $Adresse && !empty($Comment) && strlen($Comment) > 6 && strpos($Comment, 'xanga') === false)  {
    1.16  	// Prévention d'un "cassage" par ajout d'un commentaire incorrectement formaté
    1.17  	$ip = $_SERVER['REMOTE_ADDR'];
    1.18  	$Auteur = str_replace(array('<', '>'), array('&lt;', '&gt;'), $Auteur);
    1.19 +
    1.20 +        /* Akismet */
    1.21 +	require_once('akismet.class.php');
    1.22 +	$comment = array(
    1.23 +		'author'    => $Auteur,
    1.24 +		'email'     => $AdresseMail,
    1.25 +		'website'   => $Adresse,
    1.26 +		'body'      => $Comment,
    1.27 +		'permalink' => 'http://defr.org/blog/posts/' . $id
    1.28 +	);
    1.29 +	$ak = new akismet('http://defr.org/blog', AKISMET_API_KEY, $comment);
    1.30 +	if(!$ak->errorsExist())
    1.31 +	  $visibleBool = !$ak->isSpam();
    1.32 +	
    1.33 +	// Suppression d'un gros lourd
    1.34 +	$visibleBool &= (ereg('^ma[0-9]+zda$', $Auteur) === false);
    1.35 +        $visible = $visibleBool ? 1 : 0;
    1.36 +
    1.37  	if(DOMDocument::loadXML('<comment>' . $Comment . '</comment>')) {
    1.38  	$Data->debugQuery("
    1.39 -		INSERT INTO Commentaires(MessId, Auteur, Adresse, AdresseMail, Comment, DateComment, ip)
    1.40 -		VALUES({$id}, '{$Auteur}', '{$Adresse}', '{$AdresseMail}', '{$Comment}', '{$DateComment}', '{$ip}')
    1.41 +		INSERT INTO Commentaires(MessId, Auteur, Adresse, AdresseMail, Comment, DateComment, ip, Visible)
    1.42 +		VALUES({$id}, '{$Auteur}', '{$Adresse}', '{$AdresseMail}', '{$Comment}', '{$DateComment}', '{$ip}', $visible)
    1.43  	");
    1.44  	$Data->Query("UPDATE Mess SET NbCommentaires=NbCommentaires+1 WHERE num_mess={$id}");
    1.45 -	mail(ADMIN_MAIL, 'Nouveau commentaire de ' . $Auteur, $Auteur . " vient de mettre en ligne le commentaire suivant:  \n" . wordwrap($Comment, 70));
    1.46 +	if($visibleBool)
    1.47 +		mail(ADMIN_MAIL, 'Nouveau commentaire de ' . $Auteur, $Auteur . " vient de mettre en ligne le commentaire suivant:  \n" . wordwrap($Comment, 70));
    1.48  	}
    1.49  	else {
    1.50  		$infos = 'Votre commentaire doit etre fait de XML valide pour apparaitre.';