Rechercher : dans
Par :

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

Dernière réponse le 12 fév 2008 à 09:12:25 Fred, le 4 jun 2007 à 17:54:22 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « header ( Location:erreur.php ) avec paramètre » dans :
[PHP] Headers already sent by..... VoirLorsque vous utilisez une fonction PHP qui manipule les en-têtes HTTP comme par exemple: header() setcookie() session_start() Il est important d'utiliser ces fonctions avant d'avoir généré le moindre flux vers le client. A partir du moment où...
Cacher les erreurs en PHP VoirRappelons avant toute chose, qu'il est toujours préférable, dans n'importe quel langage de programmation, de corriger les problèmes qui déclenchent les erreurs, avant d'essayer de masquer les erreurs. En effet, le fait de masquer les erreurs...
PHP - Administration d'un annuaire LDAP VoirIntroduction à LDAP PHP permet la connexion et l'envoi de requêtes sur un annuaire LDAP, c'est-à-dire un serveur permettant de stocker des informations de manière hiérarchique. Pour plus d'informations sur les fonctions LDAP de PHP, reportez...

1

Barracuda8, le 4 jun 2007 à 18:05:11

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+

Répondre à Barracuda8

2

Fred, le 4 jun 2007 à 18:23:29

J'ai modifié, fait des tests............. Et çà marche du feu de dieu...

Merci

Répondre à Fred

3

bafra, le 10 fév 2008 à 11:16:02

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 ?

Répondre à bafra

4

bibi675, le 10 fév 2008 à 11:44:29

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

;-)

Répondre à bibi675

5

bafra, le 10 fév 2008 à 15:37: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 ???

Répondre à bafra

6

croy, le 10 fév 2008 à 17:21:22

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

Répondre à croy

7

bibi675, le 10 fév 2008 à 18:33:53

Mon code est bon et je ne me suis pas trompé. Si ça marche ben je vois pas d'ou ça peut venir.

Répondre à bibi675

8

croy, le 10 fév 2008 à 19:06:25

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.

Répondre à croy

9

bafra, le 10 fév 2008 à 21:18:23

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)

Répondre à bafra

10

bafra, le 11 fév 2008 à 09:06:42

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");

Répondre à bafra

11

bibi675, le 11 fév 2008 à 09:29:44

$nom = "toto";
$mail = "titi@toto.fr";
header("Location: member_mdp_envoye.php?mail=".$mail."&nom=".$nom);

Répondre à bibi675

12

croy, le 11 fév 2008 à 10:42:30
  • +1

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.

Répondre à croy

13

 bibi675, le 12 fév 2008 à 09:12:25

Ouaip, et je confirme. En PHP, je me défend (j'ai des bonnes bases quoi) et j'ai toujours fait comme ça. ;-)

Répondre à bibi675