Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 33
  1. #1

    refresh e duplicazione dati

    ciao ragazzi io ho un problema
    ho fatto un insert ma ogni volta che refresho la pagina l'insert viene ripetuto.....
    ma non ho mica capito come posso risolvere ?!?!?!



    la pagina invia i dati del form a se stessa

    grazie dell'aiuto
    aiutooooooooooooooooooooooooooooo

  2. #2
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Questo problema non ce l'ho perchè generalmente faccio un redirect dopo l'inserimento, però io farei così:
    Prima di inserire i dati controllerei se l'array $_POST è settato. Se lo è inserisco i dati e unsetto l'array, altrimenti redirecto o mostro i dati.

  3. #3
    Anch'io ho lo stesso problema...
    ... Prima di inserire i dati controllerei se l'array $_POST è settato. Se lo è inserisco i dati e unsetto l'array, altrimenti redirecto o mostro i dati.
    si potrebbe passare dalla teoria alla pratica con un breve, ma significativo script d'esempio??

  4. #4
    Originariamente inviato da Rhamirez
    Anch'io ho lo stesso problema... si potrebbe passare dalla teoria alla pratica con un breve, ma significativo script d'esempio??
    Come si vede sto facendo 'na mazza... Eccoti un esempio... ovviamente si puo' fare in altri modi... questo e' uno:
    ammettiamo che il file si chiami come_ti_pare.php e che hai una tabella che si chiama tabella e un campo che si chiama campo...
    codice:
    <?
    session_start();
    
    if (isset($_SESSION['fatto']) AND $_SESSION['fatto'] == "ciao pippo") {
           $_POST = array();
           unset($_SESSION['fatto']);
           }  
             elseif(isset($_POST['titolo']) AND  $_POST['titolo'] != '')   {
              
              require "./path_tuo/conf.inc.php";
              mysql_select_db('test');
              mysql_query("INSERT INTO tabella (campo) VALUES ('$_POST[titolo]')") or die (mysql_error());
              $num = mysql_affected_rows();
    
              if($num == 1) echo "inserito";
              else echo "NON inserito";
    
              $_SESSION['fatto'] = "ciao pippo";
              exit;
              }
    ?>
    <html><body>
    <form method = "POST" action = "<?php echo $_SERVER['PHP_SELF'] ?>">
    <input type= "text" name = "titolo"> 
    
    <input type = "submit" name = "invia" value = "invia">
    </body></html>
    In pratica se $_SESSION c'e' e contiene "ciao pippo" significa che il dato e' stato gia inserito, resetto tutto e ti mando al form.

    Se POST titolo c'e' e non e' vuoto lo inserisco nel db e setto $_SESSION. exit.

    that's all Prova se ti va....


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Ti ringrazio per la disponibilità, ma il problema persiste e non è cambiato quasi niente!

    Praticamente, usando il tuo codice, dopo aver inserito ed inviato i dati attraverso il form, compare la scritta "inserito". Ma se provo a fare il refresh della pagina vengono inseriti gli stessi dati in una nuova riga!

    ...ma com'è??!

  6. #6
    Originariamente inviato da Rhamirez
    Ti ringrazio per la disponibilità, ma il problema persiste e non è cambiato quasi niente!

    Praticamente, usando il tuo codice, dopo aver inserito ed inviato i dati attraverso il form, compare la scritta "inserito". Ma se provo a fare il refresh della pagina vengono inseriti gli stessi dati in una nuova riga!

    ...ma com'è??!
    Non e' come il mio.... evidentemente.

    Forse hai i cookie disabilitati e si apre una nuova sessione...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    ...no, scusa! i cookie sono abilitati. Ho provato anche a modificare le banali impostazioni di IE con Privacy/Avanzate.../Sostituisci gestione automatica cookie, dove ho settato tutti i parametri possibili per prendere 'sti cookie!! ma niente da fare...
    Purtroppo quando faccio il refresh della pagina, puntualmente, vengono reinseriti gli stessi dati in una nuova riga.

  8. #8
    Qualcosa hai fatto di diverso perche' altrimenti funzionerebbe.

    Verifica lo script o postalo cosi' come lo usi...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    ...ma è lo stesso identico codice che hai scritto tu, comunque eccolo:
    codice:
    <?php
    session_start();
    
    if (isset($_SESSION['fatto']) AND $_SESSION['fatto'] == "ciao pippo") {
           $_POST = array();
           unset($_SESSION['fatto']);
           }  
             elseif(isset($_POST['titolo']) AND  $_POST['titolo'] != '')   {
              
              require "conf_db.inc.php";
              mysql_select_db($db_name);
              mysql_query("INSERT INTO tabella (campo) VALUES ('$_POST[titolo]')")
    		  or die (mysql_error());
              $num = mysql_affected_rows();
    
              if($num == 1) echo "inserito";
              else echo "NON inserito";
    
              $_SESSION['fatto'] = "ciao pippo";
              exit;
              }
    ?>
    <html><body>
    <form method = "POST" action = "<?php echo $_SERVER['PHP_SELF'] ?>">
    <input type= "text" name = "titolo"> 
    
    <input type = "submit" name = "invia" value = "invia">
    </form>
    </body></html>

  10. #10
    Prova a mettere dopo session_start() un echo...
    codice:
    <?php
    session_start();
    echo session_id();
    
    if (isset($_SESSION['fatto']) .... ecc
    e vedi se l'id di sessione e' sempre lo stesso facendo dei refresh della pagina. Se cambia e' perche' non regge la sessione. Ovviamente non devi chiudere il browser.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.