Header ( Location:erreur.php ) avec paramètre

Fermé
Fred - 4 juin 2007 à 17:54
 Nadiq - 22 févr. 2016 à 13:03
est-ce possible de passer un paramètre lors de l'envoi de la commande header("Location:erreur.php" );

ainsi, je passe mon message d'erreur sur une page formatée.

Merci d'avance

Fred

12 réponses

croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
11 févr. 2008 à 10:42
Tu as imaginé une solution : l'as-tu essayée avant de poser ta question ?

La mise au point d'un scipt nécessite de faire un essai, d'analyser l'éventuelle erreur, de faire un nouvel essai....

Chaque essai étant imaginé à partir d'une bonne connaissance du langage de développement (ici php).

Un des contributeurs à ce forum ajoute à sa signature la maxime suivante :
La plus grosse erreur est de craindre de faire une errur.

Applique cette maxime et fait sans crainte des essais intelligemment conçus et tu constateras que tu mettre au point plus vite tes scripts.

Bon courage, c'est en forgeant qu'on devient forgeron.
7
fridaoumpapa
28 sept. 2011 à 17:54
Ah ! Les donneurs de leçons d'internet, les petits fonctionnaires zélés du web ... que ferions nous sans eux ... ^^.
0
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
10 févr. 2008 à 17:21
Bonjour,

Normal que ni l'un ni l'autre ne marche.
Esqsaye donc :
1. header( 'Location: member_mdp_envoye.php?mail=' . $mail);
2. header( "Location: member_mdp_envoye.php?mail=" . $mail);
3. ou bien header("Location: member_mdp_envoye.php?mail=$mail");

Le 1. demande à php de faire les opérations suivantes :
a-concaténer (= mettre bout-à-bout) ce qui est entre les guillemets simples avec le contenu de la variable $mail
b-passer la chaîne ainsi obtenue à la fonction header
Le 2. demande la même chose (guillemets simples remplacés par guillemets doubles)
Le 3. utilise une facilité offerte par PHP qui consiste à remplacer un nom de variable par son contenu lorsque ce nom de variable est trouvé entre des guillemets doubles (mais pas des guillemets simples !).

Personnellement, je me suis fixé la règle de ne pas utiliser cette "facilité" qui nuit à la clarté des scripts php et donc à leur maintenance.

Bon courage
7
Merci
0
Barracuda8 Messages postés 107 Date d'inscription vendredi 4 mai 2007 Statut Membre Dernière intervention 19 décembre 2011 65
4 juin 2007 à 18:05
Salut,

C'est possible, il suffit de rajouter un parametre à l'url.

$monErreur='marchePas'; //par exemple
Ex: header ( Location:erreur.php?erreur=$monErreur);

Maintenant dans ta page erreur.php tu récupère ton paramètre via
if(isset($_GET["erreur"]))
{
$erreur = $_GET["erreur"];
}

Ensuite il te suffit de renvoyer un echo de ton erreur en fonction de celle ci:
if($erreur=="marchePas")
{
echo "Ca ne marche pas...";
}
else{...}

En espérant t'avoir aidé un peu...
A+
4
J'ai modifié, fait des tests............. Et çà marche du feu de dieu...

Merci
0
Une petite question, je suis débitant en php et je vient de tomber sur ta réponse. le second if tu le place dans le premier if ou après le premier else ?
0
bibi675 Messages postés 387 Date d'inscription mardi 1 janvier 2008 Statut Membre Dernière intervention 30 décembre 2008 20
10 févr. 2008 à 11:44
$mail="toto";
header('Location: member_mdp_envoye.php?mail='.$mail); 

;-)
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bafra Messages postés 4 Date d'inscription dimanche 10 février 2008 Statut Membre Dernière intervention 11 février 2008
10 févr. 2008 à 11:16
c'est bizarre moi je fais ça mais il considére que la variable passé dans le header n'es pas une variable mais un nom fixe

mon ex :
$mail="toto"
header('Location: member_mdp_envoye.php?mail=$mail');

et bien quand je recupere la variable en get il me met $mail au lieu de toto

et la page s'affiche dans la barre des titres :.../member_mdp_envoye.php?&mail=$email

au lieu d'avoir ./member_mdp_envoye.php?&mail=toto

quelqu'un à-t-il une solution ?
0
bafra Messages postés 4 Date d'inscription dimanche 10 février 2008 Statut Membre Dernière intervention 11 février 2008
10 févr. 2008 à 15:37
tu veux dire

$mail="toto";
header('Location: member_mdp_envoye.php?mail=.$mail');

je suppose que tu avais mal plaçé la cote mais n i l'un ni l'autre ne marche ???
0
bibi675 Messages postés 387 Date d'inscription mardi 1 janvier 2008 Statut Membre Dernière intervention 30 décembre 2008 20
10 févr. 2008 à 18:33
Mon code est bon et je ne me suis pas trompé. Si ça marche ben je vois pas d'ou ça peut venir.
0
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
10 févr. 2008 à 19:06
Ton code indiqué dans ton message de15h37 :
$mail="toto";
header('Location: member_mdp_envoye.php?mail=.$mail');

n'est pas bon.

Fais-moi confiance, réfléchis et non seulement tu trouveras mais en plus tu acquieras un peu du savoir indispensable pour mettre au point un script.

Bon courage mais crois moi ça vaut le coup.
0
bafra Messages postés 4 Date d'inscription dimanche 10 février 2008 Statut Membre Dernière intervention 11 février 2008
10 févr. 2008 à 21:18
super merci les gars ça marche nickel

et pour la solution 1 vous avez tous les 2 raisons (j'avais du faire une fausse manip)
0
bafra Messages postés 4 Date d'inscription dimanche 10 février 2008 Statut Membre Dernière intervention 11 février 2008
11 févr. 2008 à 09:06
par contre j'ai encore une question : comment code-t-on le passage d'une 2ème variable avec la solution 1, donc sans uitiliser la solution 3 de facilité qui elle marche : header("Location: member_mdp_envoye.php?mail=$maili&nom=$nom");
0
bibi675 Messages postés 387 Date d'inscription mardi 1 janvier 2008 Statut Membre Dernière intervention 30 décembre 2008 20
11 févr. 2008 à 09:29
$nom = "toto";
$mail = "titi@toto.fr";
header("Location: member_mdp_envoye.php?mail=".$mail."&nom=".$nom);
0
bibi675 Messages postés 387 Date d'inscription mardi 1 janvier 2008 Statut Membre Dernière intervention 30 décembre 2008 20
12 févr. 2008 à 09:12
Ouaip, et je confirme. En PHP, je me défend (j'ai des bonnes bases quoi) et j'ai toujours fait comme ça. ;-)
0