Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472

    Annullare o inibire l'effetto dei tasti avanti/indietro

    Ho una pagina che si refresha sempre su se stessa raccogliendo la scelta fatta dall'utente su uno o più form (scelte radio o checkbox).

    Quello che vorrei ottenere è che una volta effettuata la scelta questa deve essere mantenuta cioè non deve essere possibile tramite il tasto "indietro" ritornare alla pagina precedente e correggere la scelta.

    C'è un metodo diretto per eliminare o inibire l'uso dei tasti "avanti" e "indietro" del browser oppure bisogna utilizzare un qualche escamotage?

    Grazie

  2. #2
    Il metodo più semplice ed affidabile è utilizzare le sessioni per "bloccare" l'utente e non permettergli di eseguire due volte la stessa azione. Se, ad esempio, devi creare un percorso tipo wizard, puoi salvare in sessione un array con i passi e quando l'utente cerca di accedere ad un passo precedente già eseguito, lo inoltri al passo che effettivamente deve compiere.

    Una tecnica simile può essere usata per evitare il submit multiplo della stessa form.

    Un workaround meno elegante prevede l'esecuzione di header location dopo il submit della form. In questo modo l'utente che clicca una volta sul tasto indietro verrà reindirizzato nuovamente alla pagina successiva.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472
    Sì in effetti è una sorta di giochetto e dovrò prevedere che l'utente faccia il login e in effetti dorvò utlizzare le sessioni ma siccome non le ho ancora ben chiare, quando sarò al punto riprenderò in mano questo thread e così mi dirai più specificatamente come fare se non ce la faccio da solo. Grazie.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472
    Lo scema nel quale mi muovo, è, stringatamente questo:
    codice:
    <?php
    if(!isset($_POST['pass']) || $_POST['pass'] == "") {$pass=0; $scelta="";}
    else { $scelta=$_POST['a']; $pass=$_POST['pass']; $pass++; }
    ?>
    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
    <input type="radio" name="a" value="1" checked="checked">scelta 1
    
    <input type="radio" name="a" value="2">scelta 2
    
    <input type="hidden" name="pass" value="<?php echo $pass; ?>">
    <input type="submit" value="invio">
    
    <?php
    echo ("al passaggio " . $pass . " hai effettuato la scelta " . $scelta);
    ?>
    è sempre la stessa pagina che si refresha su se stessa e l'utente ogni volta deve fare delle scelte che sono sempre degli input "radio".

    Potresti gentilmente aggiungermi nello script i controlli da fare mettendo le sessioni per far sì di inibire l'uso del tasto indietro?

    Grazie.

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.