IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Bonnes pratiques : un exit après un header("Location: URL") ?


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 178
    Par défaut Bonnes pratiques : un exit après un header("Location: URL") ?
    Bonjour,

    par curiosité, j'ai parcouru le manuel PHP, et je dois avouer que l'explication ci-dessous me laisse perplexe :

    Le deuxième type d'appel spécial est "Location:". Non seulement il renvoie un en-tête au client, mais, en plus, il envoie un statut REDIRECT (302) à Apache. Du point de vue de l'auteur de script, cela importe peu, mais pour ceux qui connaissent les rouages internes d'Apache, c'est primordial.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    header("Location: http://www.example.com/"); /* Redirection du navigateur */
     
    /* Assurez-vous que la suite du code ne soit pas exécutée une fois la redirection effectuée. */
    exit;
    ?>
    Si la redirection est opérée, comment la suite du code pourrait-elle exécutée ?

    Merci de votre aide !

    Rolf IV

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Comme la doc l'indique bien, avec un header Location tu rediriges le navigateur. Ce qui fait que la page chargée sur le serveur continue de s'exécuter après redirection du navigateur.

    Autre exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Redirige vers 2.html
    header( 'Location: http://www.google.fr/1.html' );
    header( 'Location: http://www.google.fr/2.html' );

  3. #3
    mon_nom_est_personne
    Invité(e)
    Par défaut
    c'est exactement ca et dans la meme famille quand tu loop et trouve la valeur dont tu as besoin toujours mettre un break.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    $var =0;
     
    for($i =0; $i < 200 ; $i++)
    {
      if($i = 1)
      {
        $var = $i;
        break;
      }
    }
    ?>
    si tu met pas un break ta boucle va loop 198X pour rien. C'est le meme avec les headers. tu peux faire un profilage de ton script avec xdebug tu vas voir il va te dire la meme chose

Discussions similaires

  1. Bonnes pratiques de protections individuelles
    Par Community Management dans le forum Sécurité
    Réponses: 23
    Dernier message: 11/06/2024, 11h23
  2. Header C++ ? Bonne pratique
    Par Sceener dans le forum C++
    Réponses: 7
    Dernier message: 20/07/2007, 13h53
  3. Réponses: 5
    Dernier message: 10/08/2006, 16h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo