Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    17

    realizzazione di un guestbook

    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

  2. #2
    Non hai nessun controllo sulla sicurezza dei dati inviati e inseriti nel form e ho detto tutto

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    17
    apparte quello che si fa con due if , come risolvo gli altri problemi ._. ?

  4. #4
    Sorry non avevo letto.
    Comunque per stampare tutti i messaggi devi fare le query che seleziona e stampa tutti i messaggi fuori da quell'if praticamente inutile dato che ti basta fare tipo:
    Codice PHP:
    <?php
    if (isset($_POST['invia']){
    //controllo e inserimento del post
    }
    ?>

    <form method="POST" action="pagina.php"> 


    testo qui : </p>
     
    <input type="textarea" name="messaggio">
     
    <input type="submit" name="invia">

    <?php
    //qui stampi tutti i messaggi
    ?>
    Con questo risolvi tutti i tuoi problemi

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    17
    grazie mille

  6. #6

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    17
    ciao , ho provato ma mi da errore , potresti riscrivermi il codice come dice te ?

  8. #8
    Che genere di errore?
    Non ti scrivo il codice per il semplice fatto che sei qui per chiedere aiuto e non lo script fatto

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    17
    ho risolto era un maledetto punto e virgola , se volessi cancellare i dati del giorno prima è giusto il mio codice che ho scritto??

  10. #10
    Originariamente inviato da crion
    ciao , ho provato ma mi da errore , potresti riscrivermi il codice come dice te ?



    Originariamente inviato da crion
    ...se volessi cancellare i dati del giorno prima è giusto il mio codice che ho scritto??
    Se li cancella il codice è giusto altrimenti no!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.