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

coldplay.xixi
Libérer: 2023-03-04 08:34:01
original
1939 Les gens l'ont consulté

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");
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

Cela ne peut être fait que comme ceci :

<?
header("location:../test.php");
?>
<html><head></head><body>...</body></html>
Copier après la connexion

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>
Copier après la connexion

donne lieu à un fichier a.asp redirigé.

Et php ?

<?
header("location:../a.php");
header("location:../b.php");
?>
<html><head></head><body></body></html>
Copier après la connexion

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
{
...
}
Copier après la connexion

mais nous pouvons simplement utiliser la méthode suivante :

if(...)
{ header("...");exit();}
Copier après la connexion

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>
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal