Maison  >  Article  >  développement back-end  >  Résumé des précautions de saut de page php header('location: $url')

Résumé des précautions de saut de page php header('location: $url')

伊谢尔伦
伊谢尔伦original
2017-06-23 14:06:337459parcourir

Lorsque vous utilisez header("location:test.php") pour vous lancer dans PHP, veuillez faire attention aux points suivants, qui aideront à résoudre certains problèmes que les novices rencontrent souvent

1. Il ne peut pas y avoir d'espace entre location et ":", sinon une erreur se produira.

2. Il ne peut y avoir de sortie avant d'utiliser l'en-tête.

3. Le code PHP après l'en-tête sera également exécuté.

Ce qui suit est une comparaison avec la redirection réponse.redirect dans asp :

Exemple 1 :

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

La différence entre les deux :

La fonction de redirection d'ASP peut fonctionner après l'envoi du fichier d'en-tête au client

Par exemple,

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

, si vous vérifiez ce qui suit. exemple de code en PHP, une erreur sera signalée :

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

Cela ne peut être fait que comme ceci :

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

C'est-à-dire qu'aucune donnée ne peut être envoyée au client avant le fonction d'en-tête.

Exemple 2 :

asp

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

s'avère rediriger un fichier.asp

php?

<?php
header("location:../a.php");
header("location:../b.php");
?>
<html>
<head>
</head>
<body>
</body>
</html>
Nous avons constaté qu'il redirige b.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 continuera à exécuter le code suivant après l'exécution de l'en-tête.

À cet égard, l'en-tête en 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 que des problèmes surviendront si vous utilisez l'encodage Unicode (UTF-8), et que vous avez besoin pour ajuster les paramètres du

cache.

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