j'ai déjà eu ce problème et je l'ai réglé de la manière suivante:
page 1 :
- formulaire + saisie des données par l'utilisateur
- déclaration d'une variable de session par ex
$_SESSION['autorise_query'] = TRUE
page 2 :
- réception des données du formulaire
- test sur $_SESSION['autorise_query']
si $_SESSION['autorise_query'] == TRUE on execute le SQL ET ENSUITE on met la variable à FALSE
si $_SESSION['autorise_query'] == FALSE c'est que la page a déjà été appelée précédement
if($_SESSION['autorise_query'] )
{
// requetes SQL ....
$_SESSION['autorise_query'] = FALSE ;
}
else
{
// message utilisateur du style vos données ont déjà été prises en compte
// retourner page accueil (ou autre) en cliquant sur ce lien
}
comme çà même si on rappelle la page avec F5 les instructions SQL ne sont pas exécutées à nouveau
et ca évite de faire une redirection
voilà si ca peut t'être utile ...
