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

    refresh pagina php tramite browser

    ciao
    ho un form php che invia i dati ad un database.
    L'action del form manda alla pagina stessa con $PHP_SELF, lo script php controlla la correttezza dei dati ed invia i dati stessi al db.

    Funziona tutto correttamente, ma se faccio il refresh della pagina col browser mi compare l'alert che chiede se annullare o inviare nuovamente i dati (impossibile aggiornare la pagina senza inviare nuovamente le informazioni)
    se scelgo di invairli di nuovo il record viene registrato 2 volte.

    eppure ho sottoposto tutto lo script ad una condizione if($inviato)
    che diventa vera al submit del form...

    Come mai col refresh la variabile $inviato rimane?

    grazie 1000

  2. #2
    rimane perche il refresh ricarica la situazione attuale....

    ed attualmente tu hai appena inviato un form quindi ci sono le variabili valorizzate, le sessioni attive, i campi selezionati...

    insomma, proprio come se tu facessi un nuovo invio identico al primo.

    ti consiglio, al termine dell'inserimento dei dati nel db, quando da il messaggio di conferma di fare un redirect a se stessa in modo che un eventuale refresh ricarica la pagina vuota.

    lo potresti fare con
    <script language="javascript">
    location.href="<?php $PHP_SELF;?>";
    </script>
    <script language="javascript">
    location.href="quellochetipare.htm";
    </script>


    Capito?


  3. #3
    usa le sessioni
    session_start(); ad inizio pagina
    nella prima parte della pagina scrivi:
    $_SESSION['inserimento'] = 0;
    nell'altra pagina dopo il submit scrivi:
    if($_SESSION['inserimento'] == 0)
    {
    eseguo la query;
    $_SESSION['inserimento'] = 1;
    }

    cosi se fai refresh ti compare il messaggio di inserimento ma il dopoione non si verifichera'
    avevo lo stesso problema anche io

    per l'alert del browser non ci puoi fare niente
    Ciao Cube
    http://www.perungiorno.it

  4. #4
    Grandi!
    I vostri suggerimenti sono stati preziosissimi...
    ma, naturalmente, risolto un problema, ne arriva subito un altro.
    Ora ho diviso il tutto in 2 pagine, perchè il form era molto lungo.
    Nella prima pagina c'è solo il form.
    Nella seconda gli script php che controllano i dati, li inviano al db, spediscono le mail di conferma.

    Il problema di prima, grazie a voi, è risolto, ma ora c'è quest'altro;
    nella pagine di conferma ho un link che mi rimanda al form se alcuni campi non sono stati correttamente compilati.
    una cosa così:
    Codice PHP:
    echo "<div class=\"messaggiphp\">Uno o più campi non sono stati compilati</div><div>
    <a class=\"mainnav\" href=\"javascript:history.go(-1)\">Indietro</a></div>"

    ora, però, i dati che erano già inseriti non vengono "conservati" e cliccando sul link indietro mi ritrovo i campi vuoti.

    il motivo potrebbe essere la presenza di session_start()?

    Come possibile rimedio avrei pensato di re-inviare le variabili che contengono i valori del form, accodandole all'url del link "indietro"...
    è un metodo corretto di procedere?
    o è troppo contorto?

    grazie ancora.

  5. #5
    il link indietro deve essere un bottone submit
    <form method = post action = "paginadacuivengo.php">
    <input type = hidden name = "primo_valore" value = "<?=$_POST['primo_valore'];?>">
    <input type = hidden name = "secondo_valore" value = "<?=$_POST['secondo_valore'];?>">
    (e cosi via per tutti i valori che vuoi salvare)
    <input type = submit name = correzione value = "correzione">
    </form>


    // paginadacuivengo.php
    <input type = text name = primo_valore <?=if(isset($_POST['primo_valore'])) echo " value = ".$_POST['primo_valore']; ?>>


    e cosi via, spero di essermi spiegato
    http://www.perungiorno.it

  6. #6
    Ciao pax_partout...
    chiarissimo ed utilissimo come sempre;
    domani provo subito a sistemare le due pagine con ques'utlimo accorgimento...
    certo che è chi non ne sa nulla (parlo dei "committenti") ben difficilmente si può immaginare di quante complicazioni ci siano nel costruire applicazioni web anche apparentemente semplici...
    cmq grazie ancora di tutte le "dritte"...

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.