Buongiorno, premetto che non metto mano a php da tanti anni, e non sono mai stato programmatore, ma per esigenze di mantenere viva una pagina molto apprezzata ogni tanto sono costretto a fare una immersione in un mondo non mio.
Avevo un codice PHP molto semplice per fare un guestbook, con MySQL; sono dovuto passare ad una versione di PHP più recente (per ora una 5.x, ma più avanti vorrei passare ad una 7.x appena risolvo altri problemi) e il vecchio guestbook che avevo non funziona più. Posto il codice e metto l'indirizzo a cui si può accedere all'attuale GB. Ovviamente accetto anche nuovi script, da integrare nella nuova pagina che sto facendo, che siano altrettanto facili. Grazie dell'aiuto e della comprensione.
Avevo un codice PHP molto semplice per fare un guestbook, con MySQL; sono dovuto passare ad una versione di PHP più recente (per ora una 5.x, ma più avanti vorrei passare ad una 7.x appena risolvo altri problemi) e il vecchio guestbook che avevo non funziona più. Posto il codice e metto l'indirizzo a cui si può accedere all'attuale GB. Ovviamente accetto anche nuovi script, da integrare nella nuova pagina che sto facendo, che siano altrettanto facili. Grazie dell'aiuto e della comprensione.
PHP:
<h1 align="center"><img border="0" src="immagini/guestbook.gif" width="300" height="75"></h1>
<font face="Verdana" size="3"><b>Ecco chi ci ha visitato. Se vuoi lasciare anche tu la tua firma, <a href="tuafirma.php?go=sign"><font color=red>clicca qui</font></a>.</b></font>
<hr>
<?php
/*
* requires a mysql table:-
* CREATE TABLE guestbook (id INT (50) UNSIGNED AUTO_INCREMENT, name VARCHAR (255) , email VARCHAR (150) , url VARCHAR (255) , came_from VARCHAR (255) , comment TEXT , date VARCHAR (100) , INDEX (id))
* create table guestbook_bans(ip varchar(15), time int(15))
*
* change the below varibles to suit your needs, you might also want to read through the
* script and change some error message and html to your own liking
*
* if you need some help, state your problem here -> http://forums.plebian.com/viewforum.php?forum=12
*/
$colour1="#84beff"; // colour of first cell
$colour2="#649eff"; // colour of second cell
$delete_pass="MY_DB_DEl_PASSWORD"; // password to delete guestbook entries
$allow_tags="<b>,<a>,<i>,<li>"; // html tags to allow in the message
$num_msg=30; // number of entries to display per page
$a_time=30; // number of seconds before someone signing the book can sign again (stop spam and multiple signings)
$a=mysql_connect("MY_DB_IP","MY_DB_USER","MY_DB_PASSWORD") or die ("unable to connect to mysql");
$b=mysql_select_db("MY_DB_NAME",$a);
/******************************************
INSERISCO I DATI
*******************************************/
if($g_name && $comment)
{
if(strlen($g_name)>255) die("Non puoi usare piu' di 255 caratteri per il tuo nome");
if(strlen($g_email)>150) die("Non puoi usare piu' di 150 caratteri per la tua e-mail");
if(strlen($g_url)>255) die("Non puoi usare piu' di 255 caratteri per l'indirizzo internet");
if(strlen($came_from)>255) die("Non puoi usare piu' di 255 caratteri per la città");
if(strlen($comment)>64300) die("Messaggio troppo lungo ........");
$g_name=strip_tags($g_name);$g_email=strip_tags($g_email);$g_url=strip_tags($g_url);$came_from=strip_tags($came_from);$comment=strip_tags($comment,$allow_tags);
$g_name=addslashes($g_name);$g_email=addslashes($g_email);$g_url=addslashes($g_url);$came_from=addslashes($came_from);$comment=addslashes($comment);
$date=gmdate("j M Y H:i T");
$c=mysql_query("select time from guestbook_bans where ip='$REMOTE_ADDR'");
$dp=mysql_fetch_object($c);
if(is_object($dp))
{
$nk=time()-$dp->time;
if($nk<=$a_time) die("Per evitare accessi multipli devi aspettare <b>$nk</b> secondi prima di firmare di nuovo. Questo nel caso avessi premuto il pulsante due volte. Il tuo messaggio e' stato aggiunto.");
}
if(mysql_query("insert into guestbook (name,email,url,came_from,comment,date) values ('$g_name','$g_email','$g_url','$came_from','$comment','$date')"))
{
mysql_query("delete from guestbook_bans where ip='$REMOTE_ADDR'");
$t=time();mysql_query("insert into guestbook_bans values('$REMOTE_ADDR','$t')");
echo "<h3>Grazie !</h3><p>";
}
else
{
echo "C'e' stato un problema nell'aggiungere il tuo commento<p>";
}
}
/******************************************
SE SONO IN FASE DI CANCELLAZIONE
*******************************************/
if($d)
{
if($password==$delete_pass && ereg("[0-9]+",$d))
{
mysql_query("delete from guestbook where id='$d'");
echo "<h3>Il commento e' stato cancellato</h3><p>";
}
else
{
die("Inserisci la password<br> <form method=post action=$PHP_SELF?l=$l><input type=hidden name=d value=$d><input type=password name=password> <input type=submit value=delete></form>");
}
}
/******************************************
SE SONO IN FASE DI INSERIMENTO DATI-FORM
*******************************************/
if($go=="sign")
{
echo "<font color=red>*</font> Campi obbligatori<br>
<form method=post action=$PHP_SELF>
<table>
<tr>
<td><font color=red>*</font>Nome</td>
<td><input type=text name=g_name maxlength=255 size=34></td>
</tr>
<tr>
<td>E-mail</td>
<td><input type=text name=g_email maxlength=150 size=34></td>
</tr>
<tr>
<td>Citta'</td>
<td><input type=text name=came_from maxlength=255 size=34></td>
</tr>
<tr>
<td>Indirizzo internet</td>
<td><input type=text name=g_url maxlength=255 size=34></td>
</tr>
<tr>
<td valign=top><font color=red>*</font>Commento</td>
<td colspan=3><textarea name=comment cols=90 rows=5></textarea></td>
</tr>
<tr>
<td> </td>
<td><input type=submit value=Inserisci></td>
</tr>
</table>
</form>";
}
/******************************************
ALTRIMENTI visualizzo il guestbook
*******************************************/
else
{
if(!ereg("[0-9]+",$l)) $l=0; else $l=addslashes($l);
$c=mysql_query("select * from guestbook order by id desc limit $l,$num_msg");
$j=0;
while($d=mysql_fetch_object($c))
{
$p=(is_float($j++/2)?$colour1:$colour2);
$d->name=stripslashes($d->name);$d->email=stripslashes($d->email);$d->url=stripslashes($d->url);$d->came_from=stripslashes($d->came_from);$d->comment=stripslashes($d->comment);$d->comment=nl2br($d->comment);
if($d->email)
$name="<a href=mailto:$d->email>$d->name</a>";
else
$name="$d->name";
echo "
<table border=0 width=100% bordercolor=black cellspacing=0 cellpadding=4>
<tr>
<td colspan=2 bgcolor=$p>$d->date</td>
</tr>
<tr>
<td bgcolor=$p width=30% valign=top>$name";
if($d->url) echo "<br><a href=$d->url>$d->url</a>";
if($d->came_from) echo "<br>$d->came_from";
echo "
</td>
<td valign=top bgcolor=$p><b>$d->comment</b></td>
</tr>
<tr>
<td align=right bgcolor=$p colspan=2>
<a href=$PHP_SELF?d=$d->id&l=$l><font size=1>delete</font></a>
</td>
</tr>
</table>
<br>";
}
$sql="SELECT * FROM guestbook";
$result = mysql_query($sql);
$num = mysql_numrows($result);
if($num>$num_msg+$l)
{
$asdf=$l+$num_msg;
$fdsa=$num-$num_msg;
echo "<p align=right><a href=$PHP_SELF?l=$asdf>successive $fdsa firme del guestbook</a></p>";
}
}
mysql_close();
?>
<hr>