Visualizzazione risultati 1 fino 7 di 7

Discussione: Evitare invii multipli di un modulo

  1. #1
    Guest

    Predefinito Evitare invii multipli di un modulo

    ciao a tutti.
    ho creato una pagina di inserimento dati in un databse.
    la pagina col form chiama un'altra pagina in cui c'è lo script d elaborazione dati con la conferma dell'inserimento ed i link per tonrare alle pagine giuste.

    il problema è che se l'utente clicca aggiorna o indietro il modulo viene re-inviato nuovamente.
    ciò è male.

    ho scoperto che si ppotrebbero usare i cookies per evitare tutto ciò, ma esiste anche un altro sistema, magari per chi ha i cookies disabilitati?

  2. #2
    Guest

    Predefinito

    potresti usare le sessioni propagando l'id tramite url
    http://it.php.net/manual/it/ref.session.php

  3. #3
    Guest

    Predefinito

    in php.net non è spiegato come procedere al fine di nonf ar riprodurre lo stesso codice al refresh.

  4. #4
    Guest

    Predefinito

    bhè...nel php come in qualunque altra cosa non basta imaprare a memoria il manuale per saper programmare....bisogna usare anche un po' di fantasia...
    tu metti tutto il codice da eseguire uan volta dentro un if che contralla l'esistenza di uan certa varibiale di sessione che imposterai priam di uscire dall'if (ricordati di propagare l'ud di sessiione tramite url...se no nn serve a nulla)

  5. #5
    Guest

    Predefinito

    si di fantasia ne ho e la usa pure molto,
    solo che so che non ho idea di come gestire la variabile SID...

    nella pagina che elabora i dati, potrei pure mettere
    if(SID == '') then elabora modulo, e poi SID = PHPSESSID;
    else non fare nulla, ma non so se possa essere giusto così...

  6. #6
    Guest

    Predefinito

    forse è più facile se controlli direttamente nel database se c'è un record contenente lo stesso messaggio che si sta inviando e è stato inviato dallo stesso ip. Puoi inserire anche un controllo sul tempo, tipo un utente (in base all'IP) non può inviare più di un messaggio ogni 2 min.

  7. #7
    Guest

    Predefinito

    no...allora...tu fai uan cosa così:
    if(empty($_SESSION['contr'])){
    //....cidice
    $_SESSION['contr'] = 'ok';
    }

    ovviamnete dovrei mettere sessin_start() all'inizo di ogni apgina
    e ti dovrei ricordare di propagare il sessioid tramite tutti gli action e i link

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •