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]