Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [Sessioni PHP] Evitare submit multipli dell'utente. Consigli.

    Buongiorno a tutti,

    è da tre giorni che mi sto argomentando un pò sui cookie e le sessioni. Essendo neofita su questo argomento mi piacerebbe ricevere un consiglio da voi tutti.

    Espongo il problema:

    Data una pagina con un form, vorrei evitare i submit multipli se ad esempio viene refreshata la pagina oppure l'utente torna indietro e reinvia gli stessi dati.

    Ho pensato a una roba del genere:

    Codice PHP:
    <?php
    session_start
    (); // Inizializzo la sessione

    $sessID_utente session_id();

    /*

    Qui avrò il resto della pagina in html con il form, i campi e il pulsante di invio.

    */

    if (isset($_POST['tasto_invia'])) { // Al click sul pulsante che invia i dati...

       
    if($sessID_utente === $sessID_utente) { // Controllo se l'id di sessione dato all'utente è lo stesso..

           
    echo ("Hai già inviato i dati...niente submit multiplo per te.");

       }
    }
    ?>
    ..ecco questa è la pensata che ho fatto io. Di sicuro non sarà giusta ma ho postato questo thread apposta perchè, ripeto, le sessioni sono una cosa nuova per me

    Grazie!

  2. #2

    Re: [Sessioni PHP] Evitare submit multipli dell'utente. Consigli.

    codice:
    if($sessID_utente === $sessID_utente) { // Controllo se l'id di sessione dato all'utente è lo
    questa condizione non ha senso... è sempre vera... ogni variabile è uguale a se stessa.

    i submit multipli possono essere evitati in diversi modi:
    il primo (il più semplice... e ordinato) coniste nell'eseguire l'operazione del submit in una pagina distinta.

    una seconda consiste nel mettere in sessione la serializzazione di $_POST (c'è una pillola di piero.mac qui sul forum) e avrai una cosa di questo tipo:
    Codice PHP:
    session_start();
    if(isset(
    $_POST['submit'])){
        if(isset(
    $_SESSION['content_submit']) AND $_SESSION['content_submit'] = serialize($_POST)){
            
    // doppio submit... quindi non esegui operazione
            
    }
        else{
            
    // esegui operazione etc etc
            // serializzi $_POST e metti tutto in sessione
            
    $_SESSION['content_submit'] = serialize($_POST);
            }
        } 
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  3. #3
    si sono consapevole di aver scritto una cretinata ti ripeto sono nuovo su questo argomento ed è "l'ultimo" accorgimento importante da implementare nelle mie pagine.

    Intanto ho trovato (credo di si) la pillola che dicevi. Dovrebbe essere questa: http://forum.html.it/forum/showthrea...hreadid=773071

    In secondo luogo di dico che ho tre pagine con 3 form. Ognuno di essi ha un action="" . Quindi tutta la roba di controlli, invio, ecc, è immessa in ognuna delle pagine stesse.

    (A proposito..dovrei inserire questo nell'action? action ="<?php PHP_SELF() ?>" )

    Comunque ora mi leggo la pillola e poi ti dico

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.