Interdire un reload sur une page avec variables ?

Répondre
nstu
le 16/10/2003 à 20:53
nstu
Salut,

aprés validation d'un formulaire, ma page merci.php3 dit merci à l'utilisateur et m'envoie un email avec les infos saisies.

Problème : comment éviter que l'utilisateur recharge n fois la page (ce qui m'envoie n emails...)

Merci pour l'aide parceque là je sèche...
i M@N
le 16/10/2003 à 21:29
i M@N
Hello !

Très simple ... tu rediriges le visiteur après le traitement de ton formulaire.

Pour cela il te faut 2 fichiers. Un fichier form.php et un fichier form_traitement.php.

// fichier form.php :

<html>
<body>
<!— on fait pointer le formulaire vers la page traitant les données -->
<form action="./form_traitement.php" method="post">

<b>Nom :</b>
<input type="text" name="nom" maxlength="20" size="20">

<b>email :</b>
<input type="text" name="email" maxlength="40" size="40">

<input type="submit" value="Poster" size="10">

</form>
</body>
</html>

// fichier form_traitement.php :

<?

if (isset($_POST['nom'])) $nom = $_POST['nom']; else $nom = "";
if (isset($_POST['email'])) $email = $_POST['email']; else $email = "";

// fonction nous permettant de faire des redirections

function redirection($url){
if (headers_sent()){
print('<meta http-equiv="refresh" content="0;URL='.$url.'">');
}
else {
header("Location: $url");
}
}

// on teste le contenu de la variable $nom

if ($nom=="") {
echo '<body onLoad="alert(\'Aucun nom de précisé...\')">';
redirection('./form.php');
exit;
}

// on teste le contenu de la variable $email

if ($email=="") {
echo '<body onLoad="alert(\'Aucun email de précisé...\')">';
redirection('./form.php');
exit;
}

// si tout est bon, on peut commencer l'insertion dans la base

else {

// lancement de la requête d'insertion

$sql = "INSERT INTO ta_table VALUES('$nom','$email')";

// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)

mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

// on ferme la connexion à la base de données

mysql_close();

// on redirige vers la page d'accueil du site (attention, cette redirection ne fonctionne qui si vous avez placé cette page dans un répertoire à partir de la racine du site). Si ce n'est pas le cas, veuillez entrer ici le bon chemin d'accès afin de retomber sur la page d'accueil du site.

redirection('./index.php');

// on termine le script courant

exit;
}

?>

Voilou, smiley

@+...
One Love, One Heart, One Unity.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours