Utilizzare il filtro antispam di Akismet con PHP

Coloro che utilizzano lo Zend Framework per realizzare il proprio sito, o che semplicemente hanno lo Zend Framework installato sul proprio server, possono evitare di scaricare la classe PHP5 Akismet utilizzata nell’esempio precedente ed impiegare la classe Zend_Service_Akismet. Vediamo quindi come realizzare lo script PHP, lasciando il form HTML inalterato.

- form.php

<?php
set_include_path(get_include_path() . PATH_SEPARATOR . 'C:\Program Files (x86)\Zend\ZendServer\share\ZendFramework\library');

require_once 'Zend/Service/Akismet.php';

// mettere qui il proprio codice Akismet
$codice_akismet = '************';

// impostare l'URL del proprio sito
$url_sito = 'http://www.miosito.it';

$akismet = new Zend_Service_Akismet($codice_akismet, $url_sito);

$data = array(
    'user_ip' => $_SERVER['REMOTE_ADDR'],
    'user_agent' => $_SERVER['HTTP_USER_AGENT'],
    'referrer' => $_SERVER['HTTP_REFERER'],
    'permalink' => 'http://www.miosito.it/articolo-da-commentare',
    'comment_type' => 'comment',
    'comment_author' => $_POST['nome'],
    'comment_author_email' => $_POST['email'],
    'comment_author_url' => $_POST['url'],
    'comment_content' => $_POST['commento']
);

if ($akismet->isSpam($data)) {
    echo 'Il commento non è stato approvato!';
} else {
    echo 'Il commento è stato approvato';
}

L’utilizzo di Zend_Service_Akismet non presenta particolari difficoltà. Similmente a quanto visto nella pagina precedente, lo script di esempio è diviso in tre sezioni:

  1. inizializzazione dell’oggetto Zend_Service_Akismet, responsabile della comunicazione con il filtro antispam, attraverso l’impiego del codice Akismet e dell’URL del proprio sito;
  2. raccolta delle informazioni riguardanti il commento da sottoporre al filtro;
  3. interrogazione del servizio di Akismet e verifica della risposta ottenuta.

Anche con Zend_Service_Akismet è possibile segnalare un messaggio di spam ad Akismet, utilizzando il metodo $akismet->submitSpam($data), oppure segnalare un falso positivo utilizzando $akismet->submitHam($data).

Pagine: precedente 1 2

2 commenti

1 Marco Grazia martedì 25 ottobre 2011, ore 10:49
Se lo stai usando per il forum sappi che è troppo incisivo.
2 Gianni Tomasicchio mercoledì 16 novembre 2011, ore 19:51
Effettivamente ho riscontrato diversi falsi positivi e quindi ho deciso di utilizzarlo solo per segnalare i contenuti sospetti all'attenzione dei moderatori, senza bloccarne la pubblicazione.
Effettua l'accesso o registrati per inserire un commento
 

[pagina costruita in 0.008s]