Salve. Sto creando il mio sito, per ora in localhost, nel quale, sotto ogni articolo vorrei inserire la possibilità di lasciare dei commenti.
Ho provato un codice, il quale riporta correttamente un record in un database e mi restituisce una tabella incrementativa dei valori inseriti. Ma ci sono dei problemi:
- non essendoci una clausola IF nel codice, appena carico la pagina lo script, invia direttamente i dati. Se non ha dati mi trovo un record vuoto, altrimenti -al caricare di nuovo la pagina- prende i precedenti dati ripetendoli.
- la visualizzazione dei dati viene ripetuta per quanti record presenti, ma viene riportato esclusivamente solamente l'ultimo e moltiplicato per il numero dei record.
- mi vengono segnalati, prima del form: "Notice: Undefined index: messaggio in XXX on line 153" per le tre variabili
e dopo il form: "Notice: Undefined index: nome in XXX on line 251"
Ecco i due codici interi.
Come posso risolvere la situazione, avete suggerimenti?
Ho provato un codice, il quale riporta correttamente un record in un database e mi restituisce una tabella incrementativa dei valori inseriti. Ma ci sono dei problemi:
- non essendoci una clausola IF nel codice, appena carico la pagina lo script, invia direttamente i dati. Se non ha dati mi trovo un record vuoto, altrimenti -al caricare di nuovo la pagina- prende i precedenti dati ripetendoli.
- la visualizzazione dei dati viene ripetuta per quanti record presenti, ma viene riportato esclusivamente solamente l'ultimo e moltiplicato per il numero dei record.
- mi vengono segnalati, prima del form: "Notice: Undefined index: messaggio in XXX on line 153" per le tre variabili
e dopo il form: "Notice: Undefined index: nome in XXX on line 251"
Ecco i due codici interi.
PHP:
<?php
//Collegamento
$host= '127.0.0.1';
$user= 'root';
$password= '';
$database= 'sito web';
$connessione = mysql_connect($host, $user, $password)
or die (mysql_error());
mysql_select_db($database, $connessione)
or die (mysql_error());
//query
$query = "select * from commenti";
$dbResult = mysql_query($query, $connessione);
//valori
$nome = $_REQUEST['nome'];
$sito = $_REQUEST['sito'];
$messaggio = $_REQUEST['messaggio'];
//print
print "<table> \n";
while ($line = mysql_fetch_array($dbResult, MYSQL_NUM))
{
print "\t<tr>\n";
print "<td width=\"25%\">\n";
print "<img height=\"54\" width=\"54\" class=\"avatar\" src=\"../../images/gravatar.png\" alt=\"\">
<cite>
<strong><a class=\"author\" href=\"$sito\">$nome</a></strong><br>
<span class=\"comment-data\"></span> \n";
print "</td> \n";
print "<td width=\"75%\">
$messaggio
</td>";
print "<t</tr>\n";
}
print "</table> \n";
//chiudo la connessione
mysql_close($connessione);
?>
PHP:
<?php
//clausola iniziale, se son vuoti i campi nome, email e messaggio avvisa
//Collegamento
$host= '127.0.0.1';
$user= 'root';
$password= '';
$database= 'sito web';
$connessione = mysql_connect($host, $user, $password)
or die (mysql_error());
mysql_select_db($database, $connessione)
or die (mysql_error());
//Indico la riga di comando dell'inserimento
$query = "insert into commenti " .
"(nome, email, sito, messaggio) " .
"VALUES('" .
$_REQUEST['nome'] . "','" .
$_REQUEST['email'] . "','" .
$_REQUEST['sito'] . "','" .
$_REQUEST['messaggio'] .
"')" ;
if (!mysql_query($query, $connessione))
{
print("Attenzione, impossibile inserire il record" . mysql_error());
}
else
{
print("Il record è stato inserito correttamente");
}
//chiudo la connessione
mysql_close($connessione);
?>
Come posso risolvere la situazione, avete suggerimenti?
Ultima modifica di un moderatore: