ZenGFX.net

Graphic & Informatic Resources

Realizzare una shoutbox in PHP


Active ImageQuesto script scritto in PHP ha come proposito l’illustrazione della realizzazione di una ShoutBox. Tutti sapranno di cosa si tratta, ma spesso ci si pongono molti interrogativi su come poterla implementare, ricorrendo spesso per i propri siti a lavori fatti da altri, che poi verranno più o meno sapientemente adattati al proprio sito.
Lo scopo di questo tutorial non è quello di fornire uno script da utilizzare nei propri siti, ma quello di insegnare qual’è il comportamento di una Shoutbox, quali sono i suoi funzionamenti e quindi come poterne realizzare una nostra, adatta in tutto e per tutto alle esigenze che vogliamo e quindi meglio adattabile al nostro sito.

Per poterla realizzare e quindi iniziare a muovere i primi passi, abiamo bisogno di aver installato sul nostro computer un webserver come Apache, con PHP e MySQL.

Una volta muniti di tali prerequisiti siete pronti per iniziare

Come prima cosa aprite un client MySQL (PHPmyAdmin, QueryBrowser, Terminale, etc..) ed eseguite lo script per la tabella della shoutbox che servirà a memorizzare tutti i vostri messaggi:

create table shoutbox(
idmessaggio int not null auto_increment,
utente varchar(30) not null,
messaggio varchar(100) not null,
datamessaggio datetime not null,
ipaddress varchar(15) not null,
primary key (idmessaggio)
);

Una volta compiuta questa ooerazione, possiamo inziare a creare il nostro script. Io sono propenso a non accorpare i parametri e gli script per la connessione al Database in un unico file, ma ciò non toglie che sia possibile farlo, quindi per questa guida è necessario creare sul proprio webserver la cartelle /include/ e quindi salvare in essa i due seguenti file:

<?PHP
////////////////////////////////////////////
/*Tutorial realizzato da Logan
wwww.infone.netsons.org
file di configurazione*/
////////////////////////////////////////////

//Settaggio parametri di connessione.
$database = "nomedatabase";
$utentedb = "inserisciiltuonomeutente";
$passdb = "inseriscilatuapassword";
$hostdb = "localhost";

//Settaggio delle caratteristiche della Shoutbox.

//utente di default.
$nick_utente_default = "Utente";
//messaggio di default.
$messaggio_default = "Messaggio";
//limite minimo di caratteri.
$limite_minimo = 10;
//limite massimo di messaggi visualizzati.
$limite_visualizzato = "LIMIT 10";
?>

Adesso tocca alla creazione del secondo file, quello per la connessione al database:

<?PHP
////////////////////////////////////////////
/*Tutorial realizzato da Logan
wwww.infone.netsons.org
file di connessione*/
////////////////////////////////////////////

include('config.php');

//Instaurazione connessione con il dataase.

$connessione = mysql_connect($hostdb,$utentedb,$passdb,true)
or die("Spiacente ma la connessione non può essere stabilita");
$database = mysql_select_db($database,$connessione)
or die("Spiacente ma il database non è presente");
?>{/geshibot}

Bene una volta fatto questo, possiamo concentrarci sul cuore della nostra shoutbox che analizzaremo pezzo per pezzo, pertanto tutti i frammenti di codice che adesso andremo a visionare, sono tutti parte di un unico file che creeremo fuori dalla cartella include:

{geshibot lang="PHP" head="shoutbox.php - Inserimento dei dati nel database."}<?PHP
////////////////////////////////////////////
/*Tutorial realizzato da Logan
wwww.infone.netsons.org
file di utilizzo*/
////////////////////////////////////////////

//qui richiamiamo i due script di configurazione e connessione al dataase.
include('include/config.php');
include('include/connection.php');
//qui raccogliamo i dati che vengono inviati.
//se ho ricevuto il parametro post vuol dire che devo prelevare i dati passati.
if ($_GET['action'] == 'post'){
//ho bisogno di una variabile di errore.
$ERRORE = false;
//prendo l'IP.
$IP = $_SERVER['REMOTE_ADDR'];
//prendo il Nick.
$Nick =$_POST['txtNome'];
//controllo del nick.
if($Nick == $nick_utente_default or empty($Nick)){
echo "<p>Controllare che il nome non sia quello di defoult che non
sia vuoto o che non superi i limiti consentiti</p>";
$ERRORE = true;
}
//prendo il messaggio
$Messaggio =$_POST['txtMess'];
//controllo del messaggio.
if (($Messaggio == $messaggio_default) or (empty($Messaggio))
or (strlen($Messaggio) < $limite_minimo)){
echo "<p>Controllare che il messaggio non sia quello di defoult,
che non sia vuoto o che non superi i limiti consentiti</p>";
$ERRORE = true;
}
//se non ci sono errori allora posso inserire i dati all'interno del database.
if (!$ERRORE){
$Ora = date ("y-m-d h:i:s");
//impedisco i tag HTML.
$Nome = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $Nick);
$MessaggioF = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $Messaggio);
//Inserisco nel DB i dati con una query.
$MySQLSend = "INSERT INTO shoutbox(utente, messaggio, datamessaggio, ipaddress)
VALUES ('$Nome','$MessaggioF','$Ora','$IP');";
mysql_query($MySQLSend);
}
}
?>

Adesso passiamo alla creazione della parte HTML, ovviamente non troverete decori fogli di stile particolari o altro, ma è ovvio che questo è solamente un tutorial su come funziona una shoutbox, non una vera shoutbox da usare in un sito, anche se il modello qui esposto è funzionante.

<html>
<head>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
<title>Shoutbox</title>
<meta name="GENERATOR" content="Kate (Linux)">
<style type="text/css">
<!--
@page { size: 21cm 29.7cm; margin: 2cm }
P { margin-bottom: 0.21cm }
-->
</style>
</head>
<body dir="ltr" lang="it-IT">
<h1 style="margin-bottom: 0cm;">
<em><strong>Benvenuti nella nostra Shoutbox </strong></em></h1>
<hr>
<div align="center">
<p style="margin-bottom: 0cm; font-style: normal;">
Elenco messaggi:
</p>
<form id="frmInterventi" name="interventi">
<table width="500" border="0">
<tr>
<td>

Adesso seguirà una parte molto interessante, ovvero la lettura e quindi la stampa dei messaggi inseriti, all’interno della nostra shoutbox, per fare questo abbiamo bisogno di uno script PHP:

<?php
/**Codice per la lettura dei messaggi da DB**/
$MySQL = "SELECT utente, messaggio, datamessaggio";
$MySQL.=" FROM shoutbox";
$MySQL.=" ORDER BY datamessaggio DESC ".$limite_visualizzato.";";
$vista = mysql_query($MySQL);
while($rs = mysql_fetch_array($vista)){
echo "<hr><P>Nome: ".$rs['utente']."</p><p>Messaggio: "
.$rs['messaggio']."</p><p>Alle:".$rs['datamessaggio']."</p>";
}
$rs->close;
?>

Segue in ultimo, il form di inserimento dei dati in cui cariceremo il nome utente ed il messaggio di defoult e passeremo come parametro allo stesso script PHP che stiamo scrivendo adesso, il valore post, di modo che possa essere abilitato l’inserimento dei dati all’interno del database.

</td>
</tr>
</table>
</form>
</div>
<hr>
<div align="center">
<p style="margin-bottom: 0cm; font-style: normal;">
Fai il tui intervento!:
</p>
<form id="frmRisposta" name="risposta" method="post" action="?action=post">
<table width="500" border="0">
<tr>
<td width="59">Nome:</td>
<td width="125">
<input type="text" name="txtNome" value=<? echo $nick_utente_default ?> />
</td>
</tr>
<tr>
<td>Messaggio:</td>
<td>
<textarea name="txtMess" cols="80" rows="10"><? echo $messaggio_default ?></textarea>
</td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="btnInvia" value="Invia" /></td>
</tr>
</table>
</form>
</div>
<hr>
</body>
</html>

E con questo il nostro tutorial è concluso e la shoutbox è pronta all’uso, spero che questo script possa essere da spunto per la creazione di shoutbox personali di buon livello.

Buon lavoro e a presto.



2 Responses to “Realizzare una shoutbox in PHP”

  1. mic Says:

    Scusa ma come li devo chiamare i messaggi? :D :D

  2. LoganDTR Says:

    Scua, in che senso?

Leave a Reply