Problema query e ricaricamento pagina

emanuelevt

Utente Attivo
24 Giu 2009
298
0
0
Salve ragazzi; vorrei sapere come posso evitare che nel ricaricare una pagina rivenga eseguita la query... cioè ad esempio:

$sql=mysql_query("insert into '$tabella' set testo='$testo'.....);

ma una volta inserito se l'utente spinge inavvertitamente F5 oppure riaggiorna la pagina i dati rivengono inseriti : come si può evitare questo problema?


Grazie!
 
Potresti usare le sessioni, in questo modo:
PHP:
<?php
if(!isset($_SESSION['execQuery']))
{
    // codice SQL della query
    $_SESSION['execQuery'] = true;
}
?>
Ricordati che all'inizio del file devi però chiamare la funzione session_start, prima di ogni altra cosa.

E poi la sintassi della tua query SQL non è valida. INSERT funziona così:
Codice:
INSERT INTO tabella (campo1, campo2, campo3) VALUES ('valore1', 'valore2', 'valore3')
 
Grazie dell'interesse Alessandro, ma così però dovrei associare una sessione ad ogni query ... non si può fare in un altro modo?
Codice:
//Questo modo 

[COLOR="blue"]INSERT INTO [/COLOR][COLOR="red"]nome_tabella[/COLOR] [COLOR="blue"]SET [/COLOR][COLOR="red"]colonna0=valore0, colonna1=valore1...[/COLOR]

//o questo

[COLOR="blue"]INSERT INTO [/COLOR][COLOR="red"]tabella (campo1, campo2, campo3)[/COLOR] [COLOR="blue"]VALUES [/COLOR][COLOR="red"]('valore1', 'valore2', 'valore3')[/COLOR]

//sono entrambi validi, anche se il primo è raramente utilizzato
 
Ultima modifica:
L'unico altro modo che mi viene in mente è usare una tabella nel database, ma è una soluzione poco ortodossa, e così per ogni query ce ne sarebbe un'altra. Credo che l'idea delle sessioni sia la migliore. Potresti creare un'unica sessione contenente un array, con ogni elemento che rappresenta una query. Non dovrebbe essere per niente difficile.

P.S. Perdonami per la query SQL. Non avevo mai visto quella sintassi prima d'ora ;)
 
Scusami se rispondo solamente ora, (ma mi sto impegnando per il login) - ancora non ho provato ad inserire la query attivando così una sessione - però a prima vista mi viene in mente che chiunque abbia inviato una query non può inviare una seconda query (ad esempio se l'utente vuole inserire due volte un determinato dato) poiché la sessione è già stata attivata.

p.s. 0 : Ho molte più cose da farmi perdonare 0:)
p.s. 1: da qualche parte avevo letto un modo più semplice per fare in modo di non aver problemi con query e refresh - se ritrovo il libro posto tutto.

ciao
 

Discussioni simili