Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/08/2011, 16h14   #1
Membre régulier
 
Homme
Développeur informatique
Inscription : mai 2007
Messages : 431
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 : 431
Points : 93
Points : 93
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 :
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.
miltone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 16h28   #2
Membre éclairé
 
Avatar de brachior
 
Homme Jérôme Pilliet
Étudiant
Inscription : mai 2011
Messages : 190
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Pilliet
Âge : 25
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 190
Points : 305
Points : 305
Non, le script après cette instruction ne sera pas traité, de plus, le script avant ne doit pas écrire ...
brachior est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 03/08/2011, 17h05   #3
Membre régulier
 
Homme
Développeur informatique
Inscription : mai 2007
Messages : 431
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 : 431
Points : 93
Points : 93
C'est donc bien un renvoi vers un nouveau script ou nouvelle page web ?
miltone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 17h17   #4
Membre éclairé
 
Avatar de brachior
 
Homme Jérôme Pilliet
Étudiant
Inscription : mai 2011
Messages : 190
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Pilliet
Âge : 25
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 190
Points : 305
Points : 305
Oui ...
Enfin, c'est le cas pour l'entête location ...
Pour les autres, il faut se renseigner ^^ Manuel
brachior est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 04/08/2011, 20h28   #5
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
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.
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/08/2011, 20h45   #6
Membre régulier
 
Homme
Développeur informatique
Inscription : mai 2007
Messages : 431
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 : 431
Points : 93
Points : 93
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.
miltone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 20h52   #7
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
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
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/08/2011, 09h05   #8
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
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 :
1
2
3
4
5
6
7
// Plein de traitement PHP
// [...]
 
header( 'location: /redirection.php' );
 
mail( 'xxxx@xxxx.fr', 'Sujet', 'Verbe' );
// Mail envoyé
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 05/08/2011, 15h05   #9
Membre régulier
 
Homme
Développeur informatique
Inscription : mai 2007
Messages : 431
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 : 431
Points : 93
Points : 93
Citation:
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.
miltone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 15h20   #10
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
Citation:
Envoyé par miltone Voir le message
Je pense que cela est aussi valable pour ne pas faire continué le script.
et oui.
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/08/2011, 15h23   #11
Membre régulier
 
Homme
Développeur informatique
Inscription : mai 2007
Messages : 431
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 : 431
Points : 93
Points : 93
Merci à tous de votre aide !
miltone est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h30.


 
 
 
 
Partenaires

Hébergement Web