Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Discussione: Evitare il POSTDATA

  1. #1
    Utente di HTML.it L'avatar di Linusss
    Registrato dal
    Sep 2002
    Messaggi
    405

    Evitare il POSTDATA

    Ragazzi ho un form php con metodo POST, dopo che lo invio e faccio quel che devo fare, se premo F5 o refresho la pagina i dati me li invia di nuovo(viene fuori il solito alert con scritto che la pagina contiene POST data), come posso fare per evitarlo?
    Forum Additive monitora le discussioni più importanti!

  2. #2
    Fai un redirect ad un'altra pagina magari con un messaggio di invio riuscito dei dati

  3. #3
    Utente di HTML.it L'avatar di Linusss
    Registrato dal
    Sep 2002
    Messaggi
    405
    Volendo evitare questo, c'è altro modo?
    Forum Additive monitora le discussioni più importanti!

  4. #4
    Al limite potresti usare la sessione del php ed immagazzinare una variabile in cui tieni traccia dell'accesso alla pagina.

    Es. supponiamo che la pagina in questione si chiami prova.php

    in prova.php avrai una cosa del genere.

    session_start();

    if (isset($_SESSION['accesso']))
    {
    $_SESSION['accesso'] = TRUE;
    }
    else
    {
    //Vuol dire che già ci sei entrato nella pagina e si vuole fare un refresh
    }

    Ora, immagino che in questa pagina hai dei link a delle altre tue pagine. Giusto?

  5. #5
    Se la risposta è si, come immagino, la questione si complica un pò perché ovviamente occorre eliminare la variabile dalla sessione quando dalla pagina prova.php vai su altre pagine, altrimenti se la variabile rimane nella sessione, si verifica che quando ritorni alla pagina del form e fai submit, quella variabile è ancora settata è ti genera erroneamente errore in quanto col codice che ti ho postato interpretiamo l'operazione come un refresh.

    A questo punto la cosa + semplice da fare è questa. Supponiamo che la pagina in cui c'è il form si chiami inizio.php

    in inizio.php metti:

    session_start();

    if (isset($_SESSION['access'])) unset($_SESSION['accesso'])

    così è certo che quando fai il submit la prima volta che vai in prova.php la variabile accesso non esiste nella sessione e quindi giustamente fai quello che devi fare con le variabili inviate via post.

  6. #6
    Utente di HTML.it L'avatar di Linusss
    Registrato dal
    Sep 2002
    Messaggi
    405
    Si tratta di una cosa simile ad un forum, in pratica è una pagina dove posso inserire degli articoli e in più mostra tutti gli articoli già inseriti, il problema era appunto che se si inserisce un'articolo e poi si fa il refresh, l'articolo viene inserito nuovamente...


    Con l'uso delle sessioni non credo che possa risolvere, infatti come faccio a sapere se i dati via POST sono "buono" o sono quelli reinviati da postadata?
    Forum Additive monitora le discussioni più importanti!

  7. #7
    Utente di HTML.it L'avatar di Linusss
    Registrato dal
    Sep 2002
    Messaggi
    405
    Fare un redirect un po' mi scoccia, quasi quasi lo faccio tutto in ajax e finità lì.
    Forum Additive monitora le discussioni più importanti!

  8. #8
    Quindi quindi fai il submit, ritorni sulla stessa pagina dove puoi inserire i dati?

  9. #9
    volevo scrivere:
    Quindi quando fai il submit, ritorni sulla stessa pagina dove puoi inserire i dati?

  10. #10
    Utente di HTML.it L'avatar di Linusss
    Registrato dal
    Sep 2002
    Messaggi
    405
    Sisi ora è così, è infatti questo il problema.
    Forum Additive monitora le discussioni più importanti!

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.