Vediamo come creare un semplice guestbook con il supporto di un database (
). Un esempio è visibile qui. Il database necessario, chiamato "guest", è costituito dalla sola tabella "dati":
| CREATE TABLE dati ( id int(11) NOT NULL auto_increment, nome varchar(100) NOT NULL default '', email varchar(150) NOT NULL default '', message longtext NOT NULL default '', data varchar(100) NOT NULL default '', www varchar(150) NOT NULL default '', PRIMARY KEY (id) ) |
Di seguito è riportato il codice del file guest.php :
| <?php define("GUEST_DIR", realpath(".")); if ($_POST["nome"]!="" && $_POST["message"]!="") { include_once(GUEST_DIR."/fmysql.php"); include_once(GUEST_DIR."/smilies.php"); $conn = connessione("altro"); foreach($smile_array as $smile_face=>$smile_image) { $_POST["message"] = str_replace($smile_face, $smile_image, $_POST["message"]); } if(!esiste($_POST,"dati",$conn)) { $today=date("j-m-Y H:i"); $query = mysql_insert($_POST,$today,"dati",$conn); } closeConnect($conn); } ?> <html> <head> <LINK HREF="stile.css" type="text/css" rel="stylesheet" > </head> <body> <CENTER><TABLE border=0 cellpadding=0 cellspacing=0 width="50%" class=tableborder> <TR> <TD class=row4> <TABLE border=0 cellpadding=0 cellspacing=4 width="100%"> <TR> <TD valign=top><FORM METHOD=POST name=tagform ACTION="guest.php"> <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> <B>*Nome:</B></TD> <TD class=row3 align=middle><INPUT TYPE="text" NAME="nome" MAXLENGTH="20" size=50></TD> </TR> <TR height=25> <TD class=row3> <B>URL di riferimento:</B></TD> <TD class=row3 align=middle><INPUT TYPE="text" NAME="www" MAXLENGTH="150" size=50 value="http://" ></TD> </TR> <TR height=25> <TD class=row3> <B>Email:</B></TD> <TD class=row3 colspan=2 align=middle><INPUT TYPE="text" NAME="email" MAXLENGTH="30" size=50></TD> </TR> <TR> <TD class=row3> <B>*Messaggio:</B><BR> (<A onclick="return pop_up_smilies();" href="smilies.htm" target=_blank class=genmed> <I>smilies</I></A>)</TD> <TD class=row3 align=middle><TEXTAREA name="message" ROWS="12" COLS="48"></TEXTAREA></TD> </TR> <TR height=30> <TD colspan=2 class=row3 valign=middle><CENTER><INPUT TYPE="submit" value=" Invia " name="ok" class=mainoption></CENTER></TD> </TR> </TABLE></CENTER></FORM></TD> </TR> <TR> <TD> <TABLE border=0 cellpadding=0 cellspacing=0 width="100%" class=tableborder> <TR> <TD valign=top class=row2> </TD> </TR> </TABLE> </TD> </TR> <TR> <TD> <TABLE border=0 cellpadding=0 cellspacing=0 width="100%" class=tableborder> <TR> <TD valign=top class=row2></TD> </TR> </TABLE> </TD> </TR> <TR> <TD><BR><BR><BR> <TABLE border=0 cellpadding=0 cellspacing=0 width="100%" class=tableborder> <TR> <TD valign=top class=row2> <?php include_once(GUEST_DIR."/fmysql.php"); $conn = connessione("altro"); $query = mysql_list_all("dati",$conn); if($query!=null) { lista($query); } closeConnect($conn); ?> </TD> </TR> </TABLE> </TD> </TR> </TABLE> </TD> </TR> </TABLE></CENTER><BR> </body> </html> |
Il codice è, come potete vedere lo stesso di quello usato per creare una Tag basata su db (vedi il tutorial con le spiegazioni). Stessa cosa per il file fmysql.php :
| <?php function closeConnect($conn) { mysql_close($conn); } function connessione($database) { $conn=mysql_connect("localhost","root","") or die("Connessione non riuscita: ".mysql_error()); mysql_select_db($database) or die("Selezione del database non riuscita"); return $conn; } function mysql_list_all($table,$con) { $result=mysql_query("SELECT * FROM $table order by id desc;",$con); while($row=mysql_fetch_array($result,MYSQL_ASSOC)) { $ret[]=$row; } return $ret; } function lista($value) { print("<TABLE border=0 cellpadding=0 cellspacing=4 width=100%>"); foreach($value as $key=>$val) { print("<TR height=10><TD align=right valign=middle class=row4><SPAN class=genmed><IMG SRC='icon.gif' WIDTH='12' HEIGHT='9' BORDER=0 ALT='Lasciato il ".$val["data"]."'> </SPAN></TD></TR>"); if($val["www"]!="http://" && $val["www"]!="") { print("<TR><TD class=row1><SPAN class=genmed> <A HREF='".$val["www"]."' target=void class=genmed><IMG SRC='icon_home.gif' WIDTH=13 HEIGHT=13 BORDER=0 alt='Il mio sito'></A>"); } else print("<TR><TD class=row1><SPAN class=genmed>"); if($val["email"]!="") { print(" <A HREF='mailto:".$val["email"]."' class=genmed><IMG SRC='mail.jpg' WIDTH='10' HEIGHT='8' BORDER=0 ALT='Manda email'></A><B> Nome:</B> ".$val["nome"]."</SPAN></TD></TR>"); } else { print(" <IMG SRC='nomail.jpg' WIDTH='10' HEIGHT='8' BORDER=0><B> Nome:</B> ".$val["nome"]."</SPAN></TD></TR>"); } print("<TR><TD valign=top class=row3><SPAN class=genmed><I>".$val["message"]."</I></SPAN></TD></TR>"); } print("</TABLE>"); } function mysql_insert($value,$data,$table,$conn) { $query=("INSERT INTO $table (nome,email,message,data,www) VALUES ('".$value["nome"]."','".$value["email"]."','".$value["message"]."','".$data."','".$value["www"]."');"); $result=mysql_query($query); } function esiste($arr,$table,$conn) { $query = "SELECT * FROM ".$table." WHERE nome='".$arr["nome"]."' AND email='".$arr["email"]."' AND message='".$arr["message"]."' AND www='".$arr["www"]."';"; $res = mysql_query($query, $conn); while($row = mysql_fetch_array($res, MYSQL_ASSOC)) $ret = $row; if(is_array($ret)) return true; else return false; } ?> |