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

    distruggere variabile $_POST

    ciao a tutti, ho un problema con la variabile $_POST

    in pratica io invio dei dati tramite form con method post, dopodichè nella pagina è presente uno script javascript, in particolare è il dialog() che mi apre una finestra, e alla chiusura di questa io uso il
    codice:
    location.reload()
    e quindi mi ricarica la pagina.

    Il problema è che se io prima ho fatto qualcosa per cui ho ancora "in giro" la variabile $_POST, quell'istruzione viene rieseguita... in pratica è come se dopo aver fatto submit dal form, pigio il tasto F5...

    la variabile $_POST la usa per scegliere cosa devo fare al submit del form, per esempio inserire nuovi dati o cancellare o modificare.... quindi ogni volta che chiamerò la funzione javascript
    codice:
    location.reload()
    mi ripassa l'istruzione inviata col $_POST

    ho provato con
    Codice PHP:
    unset($_POST["ins"]) 
    ma non funziona

    potete aiutarmi?

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    105
    Ciao se provi semplicemente con
    Codice PHP:
    unset($_POST); 
    cosa succede?

  3. #3
    uguale... mi ricarica l'azione...

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Se ricarichi una pagina che riceve dati da un form, questa azione richiederà anche il reinvio dei dati (il browser se li ricorda), ripopolando quindi $_POST.
    Non è un problema di PHP è che i browser funzionano così.

  5. #5
    si ok, ma non c'è un modo per evitarlo?

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Non credo, come detto dipende dal browser, non dalla progammazione dello script.

    L'unico modo è far ricevere i dati ad uno script, farglieli elaborare e reindirizzare ad un'altra pagina diversa.

  7. #7

  8. #8
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    una soluzione potrebbe essere eseguite una chiamata asincrona ad esempio trami ajax di jquery dopo aver premuto un tanto.

    Nel caso volessi fare qualche prova ti suggerisco questa plugin molto immediato

    http://jquery.malsup.com/form/

    ti permetti di bindare l'intera form ad una chiamata asincrona

    Questo impedirebbe il secondo post ricaricando la pagina.
    Che mestiere difficile.....essere da soli ancora di più

  9. #9
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Non so se ti puo' essere utile comunque l'idea è di trasmettere una variabile $_GET al momento del "reload" della pagina e quindi di agire a secondo della sua presenza o meno.

    Codice PHP:
    <?php 
    if (isset($_POST["ins"])) {
     
    $ins $_POST["ins"];?>
     <script language="JavaScript" type="text/javascript">
      <!--
      window.location.href="<?php print basename($_SERVER['PHP_SELF'])."?pippo=1"?>";
      //-->
      </script><?php
    } else {
     
    $ins "";
    // if (isset($_POST["ins"])) 

    if (isset($_GET["pippo"])) {
     print 
    $_GET['pippo'];
    }
    ?>
    <form method="post" name="mio_form" action="<?php print  basename($_SERVER['PHP_SELF']) ?>">
    Ins  :<input type="text" name="ins">

    Nome :<input type="text" name="nome">

    <input type="submit" name="sub" />

    </form>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  10. #10
    Ho trovato una soluzione più veloce...
    anzichè usare il
    Codice PHP:
    location.reload() 
    ho usato
    Codice PHP:
    location.href = '<?= $_SERVER['PHP_SELF']?>';
    così mi ricarica la pagina come se fosse una nuova....

    Grazie mille a tutti per i consigli!!!

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.