de la fenêtre.emplacement (JS) vs header() (PHP) pour la redirection
à l'aide de JS : (en <head>
tag)
<script>window.location="https://stackoverflow.com";</script>
à l'aide de PHP : (en <head>
tag)
header('Location: https://stackoverflow.com');
end();
Laquelle je devrais utiliser ? ou d'une autre ?
et que sur l'utilisation de <meta>
?
<meta http-equiv="refresh" content="0;url=https://stackoverflow.com"/>
Beaucoup de bonnes réponses , je ne sais pas quelle réponse je vais accepter, Merci beaucoup
Javascript redirige lorsque le document est chargé, PHP redirige lorsque PHP commence l'analyse du code PHP .htaccess (pour les serveurs Apache) redirige dès que la demande vient. Le plus tôt vous rediriger le mieux, et n'oubliez pas d'envoyer le bon code (301 ou 302...).
qu'en est
Éviter la balise meta refresh comme de la peste.
Ce aoid la balise meta refresh ? @adeneo
Sauf si vous exécutez un site de news ou quelque chose de similaire qu'avec l'auto-actualisation tous les cinq minutes, éviter de meta refresh,
qu'en est
<meta>
? @adeneoÉviter la balise meta refresh comme de la peste.
Ce aoid la balise meta refresh ? @adeneo
Sauf si vous exécutez un site de news ou quelque chose de similaire qu'avec l'auto-actualisation tous les cinq minutes, éviter de meta refresh,
OriginalL'auteur l2aelba | 2013-03-27
Vous devez vous connecter pour publier un commentaire.
Le résultat est le même pour toutes les options. Rediriger.
<meta>
en HTML:window.location
en JS:if (1 === 1) { window.location.href = 'http://example.com'; }
.header('Location:')
en PHP:header()
doit être la première commande dans un script php, avant la sortie de n'importe quel autre. Si vous essayez de sortie un peu avant d'en-tête, va recevoir unWarning: Cannot modify header information - headers already sent
OriginalL'auteur Damonsson
Une meilleure façon de définir l'emplacement dans le JS est par le biais de:
Si l'utilisation de PHP ou JS pour gérer la redirection dépend de ce que votre code est en train de faire et comment. Mais si vous êtes dans une position d'utiliser le PHP, c'est, si vous allez être à l'aide de PHP pour envoyer de code JS au navigateur qui indique simplement le navigateur pour aller quelque part d'autre, la logique suggère que vous devriez couper l'homme du milieu et de dire au navigateur directement via PHP.
OriginalL'auteur Wintermute
Cela dépend de quand et comment vous souhaitez rediriger l'utilisateur vers une autre page.
Si vous voulez instantanément rediriger un utilisateur vers une autre page sans lui, de voir autre chose que d'un site entre les deux, vous devez utiliser le PHP
header
méthode de redirection.Si vous avez un Javascript et une action de l'utilisateur a le résultat en lui entrant dans une autre page, c'est quand vous devez utiliser
window.location
.La
meta
balise d'actualisation est souvent utilisé sur les sites de téléchargement à chaque fois que vous voyez ces "Votre téléchargement devrait commencer automatiquement les messages". Vous pouvez permettre à l'utilisateur de charger une page, attendre un certain laps de temps, puis rediriger (par exemple, à un à-être-fichier téléchargé) sans Javascript.OriginalL'auteur Butt4cak3
PHP les redirections sont mieux si vous pouvez, comme avec le JavaScript un vous êtes à l'origine de la client à charger la page avant la redirection, alors qu'avec le PHP de un elle envoie le bon d'en-tête.
Cependant, le PHP ne devrait pas aller dans le <head>, il faut aller de l'avant toute sortie est envoyé au client, que faire sinon vous allez provoquer des erreurs.
À l'aide de <meta> balises ont le même problème que le Javascript dans le déclenchement de la première page à charger avant de faire la redirection. Côté serveur redirige sont presque toujours mieux, si vous pouvez les utiliser.
<head>
et je l'aideend();
(PHP) après queVraiment, vous devriez en faire autant de votre PHP de travail que possible avant l'envoi de toute sortie vers le navigateur. Si vous essayez de faire des trucs qui implique des en-têtes (comme les redirections) après l'envoi de la sortie alors qu'il va provoquer un "ne peut pas modifier les informations d'en-tête" erreur.
OriginalL'auteur krisnoble
Le premier cas, échoue si le JS est désactivé. C'est aussi un peu plus lent depuis le JS doit être analysé tout d'abord (DOM doit être chargé). Cependant JS est plus sûr depuis la destination ne connaît pas le referer et votre redirection de suivi (référents ne sont pas fiables en général, pourtant c'est quelque chose).
Vous pouvez également utiliser meta refresh tag. Elle nécessite également des DOM à être chargé.
OriginalL'auteur oleq