Rediriger un utilisateur après l'envoi des en-têtes
Je comprends que tant que les données n'a été envoyée pour le navigateur, puis les en-têtes ne peuvent pas être modifiés.
Est-il de toute façon (à l'aide de PHP) que je peux effectuer une redirection vers un utilisateur vers une autre page (évidemment pas en utilisant les en-têtes)
Si oui, pourriez-vous svp m'indiquer la documentation?
source d'informationauteur GaryDevenay
Vous devez vous connecter pour publier un commentaire.
Décidé d'écrire mon propre fonction php qui met en place une redirection javascript. Voir le code ci-dessous.
Vous pouvez utiliser Javascript ou une balise Meta. Mais si vous ne voulez pas corriger votre code pour afficher la sortie après le traitement, puis il suffit de tourner sur
output_buffering
dans le .htaccess pour le site.php_flag output_buffering on
Ou celui-ci (désolé ne me souviens plus qui):
php_value output_buffering 1
Est ce que vous mettez dans votre .fichier htaccess pour activer que sur. Il permettra redirige même si vous sortez des trucs pendant le traitement. C'est parce que la mémoire tampon de sortie économise de la mémoire tampon à la fin, donc aucune donnée n'est envoyée avant.
Je suppose que le tampon de sortie n'est pas une option, car vous mentionnez que les données ont été envoyées. Utiliser les meta des redirections ou de sortie JavaScript qui s'occupe de cela.
Le premier pourrait être mis en œuvre par adjonction, à la
<head>
sectionPour ce dernier, d'écrire quelque chose comme ce qui suit pourrait vous aider:
Remplacer http://example.com/ avec votre URL de destination. A noter que ce dernier pourrait être plus wieldly à mettre en œuvre si des données ont bien été envoyées.
Une mise en garde: ces Deux méthodes peuvent être bloqués au niveau du client, mais techniquement, les redirections 301 et 302.
Peut-être vous pouvez utiliser le tampon de sortie avant de prendre une décision pour rediriger la page.
À mon humble avis, sinon il y a seulement de la manière d'utiliser les balises HTML meta rediriger ou de redirection JavaScript.
C'est la fonction php que j'utilise pour la redirection. Si les en-têtes havent été envoyé, utilise "de l'en-tête(emplacement)", sinon, utilise la fonction javascript.
Dans mon cas a travaillé
ob_start
Javascript solution semble donc.. étrange
PHP doe offre pas de toute autre manière, aussi loin que je me souvienne (limitation du protocole http), mais vous pouvez le faire avec du javascript, mais c'est un processus complètement différent : avec js, c'est le contenu de la page qui indique au navigateur d'effectuer une redirection, pas sur le serveur.