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 :

La fonction header


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Points : 305
    Points
    305
    Par défaut La fonction header
    Salut à tous,

    Pourriez-vous m'aidez à comprendre précisément le fonctionnement de la fonction header() en PHP.

    Ok c'est une en-tête HTML mais est ce que cela veux dire qu'il y a redirection du code ?

    Si je fait un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('location: ./login.php'.$req);
    Est ce que mon script après ce code sera traité ou est ce que mon script va continuer dans le fichier login.php ?


    Merci de votre éclairage.

  2. #2
    Membre actif Avatar de brachior
    Homme Profil pro
    Doctorant
    Inscrit en
    Mai 2011
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 190
    Points : 293
    Points
    293
    Par défaut
    Non, le script après cette instruction ne sera pas traité, de plus, le script avant ne doit pas écrire ...

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Points : 305
    Points
    305
    Par défaut
    C'est donc bien un renvoi vers un nouveau script ou nouvelle page web ?

  4. #4
    Membre actif Avatar de brachior
    Homme Profil pro
    Doctorant
    Inscrit en
    Mai 2011
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 190
    Points : 293
    Points
    293
    Par défaut
    Oui ...
    Enfin, c'est le cas pour l'entête location ...
    Pour les autres, il faut se renseigner ^^ Manuel

  5. #5
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Salut,

    Citation Envoyé par miltone Voir le message
    Ok c'est une en-tête HTML mais est ce que cela veux dire qu'il y a redirection du code ?
    D'abord ce n'est pas une entête HTML mais plutôt HTTP(voir le RFC 2616 http://www.w3.org/Protocols/rfc2616/....html#sec14.30 ), cet entête dis au client (généralement un navigateur) d'aller sur l'adresse indiquée. Le client peut ou ne pas suivre l'adresse c'est pourquoi l'appel à header('Location: URI') est presque suivi d'un appel à la fonction die ou exit.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Points : 305
    Points
    305
    Par défaut
    On peut donc jouer sur le fait de pouvoir envoyer une en-tête HTTP sans redirection de page et créer soit même la page plus bas dans le même script.

    Maintenant il est tout à fait possible et plus utile de fournir une redirection de page HTTP tout en déclarant une en-tête. D'ou l'instruction location.

  7. #7
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Citation Envoyé par miltone Voir le message
    On peut donc jouer sur le fait de pouvoir envoyer une en-tête HTTP sans redirection de page et créer soit même la page plus bas dans le même script.
    +1 Oui, PHP, le serveur envoient certaines entêtes pour nous(Content-Type est le splus courant), si tu veux tu peux les surcharger en envoyant tes propres entête avec la fonction header.

    Amuses toi bien

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

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 887
    Points : 16 320
    Points
    16 320
    Par défaut
    Citation Envoyé par brachior Voir le message
    Non, le script après cette instruction ne sera pas traité, de plus, le script avant ne doit pas écrire ...
    Et pourtant si. Si tu veux que le contenu en-dessous du header() ne soit pas exécuté, il faut mettre die() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // Plein de traitement PHP
    // [...]
     
    header( 'location: /redirection.php' );
     
    mail( 'xxxx@xxxx.fr', 'Sujet', 'Verbe' );
    // Mail envoyé

  9. #9
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Points : 305
    Points
    305
    Par défaut
    Et pourtant si. Si tu veux que le contenu en-dessous du header() ne soit pas exécuté, il faut mettre die() :
    OK. Mon code contient un exit() après justement.
    Je pense que cela est aussi valable pour ne pas faire continué le script.

  10. #10
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Citation Envoyé par miltone Voir le message
    Je pense que cela est aussi valable pour ne pas faire continué le script.
    et oui.

  11. #11
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Points : 305
    Points
    305
    Par défaut
    Merci à tous de votre aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP-JS] La fonction header()
    Par davinout dans le forum Langage
    Réponses: 16
    Dernier message: 16/05/2006, 07h43
  2. php5: difficulté avec la fonction header
    Par koueletbak dans le forum Langage
    Réponses: 2
    Dernier message: 02/05/2006, 19h44
  3. Comment utiliser la fonction Header(Location..)
    Par arti2004 dans le forum Langage
    Réponses: 3
    Dernier message: 10/04/2006, 17h42
  4. Pb de redirect avec fonction header
    Par adlaf dans le forum Langage
    Réponses: 4
    Dernier message: 20/02/2006, 15h25
  5. [Dates] Problème avec la fonction header
    Par d.w.d dans le forum Langage
    Réponses: 2
    Dernier message: 06/09/2005, 16h33

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