Foros del Web » Programando para Internet » PHP »

Redireccionar una página

Estas en el tema de Redireccionar una página en el foro de PHP en Foros del Web. Hola a todos!! Bueno,no se si el título del tema se coresponde como mi duda,pero creo que sí. El tema es el siguiente:quiero hacer que ...
  #1 (permalink)  
Antiguo 07/12/2005, 12:41
 
Fecha de Ingreso: abril-2005
Mensajes: 287
Antigüedad: 12 años, 8 meses
Puntos: 0
Pregunta Redireccionar una página

Hola a todos!!

Bueno,no se si el título del tema se coresponde como mi duda,pero creo que sí.

El tema es el siguiente:quiero hacer que cuando se cumpla una condición(la de un if) aparezca algo en pantalla(por ejemplo,"Bienvendo Juan Sin Miedo")y e acto seguido se aparezca una pagina sin darle a ningún enlace ni nada).Lo que quiero hacer es lo que aparece en este foro,que al introducir el nick y la contraseña aparece algo así como:"Gracias por entrar de nuevo..." y después te redirecciona a la pagina del foro.

Gracias y saludos
  #2 (permalink)  
Antiguo 07/12/2005, 12:47
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 12 años, 2 meses
Puntos: 18
Para redireccionar utiliza la funcion header tal que así:
Código PHP:
header("Location: url");
exit; 
  #3 (permalink)  
Antiguo 07/12/2005, 13:04
 
Fecha de Ingreso: abril-2005
Mensajes: 287
Antigüedad: 12 años, 8 meses
Puntos: 0
Muchas gracias Jerkan, pero cómo puedo hacer para que antes de que me redireccione a la página que yo quiero me aparezca una intermedia con un mensaje(el que sea).(Quiero hacer lo mismo que se hace en este foro cuando te da la bienvenida al introducir la contraseña y el nick, y luego te redirecciona a la pagina de los temas)
  #4 (permalink)  
Antiguo 07/12/2005, 13:52
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 12 años, 2 meses
Puntos: 18
Pues si quieres que se espere unos segundos no sé (seguro que tiene solución), pero si no te importa simplemente redirecciona a un página intermedia en la que aparezca el mensaje que tu quieras y luego desde esa lo redireccionas a la que tu quieres. De puente a puente...
  #5 (permalink)  
Antiguo 07/12/2005, 14:10
 
Fecha de Ingreso: abril-2005
Mensajes: 287
Antigüedad: 12 años, 8 meses
Puntos: 0
He hecho lo que me has dicho,pero el texto de la pagina intermedia no me sale.Te presento lo que he hecho:

En una página tengo ésto:
Código PHP:
if(........)//No importa lo que vaya dentro del if
{
header("Location:redireccion.php");
exit(); 
y en la pagina "redireccion.php" tengo:
Código PHP:
echo "Ya está dado de alta<br>";
header("Location:inicio.php");//Esta es la página donde quiero que vaya despues de mostrar el mensaje
exit(); 
Donde puede estar el error??
  #6 (permalink)  
Antiguo 07/12/2005, 14:42
 
Fecha de Ingreso: febrero-2004
Ubicación: España. Madrid
Mensajes: 454
Antigüedad: 13 años, 9 meses
Puntos: 0
y si pruebas con tag´s html puros.. al menos para esa pagina intermedia...

algo así:

<HTML>
<HEAD>
<TITLE>Redireccionado con HTML</TITLE>
<META HTTP-EQUIV="Refresh" CONTENT="5; URL=/html/articulo/tw_redireccion2/">
</HEAD>
<BODY>
<P>Bla, bla, bla,...
</BODY>
</HTML>Al terminar el navegador de bajar la página de Internet, el navegador esperará el número de segundos indicado en la cifra situada dentro del atributo CONTENT, para posteriormente enviarte a la dirección indicada en ese mismo atributo, pero tras el punto y coma, la palabra clave URL y un símbolo de igual.

Personalizando la redirección
Esta técnica, la verdad, sólo tiene dos opciones de personalización: cambiar el lapso de tiempo que transcurre entre la carga de la página y la redirección y el cambio de la dirección que finalmente verá el usuario. Es frecuente, por ejemplo, indicar la carga de la misma página que estamos viendo; es así como funcionan muchas páginas del tipo de "retransmisiones en vivo"; se recargan a sí mismas cada cierto tiempo.

-----

El error que te da, es que creo que no puede hacer un header, si ya se ha escrito algo antes por pantalla.. en este caso ese echo que tienes

http://es2.php.net/manual/es/function.header.php
Recuerde que la función header() debe ser llamada antes de que cualquier salida sea enviada, ya sea mediante etiquetas HTML normales, líneas en blanco de un archivo, o desde PHP. Es un error bastante común interpretar código extra con include(), require(), o alguna otra función de acceso de archivos, y terminar con espacios o líneas en blanco que son impresas antes de un llamado a header(). El mismo problema existe cuando se usa un archivo PHP/HTML único.
  #7 (permalink)  
Antiguo 07/12/2005, 15:32
 
Fecha de Ingreso: abril-2005
Mensajes: 287
Antigüedad: 12 años, 8 meses
Puntos: 0
Muchísimas gracias Cyborg!!

He probado lo que me has puesto y me funciona "al pelo".

Gracias
  #8 (permalink)  
Antiguo 07/12/2005, 17:53
Avatar de OlaIsa  
Fecha de Ingreso: diciembre-2005
Mensajes: 105
Antigüedad: 12 años
Puntos: 0
Pregunta Ayuda con HEADER !!!

En la página que estoy haciendo utilizo "header", pero lo estraño que pasa es que no me puede redireccionar a una página .php, solo cuando cambio la extension a .html funciona, no se ha que se deba, si es algo de la configuración,el codigo que tengo es el siguiente.
Es sobre sobre autenticación de usuario, este codigo verifica si tiene permiso o no, y luego manda un error, ó deberia de mandar a la pagina "protegida".

Código PHP:
if(mysql_num_rows($rs_usuarios)!=0){
   if(
$usuario=="Admon"){
      
//entramos a la cuenta del administrador
      
session_start();
      
session_register("autentificado");
      
$autentificado="SI";
      
header("Location:admon.php"); // [COLOR="Red"]ESTO NO FUNCIONA, me deja en la misma página[/COLOR]      }
   
else{
      
//usuario y contraseña válidos
      //entramos a la cuenta de usuarios
      
session_start();
      
session_register("autentificado");
      
$autentificado="SI";
      
header("Location:user.php");// ESto TAMPOCO      
      
}
}      
else{
   
header("Location:index.php?errorusuario=si[COLOR="red"]");//Extrañamente, esto si..me regresa a la pagina y me dice que la contraseña es incorrecta[/COLOR]
}
?> 
Les agradecería mucho me ayudaran...
  #9 (permalink)  
Antiguo 08/12/2005, 06:40
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
lo estraño que pasa es que no me puede redireccionar a una página .php, solo cuando cambio la extension a .html funciona
confirmame eso... va a mi cajón derarzas . dices que... si haces: header("Location: archivo.php") no funciona, pero si en cambio tienes header("Location: archivo.html") sí??? ... ... pero entonces...
Código PHP:
 header("Location:index.php?errorusuario=si"); //Extrañamente, esto si..me regresa a la pagina y me dice que la contraseña es incorrecta 
... tiene la extención .php... .

Al código no me veo errores, salvo el uso de session_register() que es obsoleto, en su lugar debieses de usar la variable super global $_SESSION; leelo en la propia documentación, consulta las FAQ sobre el manejo de sesiones.

Así pués.. no sé ve error con el header (se te recominda igual hacer un exit() en la línea siguiente a cada uno), sería bueno explicaras mejor el comportamiento... comprueba por separado las condiciones se sumplan, usa echo()'s temporalmente .

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #10 (permalink)  
Antiguo 08/12/2005, 07:07
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 12 años, 8 meses
Puntos: 17
Según la descripción que hacés de las páginas, me imagino que tanto admon.php como user.php verifican que el usuario esté logueado y sino es así te envían a error.php (corrigeme si me equívoco... me ha pasado varias veces =P)

Por lo tanto, creo que el header anda bien, el problema es la session que Jam te dijo como solucionarlo
  #11 (permalink)  
Antiguo 08/12/2005, 09:30
Avatar de OlaIsa  
Fecha de Ingreso: diciembre-2005
Mensajes: 105
Antigüedad: 12 años
Puntos: 0
Hay muchas gracias por contestarme....

Y si ...cuando cambio la extension del archivo a .html me redirecciona la pagina perectamente. Voy a explicar un poquito mejor el funcionamiento:
Tengo una página index.php que es donde se pide el usuario y la contraseña, al momento de enviar el formulario se manda a este codigo(El que publique), que hace la verificacion del usuario...si el usuario es correcto me manda ya sea a user ó admon (dependiendo del usuario), en cambio si el usuario es incorrecto me regresa a la pagina (En donde tengo el formulario) para volver a teclear nuevamente(el usuario y contraseña).

Todo esto funciona correctamente y las condiciones si se cumplen, lo unico es que no redirecciona a las paginas .php

Las paginas user y admon solo son a las que se tienen acceso, y cada una de ellas tiene un archivo de seguridad, que verifica si el usuario paso por la pagina de autentificación.

Hay espero haberme explicado bien, soy principiante en PHP asi que no se mucho....gracias por su ayuda.

Nota: voy a checar sobre el manejo de sesiones
  #12 (permalink)  
Antiguo 08/12/2005, 23:41
 
Fecha de Ingreso: noviembre-2005
Ubicación: Córdoba - Argentina
Mensajes: 155
Antigüedad: 12 años, 1 mes
Puntos: 1
No estoy seguro si te dara error por esto, pero fijate en el if que verifica que sea igual a Admon no cerraste el if con una }
Suerte!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:57.