il tutto è composto da 2 file.. uno per l'inserimento e uno per il prelievo dei messaggi..
Pagina di inserimento (mess.php):-
Codice PHP:
<?
define('DBHOST', "localhost");
define('DBNAME', "my_folliacity");
define('DBUSER', "folliacity");
define('DBPASS', ""); //questo campo lascialo vuoto!
$conn=mysql_connect(DBHOST,DBUSER,DBPASS)
or die("Errore nella connessione");
mysql_select_db(DBNAME)
or die("Database non trovato");
$body = "color:white;font-family:verdana;font-size:20;margin:3px";
//inserisci
if ($_POST["invia"])
{
foreach($_REQUEST as $key => $value)
$$key=$value;
$data=time();
$testo=htmlentities($testo);
$testo=addslashes($testo);
$query="
INSERT INTO `effebox` (`id` , `data` , `autore` , `testo`)
VALUES
(
'',
'$data',
'$autore',
'$testo'
);";
$esegui=@mysql_query($query);
if ($esegui) $stato="Messaggio inserito<br>[ <a href=\"javascript:self.close();\">Messaggio inviato! clicca qui per chiudere!</a> ]";
else die("ERRORE!!");
mysql_close($conn);
echo "<html>
<head>
<title>Invia un messaggio</title>
</head>
<body style=\"$body\">
<table width=\"100%\" border=\"0\" cellspacing=\"3\" cellpadding=\"5\">
<tr>
<td align=center><b>$stato</b></td>
</tr>
</table></body></html>
";
}
else
//pagina inserimento
{
echo "
<html>
<head>
<title>Invia un messaggio</title>
<style type=\"text/css\">
<!--
a:link {
color:blue; text-decoration: none;
}
a:visited {
color:blue; text-decoration: none;
}
a:hover {
color:red; text-decoration: underline;
}
a:active {
color:blue; text-decoration: none;
}
-->
</style>
<script language=\"JavaScript\">
<!--
function calcCharLeft(f,l1) {
var msgLen;
var MaxLength;
MaxLength = 100;
msgLen=document.modulo.testo.value.length;
if (msgLen >= MaxLength ){
document.modulo.charsleft.value= \"0\";
window.alert(\"Messaggio troppo lungo!\");
document.modulo.testo.value=document.modulo.testo.value.substring(0,MaxLength);
}
else {
document.modulo.charsleft.value = MaxLength - msgLen;
}
}
// -->
</script>
</head>
<body style=\"$body\">
<!-- INIZIO CODICE TESTO SCORREVOLE -->
<FORM name=\"modulo\" method=\"post\" action=\"mess.php\">
<table width=\"100%\" border=\"0\" cellspacing=\"3\" cellpadding=\"5\">
<tr>
<td align=center><b>Pubblica il tuo messaggio!</b></td>
</tr>
<tr>
<td align=center>
Autore: <input type=\"text\" name=\"autore\" size=\"30\" maxlength=\"15\"></td>
</tr>
<tr>
<td align=center>
<textarea name=\"testo\" rows=\"3\" cols=\"20\" OnKeyUp=\"calcCharLeft()\" OnChange=\"calcCharLeft()\"></textarea>
</td>
</tr>
<tr>
<td align=center>
<input type=\"text\" readonly name=\"charsleft\" size=\"3\" value=\"100\"> caratteri rimanenti.
</td>
</tr>
<tr>
<td align=center>
<input type=\"submit\" value=\"Invia!!\" name=\"invia\"></td>
</tr>
</table>
</body>
</html>
";
}
?>
pagina per il prelievo (minibox.php):-
Codice PHP:
<?
define('DBHOST', "localhost");
define('DBNAME', "my_folliacity");
define('DBUSER', "folliacity");
define('DBPASS', "password");
/*
CONFIGURAZIONE DELLA TAG BOARD
------------------------------
Modifica questi parametri a tuo piacimento! :)
*/
//default: sfondo=bianco, testo:nero, font=verdana, dimensione=11, margini=2px
$body = "color:black;font-family:verdana;font-size:10;margin:2px";
//default: ritardo=100 - diminuire per velocizzare...
$marquee = "scrolldelay=\"1\"";
//numero max di messaggi da mostrare
$messaggi = 50;
echo "<html><head><title>EffeBox - messaggi</title></head>
<body style=\"$body\">
<marquee onmouseover=this.stop() onmouseout=this.start() scrollamount=3 direction=left $marquee width=\"100%\">";
$conn=mysql_connect(DBHOST,DBUSER,DBPASS)
or die("Errore nella connessione");
mysql_select_db(DBNAME)
or die("Database non trovato");
$sql = mysql_query("select * from effebox order by `id` DESC limit 0, $messaggi");
while ($result=mysql_fetch_array($sql))
{
$timestamp=$result['data'];
$d = date("j", $timestamp);
$mn = date("n", $timestamp);
$y = date("Y", $timestamp);
$hr = date("H", $timestamp);
$min = date("i", $timestamp);
$sec = date("s", $timestamp);
$data="$d/$mn/$y";
$user=$result['autore'];
$messaggio=$result['testo'];
echo "<u>$data</u> » <b>$user</b>: $messaggio ";
}
echo "</marquee></body></html>";
?>
se uso solo e soltanto quelle due pagine le lettere le prende alla perfezione.. (inserendole usando i box originali contenuti nel file mess.php) le lettere nelle tabelle vengono memorizzate alla perfezione, di conseguenza vengono visualizzate correttamente..
ma come succedeva in passato con un'altra tag, gli utenti cambiavano il proprio nick inserendo sporannomi allo scopo di offendere, causare litigi, ecc.. quindi ho scritto un altro codice di inserimento per l'inserimento dei messaggi (ovviamente esso lo ho posizionato dove voglio che sia presente il box per l'inserimento dei messaggi):-
Codice HTML:
<FORM name="modulo" method="post" action="http://folliacity.altervista.org/testoscorrevole/mess.php">
<table border="0" cellspacing="0" class="posting-table"><tr><td align="left"> Sono connesso con il nick:- <input type="text" name="autore" size="15" maxlength="50" value="{USERNAME}" readonly></td><td align="left"> Messaggio:- <input type="text" name="testo" size="30" maxlength="200"> </td><td align="left"><input type="submit" value="Invia!!" name="invia"> </td></tr></table></form>
ma se li metto con il codice scritto da me le lettere accentate non le prende..
EDIT:- allego anche il codice per creare la tabella nel database..
Codice:
CREATE TABLE `effebox` (
`id` int(10) unsigned NOT NULL auto_increment,
`data` varchar(16) NOT NULL default '',
`autore` varchar(20) NOT NULL default '',
`testo` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;