Homepage Site Map


   
PROGRAMMAZIONE
   FARE WEB
   HTML
   CSS
   PHP
   MySQL
   XML - XSL
GRAFICA
   PAINT SHOP
   ANIMATION SHOP
   SWISH
   SWISHMAX
SCRIPT
   JAVASCRIPT
   PHP
   APPLET JAVA
   CSS GENERATOR
   WEB TOOLS
DOWNLOAD
   FONTS
   ICONE E AVATAR
   SMILES
   GIF ANIMATE
   CURSORI
   CALENDARI
   KAOANI
   BASI BANNER
   SCREENMATES
   MEEGOS
   GIOCHI
   VIDEO E PPS
ARTICOLI
   ARTICOLI
   GUADAGNA SITO
LINKS
   LINK TO ME
   VOTAMI
   SCAMBIO LINK
   SCAMBIO BANNER


zanox Partner promuovono Partner


 
  

Home -> Manuali e Tutorials -> Guida PHP -> TagBoard  (3/3)


Scarica il tutorial      |    Stampa il tutorial      |    Cerca nel sito      



REALIZZARE UNA TAG BOARD IN PHP



Tag-board realizzata su file

La stessa tag può essere realizzata tramite supporto di file di testo e quindi senza MySQL; per cui l'applicazione comprenderà gli stessi files smilies.php e tagboard.js dell'applicazione precedente, poi un file di testo su cui verranno memorizzati i vari messaggi, una index.php e il file fFile.php. Per vedere in anteprima l'applicazione, cliccate qui.

Vediamo ora la index.php :


<HTML>
<HEAD>
<LINK HREF="stile.css" type="text/css" rel="stylesheet" >

// Codice JS per il conteggio dei caratteri rimanenti
<SCRIPT language=JavaScript>
<!--

function initcharsleft()
{
charsleft(document.forms["tagform"].text);
}

function charsleft(feld)
{
var anz = feld.value.length;
if (anz> 150 )
{
feld.value = feld.value.substring(0,225);
frei = 0;
}
else
{
frei = 150 -anz;
}
document.forms["tagform"].num.value = frei;
}
//-->// -->
</SCRIPT>

// Codice HTML per la struttura della Tag
</HEAD>
<BODY>
<TABLE border=0 cellpadding=0 cellspacing=0 width="20%" class=tableborder height="70%">
<TR>
<TD class=row4>
<TABLE border=0 cellpadding=0 cellspacing=4 width="100%">
<TR>
<TD>
<TABLE border=0 cellpadding=0 cellspacing=0 width="100%" class=tableborder>
<TR>
<TD valign=top class=row2><div class=div_tag>
<?php // Codice PHP per il recupero dei mess da file e relativo print
if ($_GET["act"]=="printa")
{
if(file_exists("tag.txt"))
{
include_once("fFile.php");
lista("tag.txt");
}
}
if ($_GET["act"]=="exit" || !isset($_GET["act"]) || isset($_POST["ok"]))
{
print("<CENTER><BR><A HREF='index.php?act=printa'>Vedi Tag</A></CENTER><BR><BR>");
}
?>

</div></TD>
</TR>
</TABLE>
</TD>
</TR>
<TR height=10>
<TD> </TD>
</TR>
<TR>
<TD valign="top"><FORM METHOD="POST" name="tagform" ACTION="index.php?act=insert">
<SCRIPT language="Javascript" src="tagboard.js" type="text/javascript"></SCRIPT>
<CENTER><TABLE border=0 cellpadding=0 cellspacing=1 width="100%">
<TR height=25>
<TD class=row3 colspan=2 align=middle><INPUT TYPE="text" NAME="nome" MAXLENGTH="20" size=20 value="NOME"></TD>
</TR>
<TR height=25>
<TD class=row3 colspan=2 align=middle><INPUT TYPE="text" NAME="email" MAXLENGTH="30" size=20 value="EMAIL"></TD>
</TR>
<TR>
<TD class=row3 valign=middle align=middle><input size=3 value=150 name="num"><BR><A onclick="return pop_up_smilies();" href="smilies.htm" target=_blank class=genmed> <I>smilies</I></A></TD>
<TD class=row3 valign=middle align=middle><TEXTAREA name="message" ROWS="3" COLS="10" maxlength="150" onKeyPress=charsleft(this); onKeyDown=charsleft(this); onBlur=charsleft(this); onKeyUp=charsleft(this); onFocus=charsleft(this); wrap=VIRTUAL onChange=charsleft(this);></TEXTAREA></TD>
</TR>
<TR height=30> <TD colspa
n=2 class=row3 valign=middle><CENTER><INPUT TYPE="submit" value=" Invia " name="ok" class=mainoption></CENTER></TD>
</TR>
</TABLE></CENTER></FORM></TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
<?php // Codice PHP per la memorizzazione del nuovo mess su file
if ($_GET["act"]=="insert")
{
if ($_POST["nome"]!="NOME" && $_POST["message"]!="" && $_POST["nome"]!="nome" && $_POST["nome"]!="")
{
if(file_exists("tag.txt"))
{
include_once("fFile.php");
include_once("smilies.php");
foreach($smile_array as $smile_face=>$smile_image) // Sostituisco il codice SMILIE con quello HTML
{
$_POST["message"] = str_replace($smile_face, $smile_image, $_POST["message"]);
}
$appo=make_string($_POST);
insert($appo,"tag.txt");
}
}
}
?>


Le porzioni di codice html sono le stesse, ma ovviamente cambiano quelle php; la prima parte di codice php serve per printare i messaggi, verificando prima l'esistenza del file di testo. La seconda parte di codice php, invece, effettua dei controlli sui valori di MESSAGE e NOME, sostituisce il codice delle smilies con quello html dei tag IMG, viene creata poi una stringa $appo attraverso la funzione make_string, e successivamente viene eseguito il suo inserimento su file di testo, attraverso la funzione insert, anche essa presente sul file fFile.php .

Vediamo poi in dettaglio il file fFile.php che contiene tutte le funzioni necessarie per gestire il file di testo "tag.txt".

N.B.: se dovete usare questa versione della Tag su un server Linux, dovete impostare il CHMOD del file di testo "tag.txt" a 777, cambiando i suoi permessi di accesso, esattamente come mostra la figura di sotto, altrimenti non potrete salvare i messaggi sul file stesso.




<?php
function lista($file_name)   // Printa la tabella con tutti i mess
{
print("<TABLE border=0 cellpadding=0 cellspacing=4 width=100%>");
print("<TR height=10><TD class=row4> </TD></TR>");
$fp=fopen($file_name,"r");
while(!feof($fp))
{
$riga=fgets($fp,4096);
if($riga!="")
{
$appo=make_record($riga);
echo($appo);
}
}
print("</TABLE>");
print("<br><br><CENTER><A HREF='index.php?act=exit'>Exit</A></CENTER><BR><BR>");
fclose($fp);
}

function make_record($val)   // Ritorna una riga HTML (TR) contenente il mess passatogli come stringa
{
$arr=explode("|",$val);
$stringa="<TR><TD class=row1><SPAN class=genmed><B> Nome:</B> ".$arr[0]."<BR><B> Email:</B> ".$arr[1]."</span></TD></TR><TR><TD valign=top class=row3><SPAN class=genmed><B> Mex:</B> ".$arr[2]."</span></TD></TR><TR height=10><TD class=row4> </TD></TR>";
return $stringa;
}

function make_string($arr)   // Crea una stringa a partire dall'array contenente il mess
{
$stringa=$arr["nome"]."|".$arr["email"]."|".$arr["message"]."|";
return $stringa;
}

function insert($value,$file_name)   // Salva il mess su file di testo
{
$fp=fopen($file_name,"r");
$old_data=fread($fp,filesize($file_name));
fclose($fp);
$totale=$value."\n".$old_data;
$fp=fopen($file_name,"w");
fwrite($fp,$totale,80000);
fclose($fp);
}

?>


In ordine quindi sono riportate le funzioni lista, che apre in lettura il file di testo, e fino a quando non viene raggiunta la sua fine ( condizione !feof($fp) del ciclo while ), legge una riga per volta e la memorizza su di una stringa, $riga, e poi, attraverso la funzione make_record, printa la tabella dei messaggi.

Bisogna ora precisare come vengono memorizzati i dati nel file di testo; per questo analizziamo la funzione insert, che apre il file dapprima in lettura per leggere tutti i messaggi precedentemente inseriti ( attraverso la funzione natia fread, viene riportato tutto il contenuto del file su di una stringa chiamata $old_data ), chiude il file per poi riaprirlo in scrittura e scriverci una stringa complessiva di vecchi e nuovi dati , $totale appunto.

Quindi tutti i dati relativi allo stesso messaggio vengono memorizzati su di una stessa riga; è quindi necessario accodare ad una stringa, $stringa appunto, il nome, l'email ed il messaggio separati da un carattere jolly, "|", che a noi serve per riconoscere la fine e quindi l'inizio dei tre successivi valori memorizzati. Ad esempio una riga salvata su file potrebbe essere la seguente:


Andrea|andruska1@fastwebnet.it|ciao a tutti!! <IMG SRC=smilies/bye1.gif WIDTH=26 HEIGHT=18 BORDER=0> |


e nel caso in cui non venga inserita l'email, unico campo non necessario per l'inserimento del mess, la riga sarebbe:


Andrea||Ciao a tutti!! <IMG SRC=smilies/bye1.gif WIDTH=26 HEIGHT=18 BORDER=0> |


Tutto ciò è realizzato dalla funzione make_string.

La funzione make_record, invece, ricevendo come input una stringa corrispondente ad una riga, non fa altro che separare i tre campi e printarli nella tabella html.





Torna su      |    Indice Guida      |    Pagina << 28 >>    


Vai al W3C CSS Validator toolkit.
Realizzato con PHP. Vai al sito ufficiale del PHP.
Testato anche con Mozilla Firefox. Vai al sito ufficiale.

Home     Contacts     Forum     FAQ     Newsletter     Mappa     Cerca     Link to me

  Vedi gli RSS del sito.      

-->  [Il tuo link qui]