Foros del Web » Programando para Internet » PHP »

Redirigir a la página principal si aún no ha pasado por ella

Estas en el tema de Redirigir a la página principal si aún no ha pasado por ella en el foro de PHP en Foros del Web. Hola Tengo una pequeña página web con frames, y, como supongo que os sucederá a todos, cuando se encuentra alguna de mis páginas en un ...
  #1 (permalink)  
Antiguo 17/07/2003, 05:22
Avatar de javimartinez  
Fecha de Ingreso: marzo-2003
Ubicación: Leganés (Madrid)
Mensajes: 284
Antigüedad: 14 años, 8 meses
Puntos: 1
Pregunta Redirigir a la página principal si aún no ha pasado por ella

Hola

Tengo una pequeña página web con frames, y, como supongo que os sucederá a todos, cuando se encuentra alguna de mis páginas en un buscador no se muestran los frames, si no que únicamente se enseña la página encontrada por el buscador. Debido a ello me gustaría hacer que cuando un usuario llega a una página de mi web, si es la primera página que ve, sea mostrada la página principal en lugar de la página a la que ha llegado.

Esto se hacerlo en ASP (se pondría una variable de usuario y se podría controlar), pero donde tengo mi página solo permiten PHP, por ello, si pudierais decirme alguna web donde aparezca un ejemplo para realizar esto os estaría muy agradecidos, ya que no tengo ni idea de PHP, así que tendría que ser casi copiar y pegar.

Gracias y un saludo.
__________________
Javi Martínez

Web: Acertijolandia Blog: A Entretenerse
  #2 (permalink)  
Antiguo 17/07/2003, 05:31
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

¿Las variables de usuario de ASP son las variables de sesion? Porque es lo que me parece. Y PHP soporta sesiones. El unico problema es que si el buscador activa una sesion, puede que si visita algunas paginas una vez caducada la sesion se le redigira al indice (lo mismo puede pasar en ASP, creo).

Pero aun asi, no es necesario usar programacion de servidor para hacerlo. Puedes usar perfectamente javascript, mirando si el top es el mismo que la pagina actual (o algo asi). Te lo explicaran mejor en el foro de javascript. El unico inconveniente de este metodo es que no funciona si el usuario tiene javascript desactivado.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 17/07/2003, 06:02
Avatar de ||Dj||  
Fecha de Ingreso: enero-2002
Mensajes: 2.349
Antigüedad: 15 años, 10 meses
Puntos: 1
Hola, no se si comprendi bien pero porque simplemente no ves en $PHP_SELF cual es el caso, y lo redireccionas si es necesario?
Saludos.
  #4 (permalink)  
Antiguo 17/07/2003, 07:27
Avatar de javimartinez  
Fecha de Ingreso: marzo-2003
Ubicación: Leganés (Madrid)
Mensajes: 284
Antigüedad: 14 años, 8 meses
Puntos: 1
Hola Dj

El problema es que no tengo ni idea de PHP (no se lo que es el PHP_SELF) ni tengo ahora mismo tiempo para aprender :( , así que probaré con el javascript.

Gracias de todas formas :)

Un saludo
__________________
Javi Martínez

Web: Acertijolandia Blog: A Entretenerse
  #5 (permalink)  
Antiguo 17/07/2003, 11:44
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 15 años, 9 meses
Puntos: 54
Hola.
Me entretuve un rato e hice un script php para ello. Se hace con cookies: si el usuario no ha pasado por el indice, se le redirecciona a él y se le mete una cookie para decir "ya has visitado el indice, ahora eres libre de ir a cualquier lado".
Nota que será un poco molesto si p. ej. alguien pincha en el buscador y en vez de ir directamente al contenido, le tira al indice principal... eso tenlo en cuenta. De todas formas te dejo el script por si lo quieres usar:

archivo a.php
Código PHP:
<?
/********** EDITA AQUÍ TODO LO QUE QUIERAS **********/

/* URL a donde quieres redireccionar si no han pasado
por ella */
$url "http://www.tuservidor.com/index.php";

/* Duración de la cookie en segundos (al cabo de estos
segundos se borra la cookie y se volverá a ir al indice
si el usuario sigue en la web) */
$duracion 1800;

/********** NO TOCAR NADA A PARTIR DE AQUI **********/

$miurl="http://".$SERVER_NAME.$SCRIPT_NAME;

/* Si estamos en el indice de la web, ponemos una cookie
que nos dira que ya hemos visitado dicho indice */
if (!strcasecmp($url,$miurl)) {
    
setcookie("index",1,time()+$duracion);
}

/* Si no tenemos cookie, nos vamos al indice.
Si ya la tenemos, la renovamos */
if (!$_COOKIE['index']) {
    
header("Location: $url");
} else {
    
setcookie("index",1,time()+$duracion);
}
?>
Luego tus páginas en vez de llamarlas .HTM o .HTML tienes que llamarlas .PHP y en todas, al inicio del todo, pon esto:
Código PHP:
<?
include "a.php";
?>
Eso si, suponiendo que a.php esté en la misma ruta que la pagina en cuestión. De tal forma, al incluir a.php al inicio, se verifica si existe o no la cookie y se redirecciona o no en tal caso.

Saludos
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #6 (permalink)  
Antiguo 17/07/2003, 14:53
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

El problema de usar cookies es si el usuario no tiene activadas las cookies, por eso recomendaba las sesiones.

Ademas, creo (no estoy seguro) que el googlebot (el robot que recorre las webs para indexarlas en google) funciona como un navegador con las cookies deshabilitadas (y con javascript deshabilitado), con lo que al googlebot se le redirigiria siempre a la index y no indexaria los contenidos. Por esta razon de googlebot recomende javascript.

En fin, es cuestion de evaluar todo.

Saludos.

PD: Mi recomendacion seria pasar de los frames, y convertir a todas las paginas en paginas independientes, no frames interiores. Pero supongo que eso le sera imposible (o seria mucho trabajo).
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 13:02.