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
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
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.
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??
Come si vede sto facendo 'na mazza... Eccoti un esempio... ovviamente si puo' fare in altri modi... questo e' uno: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??
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...
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.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>
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.
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.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'è??!![]()
Forse hai i cookie disabilitati e si apre una nuova sessione...
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
...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.![]()
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.
...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>
Prova a mettere dopo session_start() un echo...
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.codice:<?php session_start(); echo session_id(); if (isset($_SESSION['fatto']) .... ecc
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.