Buona Sera , ho scritto questo codice PHP che permette ad un utente loggato ad un sito tramite una sessione di lasciare un messaggio.
Ho creato una tabella in un database dove andranno a finire i dati strutturata in questa maniera:
campo id : auto_increment
campo username: lo acquisisco dalla sessione
campo data_inserimento: che acquisisco con la funzione now()
campo timestamp
gli ultimi due mi servono perchè faccio dei controlli di cancellazione giorno per giorno.
vi posto il codice ma ho riscontrato dei problemi :
1) non mi stampa la lista dei messaggi di ogni persona
2) se aggiorno aggiunge alla tabella campi vuoti
3) se inserisco più messaggi di una stessa persona ne visualizza solo l'ultimo inserito
Codice PHP:
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("gbook");
?>
<html>
<head></head>
<body>
<?php
if(!isset($_POST['invia']))
{
?>
<form method="POST" action="#">
testo qui : </p>
<input type="textarea" name="messaggio">
<input type="submit" name="invia">
</form>
<?php
}
else
{
$ut=$_SESSION['utente'];
$messaggio=$_POST['messaggio'];
$data=date('Y-m-d');
echo $data."
";
$iserisci = mysql_query("INSERT INTO messaggi (username,messaggio,data_inserimento) VALUES ('$username','$messaggio',now())");
if($iserisci)
echo "OK
";
else
echo "no";
$cattura = mysql_query("SELECT * FROM messaggi WHERE data_inserimento >= '$data'");
$conta=mysql_num_rows($cattura);
echo $conta."
";
$i=0;
while ($i < $conta)
{
$messaggio=mysql_result($cattura,$i,"messaggio");
$data_attuale=mysql_result($cattura,$i,"data_inserimento");
echo "messaggio : ".$messaggio."
";
echo "data : ".$data_attuale."
";
$i++;
}
$prendi = mysql_query("SELECT timestamp,data_inserimento FROM messaggi");
$conta=mysql_num_rows($prendi);
$i=0;
while ($i < $conta)
{
$timestamp=mysql_result($prendi,$i,"timestamp");
$data_inserimento=mysql_result($prendi,$i,"data_inserimento");
$timestr=substr($timestamp,0,10);
if($timestr>$data_inserimento)
{
$sqlcancella = mysql_query("DELETE FROM messaggi WHERE data_inserimento='$data_inserimento'");
}
$i++;
}
}
?>
</body>
</html>
questo è il codice , secondo voi come dovrei migliorarlo e se c'è qualcosa di sbagliato ditemelo , grazie in anticipo