Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    32

    cancellare messaggi "vuoti"

    Mi scuso subito per la mia ignoranza :master:

    Ho creato un semplice libro degli ospiti:
    http://www.alspigul.net/guest.php
    e adesso vorrei che eventuali messaggi "vuoti", cioè senza nessun dato inserito, non venissero mostrati ma bensì cancellati automaticamente.

    È possibile e se sì qualcuno ha la pazienza di spiegarmi come?

    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di Inoki
    Registrato dal
    Oct 2001
    Messaggi
    788

    Re: cancellare messaggi "vuoti"

    [supersaibal]Originariamente inviato da goda
    Mi scuso subito per la mia ignoranza :master:

    Ho creato un semplice libro degli ospiti:
    http://www.alspigul.net/guest.php
    e adesso vorrei che eventuali messaggi "vuoti", cioè senza nessun dato inserito, non venissero mostrati ma bensì cancellati automaticamente.

    È possibile e se sì qualcuno ha la pazienza di spiegarmi come?

    Grazie mille [/supersaibal]
    Bhe più che cancellare i messaggi vuoti direi che sarebbe più efficiente, non memorizzarli proprio...

    In fase di INSERT del messaggio, basta controllare che la varibile che contiene il messaggio (es $messaggio) non sia vuota...

    quindi:
    Codice PHP:
    if($messaggio!=""){
         
    mysql_query("INSERTO INTO ....");
    }else{
         echo 
    "Inserire testo nel messaggio";

    Inotrle ti consiglierei di controllare e validare anche il testo che passano gli utenti, cercando di eliminare i tag html, e quant'altro...

    "La teoria è quando si sa tutto e niente funziona. La pratica è quando
    tutto funziona e nessuno sa il perché. In questo caso, abbiamo messo
    insieme la teoria e la pratica: non c'è niente che funziona... e nessuno sa
    il perché!" (Albert Einstein)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    32
    Ci provo...

    ti ringrazio tanto

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    32
    Ho di nuovo bisogno di aiuto...
    Ho inserito lo script che mi hai consigliato:

    <?php

    if($messaggio!=""){
    mysql_query("insert into messggi (nome, messaggio, data_ora, sito) values (\"$HTTP_POST_VARS[nome]\", \"$HTTP_POST_VARS[testo]\", now(), \"$HTTP_POST_VARS[sito]\")");
    }else{
    echo "Inserire testo nel messaggio";
    }

    ?>

    Adesso non vengono memorizzati neppure i messaggi "non vuoti", non riesco a capirne il motivo.

    grazie

  5. #5
    Utente di HTML.it L'avatar di Inoki
    Registrato dal
    Oct 2001
    Messaggi
    788
    [supersaibal]Originariamente inviato da goda
    Ho di nuovo bisogno di aiuto...
    Ho inserito lo script che mi hai consigliato:

    <?php

    if($messaggio!=""){
    mysql_query("insert into messggi (nome, messaggio, data_ora, sito) values (\"$HTTP_POST_VARS[nome]\", \"$HTTP_POST_VARS[testo]\", now(), \"$HTTP_POST_VARS[sito]\")");
    }else{
    echo "Inserire testo nel messaggio";
    }

    ?>

    Adesso non vengono memorizzati neppure i messaggi "non vuoti", non riesco a capirne il motivo.

    grazie [/supersaibal]
    Ma questo è tutto il tuo script, o solo una parte?

    Perchè se è tutto lo script, è logico che non funziona.. Alla variabile $messaggio devi associare il valore del campo passato dal form..

    Inoltre con le ultime versioni di PHP gli array HTTP_GET_VARS, HTTP_POST_VARS ecc ecc, sono stati sostituiti dagli array $_GET, $_POST, $_SESSION...

    Quindi se fai:

    $messaggio=$_POST['messaggio']; (posto che il campo nel form si chiami messaggio, puoi fare il controllo di cui sopra..

    In ogni caso, per evitare problemi, ti consiglio di non inserire nella query le varibili che ti passano direttamente..
    Controllale e validale, devi dare la possibilità di non inviare tag html pericolosi, e via dicendo...

    Un saluto
    "La teoria è quando si sa tutto e niente funziona. La pratica è quando
    tutto funziona e nessuno sa il perché. In questo caso, abbiamo messo
    insieme la teoria e la pratica: non c'è niente che funziona... e nessuno sa
    il perché!" (Albert Einstein)

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    32
    No è solo una parte, lo script intero funziona.

    Proverò a seguire i tuoi consigli

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Codice PHP:
    <?php 

    if($HTTP_POST_VARS[testo]!=""){ 
    mysql_query("insert into messggi (nome, messaggio, data_ora, sito) values (\"$HTTP_POST_VARS[nome]\", \"$HTTP_POST_VARS[testo]\", now(), \"$HTTP_POST_VARS[sito]\")"); 
    }else{ 
    echo 
    "Inserire testo nel messaggio"


    ?>

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    32
    [supersaibal]Originariamente inviato da eiyen
    Codice PHP:
    <?php 

    if($HTTP_POST_VARS[testo]!=""){ 
    mysql_query("insert into messggi (nome, messaggio, data_ora, sito) values (\"$HTTP_POST_VARS[nome]\", \"$HTTP_POST_VARS[testo]\", now(), \"$HTTP_POST_VARS[sito]\")"); 
    }else{ 
    echo 
    "Inserire testo nel messaggio"


    ?>
    [/supersaibal]
    grazie mille!!!!!

  9. #9
    Utente di HTML.it L'avatar di Inoki
    Registrato dal
    Oct 2001
    Messaggi
    788
    [supersaibal]Originariamente inviato da goda
    grazie mille!!!!! [/supersaibal]
    Che è poi quello che ti avevo detto anche io...

    Aggiungo comunque, che HTTP_POST_VARS è cambiato, e se hai le utlime versioni di PHP, dovresti aggiornarti anche tu..

    Inoltre scrivere HTTP_POST_VARS[var], è ulteriormente non corretto, essendo var il riferimento all' array, e quindi dovrebbe essere racchiuso tra apici così come indicato nel manuale:
    Ad esempio, $arr[item] è meglio che sia scritto come $arr['item'] poichè il PHP tenta di trattare "item" come costante.
    "La teoria è quando si sa tutto e niente funziona. La pratica è quando
    tutto funziona e nessuno sa il perché. In questo caso, abbiamo messo
    insieme la teoria e la pratica: non c'è niente che funziona... e nessuno sa
    il perché!" (Albert Einstein)

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    noto un velo di irona...


    comunque: sarebbe opportuno usare $_POST["var"].

    La mia indicazione invece si basa sull'esempio fornito (copia-e-incolla della variabile già utilizzata nella query). A volerla dire tutta ci sarebbero anche altre cosucce che sarebbe meglio aggiungere (come la codifica dei caratteri speciali). Ma può essere sufficiente così...

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.