• User

    Codice per far commentare alcuni articoli

    Salve ragazzi,

    utilizzo il seguente codice per far commentare alcuni articoli su un piccolo sito web; ultimamente mi hanno preso di mira con lo spam e vorrei inserire una domanda tipo quanto fa 2x3+1? ma non sono molto pratico qualcuno sa aiutarmi?

    [php]<?php
    /*
    Text Guestbook
    script per gestire un libro degli ospiti utilizzando un file di testo
    data: 31 maggio 2005
    Autore: Michele Bracci
    Potete distribuire questo script per usi non commerciali e modificarlo
    come desiderate. Vi prego di citare sempre l'autore originale e di
    evidenziare e firmare eventuali modifiche. Grazie.
    /
    class guestbook {
    // parametri
    var $separatore_righe = "--inizioriga--";
    var $separatore_campi = "--finecampo--";
    // numero di record mostrato per pagina: è possibile modificare questo valore a vostro piacimento
    var $record_per_pagina = 3;
    // informazioni sulla locazione e sul nome del file di testo
    var $percorso_fisico_guest = "";
    var $guesttxt = "../comments/ed1.txt";
    var $nomefile;
    // larghezza in pixel della tabella esterna
    var $larghezza_tabella = "500";
    // settando questa opzione a vero, il visitatore potrà visualizzare i dettagli di un singolo record
    var $mostra_dettagli = true;
    // caratteristiche del guestbook
    var $righe = array();
    var $posizione;
    var $numero_righe;
    var $book;
    var $linea;
    // COSTRUTTORE
    function guestbook() {
    $this->nomefile = $this->percorso_fisico_guest.$this->guesttxt;
    if (isset($_POST["indietro"]) || isset($_POST["avanti"])) {
    $this->posizione = $_POST["posizione"];
    $this->leggi_guestbook();
    } else {
    if (isset($_POST["azione"]) && ($_POST["azione"] == "inserimento")) {
    $this->posizione = 0;
    } else {
    $this->leggi_guestbook();
    $this->posizione = 0;
    }
    }
    }
    // metodo per il calcolo della data
    function dataora_attuale() {
    $mesi = array("gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre");
    $mese = (int)date("m") - 1;
    $data = date("d")." ".$mesi[$mese]." ".date("Y");
    $ora = strftime ("%H:%M");
    $data_finale = $data." ore: ".$ora;
    return $data_finale;
    }
    // rimozione tag HTML
    function striptags($stringa) {
    $tag_consentiti = '<b><i><u><br>';
    return strip_tags($stringa, $tag_consentiti );
    }
    // metodo per leggere il file di testo. Verrà memorizzato nella caratteristica $book
    function leggi_guestbook() {
    if (!file_exists($this->nomefile)) {
    echo '
    <h2>ERRORE:</h2>
    Il file '.$this->nomefile.' non è presente su disco.<br>
    Createlo, anche vuoto, e riavviate lo script
    ';
    die;
    }
    $dimensione = filesize ($this->nomefile);
    if ($dimensione == 0) {
    $this->numero_righe = 0;
    return;
    }
    $this->book = stripslashes(file_get_contents($this->nomefile));
    $this->righe = split($this->separatore_righe, $this->book);
    $this->righe = array_reverse($this->righe);
    $this->numero_righe = count($this->righe) - 1;
    }
    // metodo per mostrare un singolo record
    function mostra_record($indice) {
    list ($dataora, $nome, $email, $citta, $contatto, $commento) = split($this->separatore_campi, $this->righe[$indice]);
    $html_record = '<table border="0" width="'.($this->larghezza_tabella-4).'" class="tabellaesterna">';
    $html_record .= '
    <tr>
    <td>
    <table border="0" width="'.($this->larghezza_tabella-20).'" cellspacing="1" cellpadding="4" class="tabellainterna">
    <tr>
    <td width="100" align="left" class="intestazione">
    inserito il:
    </td>
    <td align="left" class="testo">
    '.$dataora.'
    </td>
    </tr>
    <tr>
    <td width="100" align="left" class="intestazione">
    Nome:
    </td>
    <td align="left" class="testo">
    '.$this->striptags($nome).'
    </td>
    </tr>
    <tr>
    <td width="100" align="left" class="intestazione">
    e-mail:
    </td>
    <td align="left" class="testo">
    '.$this->striptags($email).'
    </td>
    </tr>
    <tr>
    <td width="100" align="left" class="intestazione">
    Città:
    </td>
    <td align="left" class="testo">
    '.$this->striptags($citta).'
    </td>
    </tr>
    <tr>
    <td width="100" align="left" class="intestazione">
    riferito da:
    </td>
    <td align="left" class="testo">
    '.$this->striptags($contatto).'
    </td>
    </tr>
    <tr>
    <td width="100" align="left" class="intestazione" valign="top">
    Commento:
    </td>
    <td align="left" class="testo" valign="top">
    '.$this->striptags($commento).'
    </td>
    </tr>
    </table>
    </td>
    </tr>
    ';
    $html_record .= '<tr><td><a class="pulsanti" href="comments/ed1.php">torna alla lista</a></td></tr>';
    $html_record .= '</table>';
    return $html_record;
    }
    // metodo per gestire la visualizzazione della lista dei record con paginazione
    function mostra_lista() {
    if ($this->numero_righe == 0) {
    return "nessuno fin ora ha firmato il guestbook";
    }
    $limite = $this->record_per_pagina; // numero di record mostrati per pagina
    if (isset($_POST["indietro"])) {
    $this->posizione--;
    $inizio = $this->posizione
    $limite;
    } else if (isset($_POST["avanti"])) {
    $this->posizione++;
    $inizio = $this->posizione*$limite;
    } else {
    $inizio = 0;
    }
    $contatore = 0;
    $indice_riga = $inizio;
    $html_lista = '<table border="0" width="'.($this->larghezza_tabella-4).'" class="tabellaesterna">';
    while (($indice_riga < $this->numero_righe) && ($contatore < $limite)) {
    list ($dataora, $nome, $email, $citta, $contatto, $commento) = split($this->separatore_campi, $this->righe[$indice_riga]);
    if ($this->mostra_dettagli) {
    $dettagli = '<a class="pulsanti" href="javascript: document.mostradettagli.indice.value=''.$indice_riga.''; document.mostradettagli.submit()">dettagli</a>';
    } else {
    $dettagli = '';
    }
    $html_lista .= '
    <tr>
    <td valign="top">
    <table border="0" width="'.($this->larghezza_tabella-26).'" cellspacing="0" cellpadding="4" class="tabellainterna" align="center">
    <tr>
    <td width="100" align="left" class="intestazione">
    Nome:
    </td>
    <td align="left" class="testo">
    '.$this->striptags($nome).'
    </td>
    </tr>
    <tr>
    <td width="100" align="left" class="intestazione">
    Città:
    </td>
    <td align="left" class="testo">
    '.$this->striptags($citta).'
    </td>
    </tr>
    <tr>
    <td valign="top" width="100" align="left" class="intestazione">
    Commento:
    </td>
    <td valign="top" align="left" class="testo">
    '.ereg_replace("\n", "<br>", $this->striptags($commento)).'
    </td>
    </tr>
    <tr>
    <td align="left" width="100" valign="top" class="intestazione">
    '.$dettagli.'
    </td>
    <td align="right">
    '.$dataora.'
    </td>
    </tr>
    </table>
    <td>
    </tr>
    ';
    $contatore++;
    $indice_riga++;
    }
    $html_pulsanti = '';
    if ($this->numero_righe > $limite) {
    if ($inizio >= $limite) {
    $html_pulsanti .= '<input type="submit" value="<<" name="indietro" class="pulsanti">   ';
    }
    if ($indice_riga < $this->numero_righe) {
    $html_pulsanti .= '<input type="submit" value=">>" name="avanti" class="pulsanti">   ';
    }
    }
    $html_lista .= '
    <form method="post" action="comments/ed1.php" name="pageing">
    <tr>
    <td>
    <input type="hidden" value="mostralista" name="azione">
    <input type="hidden" name="posizione" value="'.$this->posizione.'">
    '.$html_pulsanti.'
    </td>
    </tr>
    </form>
    ';
    $html_lista .= '
    </table>
    <form method="post" action="comments/ed1.php" name="mostradettagli">
    <input type="hidden" value="dettagli" name="azione">
    <input type="hidden" name="indice" value="">
    </form>
    ';
    return $html_lista;
    }
    // Metodo per l'inserimento di un nuovo record
    function aggiungi_record() {
    $test_non_vuoto = trim($_POST["nome"].$_POST["email"].$_POST["citta"].$_POST["contatto"].$_POST["commento"]);
    if ($test_non_vuoto != "") {
    $this->linea = $this->separatore_righe.$_POST["dataora"].$this->separatore_campi.$_POST["nome"].$this->separatore_campi.$_POST["email"].$this->separatore_campi.$_POST["citta"].$this->separatore_campi.$_POST["contatto"].$this->separatore_campi.$_POST["commento"]."\r\n";
    $puntatore = fopen($this->nomefile, "a");
    $this->linea = $this->striptags($this->linea);
    fputs($puntatore, $this->linea);
    fclose($puntatore);
    }
    $this->leggi_guestbook();
    }
    // metodo per la raccolta dati di un nuovo record
    function leggi_dati() {
    $html_form_immissione = '
    <script language="JavaScript">
    <!--
    function controlla() {
    if ((document.inseriscirecord.nome.value == '') || (document.inseriscirecord.commento.value == '')) {
    alert('inserisci almeno il nome e un commento!');
    return false;
    } else {
    return true;
    }
    }
    //-->
    </script>
    <form method="post" action="comments/ed1.php" name="inseriscirecord" onSubmit="return controlla();">
    <table border="0" width="'.($this->larghezza_tabella - 2).'" cellspacing="1" cellpadding="4" class="tabellainterna">
    <tr>
    <td colspan="2" class="intestazione" width="'.($this->larghezza_tabella - 2).'">
    Firma il nostro guestbook!
    </td>
    </tr>
    <tr>
    <th align="left">
     nome:
    </th>
    <td>
    <input type="text" name="nome" size="40" class="areatesto">
    </td>
    </tr>
    <tr>
    <th align="left">
     e-mail:
    </th>
    <td>
    <input type="text" name="email" size="40" class="areatesto">
    </td>
    </tr>
    <tr>
    <th align="left">
     città:
    </th>
    <td>
    <input type="text" name="citta" size="40" class="areatesto">
    </td>
    </tr>
    <tr>
    <th align="left">
     riferito<br>
     da:
    </th>
    <td>
    <input type="text" name="contatto" size="40" class="areatesto">
    </td>
    </tr>
    <tr>
    <th align="left" valign="top">
     commenti:
    </th>
    <td>
    <textarea name="commento" rows="5" cols="45" class="areatesto"></textarea>
    </td>
    </tr>
    <tr>
    <td colspan="2" class="intestazione">
    <input type="hidden" value="inserimento" name="azione">
    <input type="hidden" name="dataora" value="'.$this->dataora_attuale().'">
    <input type="submit" name="postati" value="vai !" class="pulsanti">
    <input type="reset" name="cancell" value="cancella" class="pulsanti">
    </td>
    </tr>
    </table>
    </form>
    ';
    return $html_form_immissione;
    }
    }
    $guests = new guestbook();
    if (isset($_POST["azione"]) && ($_POST["azione"] == "inserimento")) {
    $guests->aggiungi_record();
    }
    $html = "<table><tr><td>";
    if (isset($_POST["azione"]) && ($_POST["azione"] == "dettagli")) {
    $html .= $guests->mostra_record($_POST["indice"]);
    } else {
    $html .= $guests->mostra_lista();
    }
    $html .= "</td></tr><tr><td>";
    $html .= $guests->leggi_dati();
    $html .= "</td></tr></table>";
    unset($guests);
    ?>
    <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title> Guestbook </title>
    <meta name="Generator" content="Microsoft FrontPage 6.0">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">
    <style>
    .tabellaesterna
    {
    background-color: #B6C0CB;
    text-decoration: none;
    color: #FFFFFF;
    font-family: Verdana;
    font-size: 9pt;
    padding-top: 4pt;
    padding-right: 4pt;
    padding-bottom: 4pt;
    padding-left: 4pt;
    border-width: 2px;
    border-style: outset;
    empty-cells: show;
    font-weight: bold;
    margin: 0px;
    }
    .pulsanti
    {
    background-color: #F8C152;
    font-family: Tahoma, Verdana;
    font-size: 8pt;
    font-weight: bold;
    font-style: normal;
    font-variant: normal;
    font-stretch: normal;
    color: #000080;
    border-width: 1px;
    border-style: outset;
    border-color: #6699CC;
    outline-style: double;
    outline-width: 1px;
    padding: 1px;
    margin: 1px;
    text-decoration: none;
    }
    .areatesto
    {
    font-family: Verdana, Tahoma, Arial;
    font-size: 8pt;
    font-weight: normal;
    font-style: normal;
    font-variant: normal;
    font-stretch: normal;
    font-size-adjust: none;
    color: #000000;
    text-decoration: none;
    text-align: left;
    text-transform: none;
    vertical-align: middle;
    line-height: normal;
    word-spacing: normal;
    letter-spacing: normal;
    white-space: normal;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
    margin-left: 0px;
    padding-top: 1px;
    padding-right: 1px;
    padding-bottom: 1px;
    padding-left: 1px;
    border-width: 1px;
    border-style: inset;
    border-color:;
    outline-width: 0px;
    outline-style: none;
    background-color:;
    }
    .tabellainterna
    {
    background-color: #F2EEE3;
    text-decoration: none;
    color: #2D2E55;
    font-family: Verdana;
    font-size: 9pt;
    border-width: 1px;
    border-style: solid;
    border-color:;
    margin: 0px;
    padding: 0px;
    }
    .intestazione
    {
    background-color: #5E7FAA;
    color:;
    font-style: normal;
    font-weight: bold;
    font-family: Verdana;
    font-size: 9pt;
    }
    .testo
    {
    font-family: Tahoma;
    font-size: 9pt;
    background-color: #F4F4F4;
    }
    </style>
    </head>
    <body>
    <?=$html?>
    </body>
    </html>
    [/php]


  • User

    nessuno riesce a darmi una mano?