PDA

View Full Version : GuestBook in un cms


teddyfreek79
04-01-2005, 11:57
Salve,
sto cercando di inserire un modulo GuestBook in un CMS in php di creazione di un mio amico.

Ecco il codice di "guestbook.php":

<?php
include("includes/config.php");

$pagename = array(
"GuestBook" => basename($PHP_SELF)
);

$main = "
<div style=\"font-size: 24pt;\" align=\"center\">GuestBook</div><br><br>
<form name=\"ModuloGuest\" action=\"elabora_guest.php\" method=\"post\">
<table>
<tr>
<td>Il tuo nome:</td><td><input type=\"text\" name=\"nome_utente\" size=\"30\" maxlenght=\"40\"></td>
</tr>
<tr>
<td valign=\"top\">Il tuo messaggio:</td><td><textarea name=\"testo\" cols=\"30\" rows=\"6\"></textarea></td>
</tr>
<tr>
<td></td>
<td colspan=\"2\"><input type=\"submit\" value=\"Invia il messaggio!\"><input type=\"reset\" name=\"Reset\" value=\"Cancella\">
</td>
</tr>
</table>
</form>
";

include("output.php");
?>



Questo, invece, il codice di elabora_guest.php



<?php

$connessione=mysql_connect("localhost","root","");
$selezione_db=mysql_select_db("my_database", $connessione );

$nome_utente_formattato=strip_tags($HTTP_POST_VARS[nome_utente]);
$messaggio_formattato=strip_tags($HTTP_POST_VARS[testo]);
$inserimento=mysql_query("insert into guestbook (nome_utente, messaggio, data_ora) values(\"$nome_utente_formattato\",\"$messaggio_formattato\", now())");

$main = "
Messaggio inviato con successo. <a href=\"read_guest.php\">Leggi</a> il GuestBook.
";
?>



Infine, il codice di read_guest.php


<?php
include("includes/config.php");

$pagename = array(
"GuestBook" => basename($PHP_SELF)
);

$connessione=mysql_connect("localhost", "root", "");
$selezione_db=mysql_select_db("my_vaghaye", $connessione);

$lettura_risultati=mysql_query("SELECT nome_utente, messaggio, date_format(data_ora, '%d/%m/%Y - ore %H:%i:%s') as data_formattata FROM guestbook ORDER BY data_ora");
if(mysql_num_rows($lettura_risultati)>0) {
while($scatola_temporanea=mysql_fetch_array($lettura_risultati)){
$nome_utente=$scatola_temporanea[nome_utente];
$testo_messaggio=nl2br($scatola_temporanea[messaggio]);
$data_inserimento=$scatola_temporanea[data_formattata];

$main = "
L'utente <b>$nome_utente</b>, in data <b>$data_inserimento</b>, ha scritto:<br><br>$testo_messaggio<br><br>
";
}
}
else{
$main = "
Nessun messaggio presente nel GuestBook..Vuoi <a href=\"guestbook.php\">inserire un messaggio</a>?
";
}

include("output.php");
?>


"$main" indica la tabella dove deve essere sputato l'output [il CMS divide la struttura della pagina in "menu", "header" e "main"....

Il problema riscontrato è che scrivendo il messaggio e inviandolo con "Invia il messaggio", il risultato è che non mi viene visualizzato il testo "Il messaggio è stato inviato" ma una banale pagina bianca.
Inoltre visualizzando la pagina "read_guest.php" appare a schermo _solo_ l'ultimo messaggio inserito nel guestbook.
Con PhpMyAdmin, tuttavia, i record vengono sempre salvati senza alcun tipo di problema.

Cosa c'e' di sbagliato?
Grazie. [e scusate la lunghezza del post]

cionci
04-01-2005, 15:40
Forse non sono chiuse la parentesi dell'if e del while...

fantoibed
04-01-2005, 22:08
Manca un include("output.php"); in elabora_guest.php
Infatti assegni la variabile $main ma nel codice che mostri non c'è alcuna funzione che stampi in output una pagina web... ;)
C'è anche una ) in più nella stessa pagina, negli ultimi caratteri della linea che inizia con $inserimento=mysql_query(..
Ciao! :)

teddyfreek79
05-01-2005, 16:44
Originariamente inviato da fantoibed
Manca un include("output.php"); in elabora_guest.php
Infatti assegni la variabile $main ma nel codice che mostri non c'è alcuna funzione che stampi in output una pagina web... ;)
C'è anche una ) in più nella stessa pagina, negli ultimi caratteri della linea che inizia con $inserimento=mysql_query(..
Ciao! :)

Hai ragione!!!!!:cool: :cool: :cool:
Grazie 1000!;)

Purtroppo, però, si è presentato un altro errore.... ma sto cercando di capirci qualcosa autonomamente: se domani sono andato in crash posto il problema nel forum!

Grazie anche a cionci ;)