Resumen de varias cuestiones a las que se debe prestar atención al utilizar el encabezado PHP para saltos de página
Autor:Eve Cole
Fecha de actualización:2009-06-05 16:25:10
Cuando utilice el encabezado ("ubicación: prueba.php") para saltar en PHP, debe prestar atención a los siguientes puntos, que ayudarán a resolver algunos problemas que los principiantes encuentran a menudo.
1. No puede haber un espacio entre la ubicación y ":", de lo contrario se producirá un error.
2. No puede haber ninguna salida antes de usar el encabezado.
3. También se ejecutará el código PHP después del encabezado.
La siguiente es una comparación con la redirección Response.redirect en ASP:
Ejemplo 1:
respuesta.redirect "../prueba.asp"
encabezado("ubicación:../test.php");
La diferencia entre los dos:
La función de redireccionamiento de ASP puede funcionar después de enviar el archivo de encabezado al cliente.
como
<html><cabeza></cabeza><cuerpo>
<%respuesta.redirect "../test.asp"%>
</cuerpo></html>
Compruebe si el siguiente código en php informará un error:
<html><cabeza></cabeza><cuerpo>
<?
encabezado("ubicación:../test.php");
?>
</cuerpo></html>
Esta es la única manera:
<?
encabezado("ubicación:../test.php");
?>
<html><cabeza></cabeza><cuerpo>...</cuerpo></html>
Es decir, la función de encabezado no puede enviar ningún dato al cliente antes.
Ejemplo 2:
en áspid
<html><cabeza></cabeza><cuerpo>
<%
respuesta.redirect "../a.asp"
respuesta.redirect "../b.asp"
%>
</cuerpo></html>
El resultado es una redirección del archivo a.asp.
¿Qué pasa con php?
<?
encabezado("ubicación:../a.php");
encabezado("ubicación:../b.php");
?>
<html><cabeza></cabeza><cuerpo></cuerpo></html>
Descubrimos que redirige b.php.
Resulta que después de ejecutar la redirección en ASP, el código posterior no se ejecutará.
Después de que php ejecuta el encabezado, continúa ejecutando el siguiente código.
En este sentido, la redirección de encabezados en php no es tan buena como la redirección en asp. A veces no podemos ejecutar el siguiente código después de la redirección:
Generalmente usamos
si(...)
encabezamiento("...");
demás
{
...
}
Pero simplemente podemos usar el siguiente método:
si(...)
{ encabezado("...");salir();}
También tenga en cuenta que pueden surgir problemas si se utiliza Unicode (UTF-8) para codificar y es necesario ajustar la configuración de la caché.
<[correo electrónico=%@]%@LANGUAGE="VBSCRIPT[/correo electrónico]" CODEPAGE="936"%>
<%if Request.ServerVariables("SERVER_NAME")="s.jb51.net" entonces
respuesta.redirect "noticias/index.htm"
otro%>
<%finalizar si%>
<guión>
var url = ubicación.href;
if(url.indexOf('http://www.devdao.com/')!=-1)location.href='/index/index.htm';
if(url.indexOf('http://www.knowsky.com/')!=-1)ubicación.href='/index1/index.htm';
if(url.indexOf('http://www.google.com/')!=-1)ubicación.href='/cn/index.asp';
if(url.indexOf('http://www.baidu.com/')!=-1)location.href='/cn/index.asp';
</script>