Aller au menu - Aller au contenu

Éviter le renvoi répétitif d'un formulaire en rafraîchissant

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page Précédente  1  2  3 
Pseudo Commentaire
Page Précédente  1  2  3 
Hors ligne Sephi # Posté le 04/08/2010 à 08:59:33
sephi@sephi:~$rm -rf
Avatar

Avis : Très bon

Salut,
Merci à toi pour ce bon tuto qui marche du tonnerre je dois dire. Il est en effet très courant de rencontrer cette erreur.
Il est également indispensable d'éviter l'envoi multiple d'un même message en rafraichissant.

Bravo à toi et merci encore ;)
Sephi

Image utilisateur Si votre problème est résolu,
pensez à cliquer sur Résolu en bas de page et de signaler aux membres quelle réponse vous a aidé.
 
Hors ligne Timounkybou # Posté le 11/08/2010 à 15:56:36

Salut,

Merci Irnine94 pour ton tuto que je trouve très clair ! Quel bonheur de pouvoir actualiser la page sans avoir ce foutu message d’avertissement, je ne m’en lasse pas :D

Pour les têtes en l’air comme moi je précise qu’il ne faut vraiment rien mettre avant d’ouvrir la balise ‘<?php’ au tout début du code... même pas un tout petit saut de ligne ou un minuscule espace (j’imagine que c’est à cause de la fonction header(), Irnine nous a bien précisé qu’elle était allergique au code html et au texte qui la précède) ! J’ai perdu un peu de temps à cause de ça, alors si je peux éviter à d’autres d’en perdre bêtement...

Céline
Hors ligne fifi # Posté le 30/10/2010 à 11:05:34
Avatar

Ville : Bellegarde en forez
Pays : France métropolitaine

Cette méthode est un peu lourde je trouve... Si ca peut intéressé des personnes ou donner des idées, voici ma méthode: Je créé une fonction monMsg(), qui va prendre 2 arguments: Le lien de retour, puis le message. Cette fonction va mettre ces deux arguments dans une variable $_SESSION, puis redirige sur une page ou sera affiché le message puis le lien de retour.

Pas facile à explique, mais pour plus de détail voici un exemple

Secret (cliquez pour afficher)

1) Une page msg.php
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php

// Démarrage de la session
session_start();

// J'inclue la fonction monMsg ()
include_once ('monMsg.php')

// Le haut de page
include_once ('haut.php');


// Si il n'y a pas d'info sur le message, j'en met une par défaut.
if (empty ($_SESSION['afficherMessage']))
{
	$_SESSION['afficherMessage'] = 'Une erreur c\'est produite';
}

// Si il n'y a pas d'info sur le lien, j'en met une par défaut.
if (empty ($_SESSION['afficherLien']))
{
	$_SESSION['afficherLien'] = 'accueil.php';
}

echo '<p>' . $_SESSION['afficherMessage'] . '<a href="' . $_SESSION['afficherLien'] . '">Retour</a></p>';

include_once ('bas.php');
?>


2) Une fonction monMsg (dans monMsg.php');
Code : PHP
1
2
3
4
5
6
7
8
<?php
function monMsg ($lien, $message)
{
	$_SESSION['afficherLien'] = $lien;
	$_SESSION['afficherMessage'] = $message;
	header ('location: msg.php');
	exit(); // Selon le tuto c'est nécessaire après la fonction header()?
}


3) Ensuite n'importe ou quand je le souhaite
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<?php
// par exemple un membre se connecte
if (empty ($_POST['pseudo']) || empty ($_POST['mdp']))
{
	monMsg ('connection.php', 'Vous devez remplir les deux champs!');
}
else
{
	// Connection du membre ici
	// puis:
	
	monMsg ('monCompte.php', 'Vous êtes maintenant connecté');
}


Mais après, chaque méthode à des avantages et inconvénients.
 
Hors ligne monlou # Posté le 10/11/2010 à 06:03:21
Avatar

Ville : Montréal
Pays : Canada

ben alors moi j'ai un probleme lorsque on a des fichiers dans le $_FILES
a envoyer

j'obtiens un message d'erreur comme ceci


Warning: filesize() [function.filesize]: stat failed for C:\wamp\tmp\php1366.tmp in C:\wamp\

quelqu'un pourrait comprendre ce qui se passe ?
Hors ligne mickaelx4 # Posté le 17/11/2010 à 12:19:04
Avatar

j'ai le même problème j'ai creer un post pour ça:
http://www.siteduzero.com/forum-83-580 [...] -renvoie.html

http://Mangazone.xoo.it/
Le forum francophone de tous les mangas !!!
 
Hors ligne maxima # Posté le 19/12/2010 à 12:03:46
C’est pas faux.
Avatar

Études : Lycée du Parc - Lyon

Mettre en session un $_FILES, il faut le vouloir ...

Il y a quand même plus simple ..
Hors ligne Guenhwyvar # Posté le 23/12/2010 à 10:58:07
Avatar

Citation : monlou
ben alors moi j'ai un probleme lorsque on a des fichiers dans le $_FILES
a envoyer
j'obtiens un message d'erreur comme ceci
Warning: filesize() [function.filesize]: stat failed for C:\wamp\tmp\php1366.tmp in C:\wamp\
quelqu'un pourrait comprendre ce qui se passe ?

À vérifier, mais probablement parce que l'image aura été supprimée entre temps par PHP, quand il arrive au « exit(); » (fin de page, effacement des fichiers temporaires…)
Hors ligne mus14 # Posté le 13/01/2011 à 11:29:59

Études : IUT Toulouse 3

très bon tuto, mais il ne m'empêche pas d'éviter la réinsertion des champs de mon formulaire dans ma BD PHP/MYSQL. c'est pas normal n'est ce pas?

J'ai rien dit, je testez pas si il etait vide le champs POST et donc j'ajoutais des valeurs vides :D :-°
Hors ligne unter # Posté le 15/01/2011 à 18:04:08
c saké bon !
Avatar

Il existe une autre méthode beaucoup plus simple, c'est de créer une variable de session après avoir traité le formulaire (comme par exemple <?php $_SESSION['bAldreadySend'] = true;

Grâce à ça au début du traitement de la page, il suffit de faire une simple condition et de renvoyer une erreur si la variable de session existe

Pour la supprimer, il suffit de mettre en place un compteur (dans une variable de session lui aussi) qui contient le timestamp du moment où la variable a été créée et si la différence de temps est suffisante, alors on supprime les variables de session. (Cela dit je n'ai pas encore testé la suppression car pour le moment le seul formulaire que j'empêche de rafraichir avec ce moyen, c'est une inscription, qui nécessite ensuite une connexion, et donc une déconnexion est possible, avec elle la suppression de la variable, mais pour utiliser ce système dans la partie connectée, je pense que je ferais comme ce que je viens de décrire)
Hors ligne nagis # Posté le 01/02/2011 à 14:39:03

Sublime tuto et très utiles ^^
Hors ligne ichigo2707 # Posté le 15/02/2011 à 01:14:13
Avatar

Pour la partie ou on redirige sur la meme page, comment on fait lorsqu'on utilise de l'urlrewriting ? merci :)

If you can't explain it simply, you don't understand it well enough

Albert Einstein
 
Hors ligne alexis10 # Posté le 19/02/2011 à 13:01:05
Avatar

Bonjour,

J'ai pas tout lu, mais pour info, j'ai remarqué qu'il existait un PLAGIA du tuto sur un blog, que voici:
http://rjaibimejdi.com/?p=1

Le début est une copie intégrale du tutorial. Et le gars n'a même pas cité ses sources...

J'espère avoir contribuer aux droits d'auteur ^^

++
Pour accéder à cette section
Connectez-vous !
connexion_rpx