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

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

12 réponses

  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.
    7
    1. Ah ! Les donneurs de leçons d'internet, les petits fonctionnaires zélés du web ... que ferions nous sans eux ... ^^.
      0
  2. 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
    1. Merci
      0
  3. 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
    1. J'ai modifié, fait des tests............. Et çà marche du feu de dieu...

      Merci
      0
    2. 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
  4. $mail="toto";
    header('Location: member_mdp_envoye.php?mail='.$mail); 

    ;-)
    3
    1. 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
      1. 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
        1. Mon code est bon et je ne me suis pas trompé. Si ça marche ben je vois pas d'ou ça peut venir.
          0
          1. 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
            1. 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
              1. 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
                1. $nom = "toto";
                  $mail = "titi@toto.fr";
                  header("Location: member_mdp_envoye.php?mail=".$mail."&nom=".$nom);
                  0
                  1. Ouaip, et je confirme. En PHP, je me défend (j'ai des bonnes bases quoi) et j'ai toujours fait comme ça. ;-)
                    0