Maison  >  Article  >  développement back-end  >  Quelles sont les précautions à prendre pour utiliser PHP Header pour accéder aux pages ?

Quelles sont les précautions à prendre pour utiliser PHP Header pour accéder aux pages ?

coldplay.xixi
coldplay.xixioriginal
2020-08-10 13:42:261884parcourir

Remarques sur l'utilisation de PHP Header pour les sauts de page : 1. Il ne peut pas y avoir d'espace entre l'emplacement et [:], sinon une erreur se produira ; 2. Il ne peut y avoir de sortie avant d'utiliser l'en-tête ; l'en-tête Le code PHP sera également exécuté.

Quelles sont les précautions à prendre pour utiliser PHP Header pour accéder aux pages ?

Notes sur l'en-tête PHP pour les sauts de page :

Ce qui suit est identique à la redirection en aspresponse.redirect Comparaison :

Exemple 1 :

response.redirect "../test.asp"
header("location:../test.php");

La différence entre les deux :

la fonction redirect d'asp peut être utilisée après l'envoi du fichier d'en-tête à le client Cela fonctionne.

Par exemple,

<html><head></head><body>
<%response.redirect "../test.asp"%>
</body></html>

Si vous vérifiez l'exemple de code suivant en php, une erreur sera signalée :

<html><head></head><body>
<?
header("location:../test.php");
?>
</body></html>

Cela ne peut être fait que comme ceci :

<?
header("location:../test.php");
?>
<html><head></head><body>...</body></html>

Autrement dit, la fonction d'en-tête ne peut pas être utilisée avant d'envoyer des données au client.

Exemple 2 :

asp in

<html><head></head><body>
<%
response.redirect "../a.asp"
response.redirect "../b.asp"
%>
</body></html>

donne lieu à un fichier a.asp redirigé.

Et php ?

<?
header("location:../a.php");
header("location:../b.php");
?>
<html><head></head><body></body></html>

Nous avons constaté qu'il redirigeb.php.

Il s'avère qu'après avoir exécuté la redirection en asp, le code suivant ne sera pas exécuté.

Et php est Après avoir exécuté l'en-tête, continuez à exécuter le code suivant

À cet égard, la redirection d'en-tête dans. php n'est pas aussi bon que la redirection en asp. Parfois, nous ne pouvons pas exécuter le code suivant après la redirection :

Généralement, nous utilisons

if(...)
header("...");
else
{
...
}

mais nous pouvons simplement utiliser la méthode suivante :

if(...)
{ header("...");exit();}

Notez également qu'il apparaîtra également s'il est encodé avec Unicode (UTF-8). Problème, vous devez ajuster les paramètres du cache.

<[email=%@]%@LANGUAGE="VBSCRIPT[/email]" CODEPAGE="936"%>
<%if Request.ServerVariables("SERVER_NAME")="s.jb51.net" then
response.redirect "news/index.htm"
else%>
<%end if%>
<script>
var url = location.href;
if(url.indexOf(&#39;http://www.devdao.com/&#39;)!=-1)location.href=&#39;/index/index.htm&#39;;
if(url.indexOf(&#39;http://www.knowsky.com/&#39;)!=-1)location.href=&#39;/index1/index.htm&#39;;
if(url.indexOf(&#39;http://www.google.com/&#39;)!=-1)location.href=&#39;/cn/index.asp&#39;;
if(url.indexOf(&#39;http://www.baidu.com/&#39;)!=-1)location.href=&#39;/cn/index.asp&#39;;
</script>

Recommandations d'apprentissage associées : programmation php (vidéo)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn