Foros del Web » Programando para Internet » PHP »

Redirect en una sola pagina

Estas en el tema de Redirect en una sola pagina en el foro de PHP en Foros del Web. Lo que quiero decir, es que con el redirect normal de PHP, como Header y location, aun puedes hacer cosas como un back, pero caes ...
  #1 (permalink)  
Antiguo 03/06/2005, 17:47
 
Fecha de Ingreso: enero-2004
Ubicación:
Mensajes: 108
Antigüedad: 20 años, 2 meses
Puntos: 0
Redirect en una sola pagina

Lo que quiero decir, es que con el redirect normal de PHP, como Header y location, aun puedes hacer cosas como un back, pero caes en la pagina desde la cual te redireccionaste.. como...

pagina1.php -> Redirecciona hacia pagina2.asp

pagina2.php -> Aqui si haces un Back llegas a pagina1.php y pues logico llegas nuevamente a pagina2.php

Esto no me gusta, por muchas cosas, por ejemplo validaciones, conteos, etc, de pagina1.php se ejecutan de nuevo, pero vi un ejemplo donde si funciona muy padre el redirect, y quisiera saber el truco, pero no lo entiendo miren..

http://www.ensenada.net

Hagan click en el banner de Ingenieros CIECE Civiles, como miraran, es comn PHP, entonces hace una serie de redirects, pero quedas en una sola pagina, donde no hay un back, etc., entonces... como lo hacen, o como es posible hacerlo?

Gracias, esto creo que es muy util e importante.
  #2 (permalink)  
Antiguo 03/06/2005, 18:21
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
... primero, el header("Location:...."); te enviará ha donde se le indique... si resulta que una página"1" te lleva a página"2" y a su vez página"2" te regresa a página"1".. el problema no es del header()... es del programador y su pésima organización (jamás he visto algo así ).

Ahora, debes ser específico con tu consulta y, en este caso, ejemplo... he dado click en dicho banner y me abre la página correspondiente... ¡ahora qué??... he navegado a través de esta nueva página pero no veo nada de lo que planteas... ni siquiera el uso de la función header()... solo por curiosidad ¿por qué no diste el enlace directo a la página del CICE ( yo soy ingeniro Civil... al menos estoy estudiando para ello :-p)???.

... y solo como comentario... el "destino" que le puedas aplicar a la función header() puede igual ser dinámico...

www.php.net/header
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 03/06/2005, 18:27
 
Fecha de Ingreso: enero-2004
Ubicación:
Mensajes: 108
Antigüedad: 20 años, 2 meses
Puntos: 0
gracias.

gracias por responder pero creo que no entendiste para nada mi mensaje, mira..

pagina1.php -> Redirecciona hacia pagina2.asp

pagina2.php ->


Aqui si TU HACES -- EL USUARIO EN EL BOTON BACK DEL NAVEGADOR llegas a pagina1.php y pues logico llegas nuevamente a pagina2.php, porque pagina1.php tiene un redirect hacia pagina2, pero pagina1.php ejecutara todo nuevamente.

El link de prueba que puse, no para eso, hace un redirect (no se con que), pero no puedes hacer un back, es decir.

Entonces como logro eso... gracias por la ayuda..
  #4 (permalink)  
Antiguo 03/06/2005, 18:43
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
pués nop.. no te entiendo... pagina2.asp y pagina2.php ¿no es la misma?? .. no le hayo el por qué dices que al hacer un back te regresa a pagina1.php... ¿cómo se llegó a pag2.php?? (qué "maña" de usar ese tipo de nombres ...).

Ahora.. incisto, no veo el comportamiento de lo que dices en el enlace... lo mismo, estube navegando y pude dar click en el botón "atrás" del navegador (Fire-Fox .. claro) y la nevagación fue como cualquier otra...

Ahora bien... si el comportamiento ese lo ves con IExplorer y no con otro navegador... (entonces hablas de "bloquear" el botón????) dicho comportamiento no será gracias a PHP.. eso te lo puedo asegurar...

... ADIVINANDO un poco... .. prueba separar procesos... supongamos tengo:
index.php -> por medio de link -> proceso.php -> por medio de header (no imprimo nada) -> contenido.php
Entonces el script de proceso.php hará la función de solo detectar a dónde se va ir.. en su caso si no hay parámetros regresar de dónde se llamo ... algo como lo que hacen las webs modulares.. ¿resultado?
- Yo desde index paso una variable (por URL) diciendo a proceso.php me lleve a contenido.php
- proceso.php la detecta y me lleva a contenido.php
- doy click en atrás desde contenido.php y al no tener la variable original... me redirecciona a contenido.php ... .

¿cómo planteo esto???.. lo dicho... busca sobre web's modulares... necesitarías un switch(), un $_GET y la variable superglobal $_SERVER['HTTP_REFERER'] para ponerla como default...
www.php.net/switch
www.php.net/reserved.variables
www.zonaphp.com
.. y las FAQ de este foro...

... claro... todo esto ADIVINANDO lo que tratas de decir... y en tal caso... tratando de aclararlo un poco mejor...

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

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 03/06/2005, 18:45
 
Fecha de Ingreso: enero-2004
Ubicación:
Mensajes: 108
Antigüedad: 20 años, 2 meses
Puntos: 0
Sorry...

Esto es lo correcto...

gracias por responder pero creo que no entendiste para nada mi mensaje, mira..

pagina1.php -> Redirecciona hacia pagina2.php

pagina2.php -> Aqui si TU HACES -- EL USUARIO EN EL BOTON BACK DEL NAVEGADOR llegas a pagina1.php y pues logico llegas nuevamente a pagina2.php, porque pagina1.php tiene un redirect hacia pagina2, pero pagina1.php ejecutara todo nuevamente.

El link de prueba que puse, no pasa eso, no hay un boton back como en cualquier redirect en PHP, hace un redirect (no se con que), pero no puedes hacer un back.

Entonces como logro eso... gracias por la ayuda..
  #6 (permalink)  
Antiguo 03/06/2005, 18:52
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
eeeeehhhhh.. ¿no repites lo mismo???.. salvo que ahora pagina1.php SÍ envia a pagina2.php y no a pagina2.asp ...

Pués... en efecto... no entendí para nada tu mensaje (ya... quedó claro eso)... así que no puedo más que tratar de adivinar lo que planteas... y ahí te dejé mi propuesta... espero tu entiendes lo que digo yo ...

Paz, amor y baile...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #7 (permalink)  
Antiguo 03/06/2005, 20:03
 
Fecha de Ingreso: enero-2004
Ubicación:
Mensajes: 108
Antigüedad: 20 años, 2 meses
Puntos: 0
jajajaja

pues nada, que no nos entendemos, jajaja, lo que me planteas si te lo entiendo, pero el problema mas concreto seria asi...

1. formulario.php -> llenas los campos de un formulario, en el submit, te lleva hacia procesa.php

2. procesa.php -> recibe los datos, procesa la informacion y lo mete en la base de datos, si todo sale bien REDIRECCIONA hacia resultado.php, con header o con location, (ambas me hacen lo mismo)

3. resultado.php -> Muestra un mensaje de que todo esta correcto, pero el problema es que el usuario puede hacer click en el botón Back de su navegador, entonces si el usuario hace click en ese boton, pues regresa a procesa.php y nuevamente inserta en la base de datos, y nuevamente llega a resultado.php porque procesa.php lo redirecciona a esta pagina.

Si entendi la parte que me explicaste del parámetro para evitar este problema, también leí otro mensaje que decía de sesiones, etc, pero quisiera saber como puedo hacer un redirect en PHP como el de ASP, donde si haces BACK llegas a la pagina original, no por la antrior que pasaste.

Es decir, es ASP si hicieras un back en resultado.php, llegarias a formulario.php, ese comportamiento es el que quisiera tener en PHP.

Creía que no era posible, pero cuando vi ese esa liga del banner en www.ensenada.net, me di cuenta que ellos lo lograron, por eso preguntaba aquí si saben como lo hicieron ellos

Probe esa pagina con Internet Explorer y con Netscape, y ambos funcionan bien, cuando haces click en el banner no puedes hacer click en BACK ni nada, es decir, pareciera que estas en la pagina original.

Y el problema del BACK cuando redireccionas, también lo tengo por ejemplo:

pagina1.php envia un parametro a redirecciona.php

en redirecciona.php, hace un switch segun ese parametro, y segun ese parametro redirecciona a pagina3.php, pagina4.php ó pagina5.php, entonces, si llegue a pagina5.php y hago un BACK en el navegador, pues llego nuevamente a pagina5.php, porque el back me llevo a redirecciona.php y esta pagina me redirecciono hacia pagina5.php

Por eso mi pregunta, jajajaja, creo que explique todo bien, espero que me ayuden, gracias Jam, y ojala me sigas ayudando.
  #8 (permalink)  
Antiguo 04/06/2005, 00:33
Avatar de otreblanc  
Fecha de Ingreso: mayo-2005
Ubicación: Chiapas, la última frontera...
Mensajes: 73
Antigüedad: 18 años, 11 meses
Puntos: 0
Hola!

Aqui está el 'truco' que necesitas:

PRINCIPAL.HTML----------------------------------------
Código PHP:
<!-- todo lo que quieras antes -->
<
a href='estadisticas.php?est1=1&est2=2&est3=3' target='_blank'>
<
img src='ingenieros.gif'></a>
<!-- 
todo lo que quieras despues--> 
ESTADISTICAS.PHP-------------------------------------
Código PHP:
<?php
  
//haz lo que quieras con tus variables GET
  
$estadistica1=$_GET['est1'];
  
$estadistica2=$_GET['est2'];
  
$estadistica3=$_GET['est3'];
  
//redireccionas a donde quieras
  
header('Location: http://www.cice.org.mx/');
  exit;
?>
Eso es todo! si te fijas ninguna de los 2 paginas habiertas tienen 'back' en su navegador! prueba y verás! (igualito a lo que hace --http://www.ensenada.net
--)

Enjoy! xD
  #9 (permalink)  
Antiguo 20/06/2005, 15:40
 
Fecha de Ingreso: enero-2004
Ubicación:
Mensajes: 108
Antigüedad: 20 años, 2 meses
Puntos: 0
G R A C I A S ! ! !

Gracias otreblanc, he probado y funciona correcto, lo que me faltaba era el EXIT, lo puse como die para poner un mensaje rapido cuando se esta redireccionando, pero todo va de maravilla, muchas gracias, tambien gracias a jam1138, aunque nunca nos entendimos

gracias.
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:42.