Salve a tutti, seguendo un tutorial sto provando a realizzare un guestbook che utilizza le funzioni collegate a uno switch, in base al case si attiva la funzione corrispondente; la pagina contiene tre parti:
La parte di inserimento dei dati
La parte che manda i dati al database
La parte che manda in stamap i messaggi del guestbook

Ecco qui il codice completo:

<?php
$connessione=mysql_connect("localhost", "root", "miura77");
$selezione_db=mysql_select_db("guest", $connessione);
?>
<html>
<head>
<title>Guestbook</title>
</head>
<body>
<?
echo "<a href=\"guestbook.php?azione=Inserisci\">Firma Il guestBook</a>

";
echo "<a href=\"guestbook.php?azione=leggi\">Leggi Il guestBook</a>

";
function form_guest(){
echo "<form name=\"moduloGuest\" action=\"guestbook.php\" method=\"post\"><input type=\"hidden\" name=\"azione\" value=\"leggi\"><table align=\"center\" border=2><tr><td colspan=2 align=\"center\"><h3>Firma il mioGuestbook!!!!!</h3></td></tr><tr><td>Il tuo nome:</td><td><input type=\"text\" name=\"nome_utente\" size=\"30\" maxlength=\"40\"></td></tr><tr><td valign=\"top\">Il tuo messaggio:</td><td><textarea name=\"testo\" cols=\"30\" rows=\"6\"></textarea></td></tr><tr><td align=\"center\" colspan=\"2\"><input type=\"submit\" value=\"Invia il messaggio!\"></td></tr></table></form>";

}
function read_guest(){
$lettura_risultati=mysql_query("select nome_utente, messaggio, date_format(data_ora, 'in data %d/%m/%Y - ore %H:%i:%s') as data_formattata from messaggi order by data_ora")or(die(mysql_error()));
if(mysql_num_rows($lettura_risultati)>0){
echo "<table>";
$flag_colore=0;
while($scatola_temporanea=mysql_fetch_array($lettu ra_risultati)){
$nome_utente=$scatola_temporanea[nome_utente];
$testo_messaggio=$scatola_temporanea[messaggio];
$data_inserimento=$scatola_temporanea[data_formattata];
echo "<tr>";
if($flag_colore==0){
echo "<td bgcolor=\"#FFFF00\">";
$flag_colore=1;
}
else{
echo "<td bgcolor=\"#C0C0C0\">";
$flag_colore=0;
}
echo "L'utente $nome_utente, $data_inserimento, ha scritto:

$testo_messaggio


";
echo "</tr>";
} //fine ciclo while che scorre la query e piazza i risultati nell'array temporaneo
echo "</table>";
}
else{ //se non ha trovato record
echo "complimenti! nessuno ha finora inserito un messaggio.. tu puoi essere il primo!! <a href=\"form.html\">che aspetti??</a>";
}
}//fine function read_guest()
function elabora_guest(){
$nome_utente_formattato=htmlspecialchars($_POST[nome_utente]);
$messaggio_formattato=htmlspecialchars($_POST[testo]);
$inserimento=mysql_query("insert into messaggi (nome_utente, messaggio, data_ora) values (\"$nome_utente_formattato\", \"$messaggio_formattato\", now())")or die(mysql_error());
echo "<table align=\"center\" border=1><tr><td align=\"center\">messaggio inviato con successo</td><tr><td align=\"center\">Clicca <a href=\"guestbook.php?azione=leggi\">QUI</a> per leggere il guestbook</tr></td>";
}//fine function elabora_guest()
switch($_GET[azione]){
case "inserisci":
form_guest();
break;
case "elabora":
elabora_guest();
break;
case "leggi":
read_guest();
break;
}//switch sulla variabile "azione" passata nella url
?>
</body>
</html>

Ci sono dei problemi:
1) I valori dei campi del form non vengono passati al database, e conseguentemente non stampa i risultati
2)Cliccando su "leggi il guestBook" il case si ricollega alla funzione e read_guest e manda a video i messaggi, dovrebbe fare lo stesso con "Firma il guestbook" ma quando clicco sul link non funziona; inoltre quando inserisco i dati e clicco su "invia i dati" dal pulsante del guestbook, dovrebbe collegarsi alla funzione elabora_guest e mandare a video:

echo "<table align=\"center\" border=1><tr><td align=\"center\">messaggio inviato con successo</td><tr><td align=\"center\">Clicca <a href=\"guestbook.php?azione=leggi\">QUI</a> per leggere il guestbook</tr></td>";
ma niente, non lo fa...
Spero din essere stato più chiaro possibile, spero in un vostro aiuto, visto che è la prima volta che mi cimento con le funzioni.
Grazie anticipatamente