PHP Utilisation header location avec replace [Résolu/Fermé]

Signaler
Messages postés
584
Date d'inscription
mardi 16 mars 2004
Statut
Membre
Dernière intervention
25 mai 2019
-
Messages postés
63
Date d'inscription
mardi 3 juillet 2012
Statut
Membre
Dernière intervention
31 août 2012
-
Bonjour,
Bien souvent, les pages PHP (ou même HTML) doivent s'enchaîner automatiquement.
Pour cela, il existe diverses possibilités : le code Action au sein d'un formulaire,
La fonction header() avec son paramètre location qui placée en tête du programme peut rediriger vers une autre page...
Problème, cette redirection est difficilement conditionnelle et pour preuve j'ai même lu que cette fonction (en tête de module) devait de préférence être suivie d'un Exit !
Pourtant, j'ai cru comprendre qu'il existait un second paramètre possible :
Le paramètre optionnel replace indique si la fonction header() doit remplacer un en-tête précédemment émis, ou bien ajouter un autre en-tête du même type. Par défaut, un nouvel en-tête va écraser le précédent, mais si vous passez FALSE dans cet argument, vous pouvez forcer les en-têtes multiples pour un même type d'en-tête.
L'usage avec False d'entêtes multiples dépasse ma compétence (bien limitée) mais le Replace simple qui peut être envoyé en décale semble bien se prêter à des déroulement de pages pour des cas particuliers de traitement (ou celui des erreurs).
Merci d'avance à qui aurait employé ce paramètre ou pourrait m'apporter des précisions sur ce fonctionnement.
@bientôt RJL2711


2 réponses

Messages postés
63
Date d'inscription
mardi 3 juillet 2012
Statut
Membre
Dernière intervention
31 août 2012
9
Bonjour,

je ne vois pas pourquoi la fonction header() ne serait pas conditionnel.

https://www.commentcamarche.net/faq/878-redirection-php-redirect-header

Si l'instruction doit impérativement être utilisée avant tout code HTML, il est néamoins possible de mettre du code php. Et mettre un exite ne rend pas ta condition invalide :
<?php 
if (testredirection) {
header('Location: mapage.php');
exit();
}
//Ton code a executer si testredirection == false...
?>

Cordialement
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 61394 internautes nous ont dit merci ce mois-ci

Messages postés
584
Date d'inscription
mardi 16 mars 2004
Statut
Membre
Dernière intervention
25 mai 2019
48
Bonjour julie-f ,
Merci de ta réponse et des précisions qu'elle m'apporte.
Toutes mes excuses de débutant en PHP (et pourtant, c'est un passage obligé...).
Il existait tant de mise en garde sur l'impossibilité de toute instruction HTML avant la redirection (y compris dans la page officielle OHP sur les redirections) qu'il ne m'en fallait pas plus pour que j'en sois traumatisé !
Merci donc de ce recadrage qui permet de travailler tranquille en PHP pour opérer tests et contrôles avant de poursuivre en HTML !
Inversement, j'ai bien noté, ni l'instruction HTML, elle-même, ni INCLUDE avant ces redirections.
Bonne fin de journée. RJL2711
Messages postés
63
Date d'inscription
mardi 3 juillet 2012
Statut
Membre
Dernière intervention
31 août 2012
9
C'est très bien résumé. Bon courage et bon apprentissage, on est tous passé par la ;)