Foros del Web » Programando para Internet » PHP »

Evitar acceso directo a URL

Estas en el tema de Evitar acceso directo a URL en el foro de PHP en Foros del Web. Hola, Tengo una pagina (index.php) que dependiendo de un valor que paso por la url (?id=1) me inserta una tabla u otra (en una parte ...
  #1 (permalink)  
Antiguo 19/04/2004, 18:22
 
Fecha de Ingreso: marzo-2004
Mensajes: 17
Antigüedad: 20 años
Puntos: 0
Evitar acceso directo a URL

Hola,

Tengo una pagina (index.php) que dependiendo de un valor que paso por la url (?id=1) me inserta una tabla u otra (en una parte concreta de la pagina index.php). El problema es que cuando se escribe la direccion completa (index.php?id=1) me muestra solo la tabla que va asociada al (id=1). Lo que quiero es evitar que se pueda acceder directamente a (index.php?id=1) y que si lo haces, te envie al (index.php). Para que la pagina se cargue entera, no solo la tabla.

¿me pueden decir como solucionarlo?

Gracias de antemano,
Jayco
  #2 (permalink)  
Antiguo 19/04/2004, 18:30
Avatar de CHILENOCES  
Fecha de Ingreso: octubre-2001
Ubicación: Mmm paseando por la vida
Mensajes: 491
Antigüedad: 22 años, 6 meses
Puntos: 0
Bueno mira no tengo tiempo para poner el código porque justo voy de salida pero hazlo mas menos asi:

Crea una cookie con el index.php que se llame autorizacion o como quieras y luego a esa le pones valor 0 dentro tonces en el index.php primero verificas si cookie es igual a uno o a 0 y ahi no deberia mostrar eso pones el codigo para verificar y en caso de no estar autorizado le pones un header location a donde quieras.


Saludos.
__________________
ChilenoCesar Looking for something new...
  #3 (permalink)  
Antiguo 20/04/2004, 06:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Con sesiones sería algo tipo:

en tu página principal que llama a las otras ..

Código PHP:
<?
session_start
();
$_SESSION['paso_por_donde_yo_quiero']=TRUE;
<?
resto de tu código actual ...
Y en las otras págianas que no quieres que sean accedidas directamente:

Código PHP:
<?
// El session_start(); ya estaría iniciado en tu script "padre" .. Si se llama directo .. ni se accederá a $_SESSION por ende no existirá y se redireccionará hacia tu página que indiques (puedes usar rutas [url]http://www.tal.tal[/url] por si llamasen al script desde otros sitios ...
if (!isset($_SESSION['paso_por_donde_yo_quiero'])){
header ("Location: index.php");
exit;
}
?>
resto de tu código actual ...

También podrías jugar con la variable de servidor HTTP_REFERER para ver si llega desde otra página (incluso de tu index.tal ..) o PHP_SELF y ver en que página está .. Pero, más seguro usar sesiones (o cookies como comentó CHILENOCES).

Un saludo,

PD: El SID (identificador único de sesión asumo que se propaga por cookies y que se usa un navegador que acepte cookeis. PHP versión 4.1.0 en adelante requerida por el acceso y uso de los arrays superglobales.
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 20/04/2004 a las 07:05
  #4 (permalink)  
Antiguo 20/04/2011, 13:22
 
Fecha de Ingreso: abril-2011
Mensajes: 5
Antigüedad: 13 años
Puntos: 0
Respuesta: Evitar acceso directo a URL

que es lo que estoy haciendo mal????

en mi página llamada ejemplo.php pongo esto..

Código PHP:
<? 
session_start
(); 
$_SESSION['http://ejemplo.php']=TRUE;
header('refresh:10; url=http://ejemplo1.php'); 
 <? 
el resto d mi codigo....
Y en la págiana ejemplo1.php pongo esto:


Código PHP:
<? 
if (!isset($_SESSION[http://ejemplo.php])){ 
header ("Location: index.php"); 
exit; 

?> 
el resto de mi codigo...
el caso es que entro a ejemplo.php y esta me redirecciona a ejemplo1.php pero la ejemplo1.php siempre me manda a index.php aunque estoy pasando por ejemplo.php...
alguien me puede decir cual es mi error de antemano gracias

Última edición por nelous; 20/04/2011 a las 13:28
  #5 (permalink)  
Antiguo 20/04/2011, 13:33
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Evitar acceso directo a URL

si miras el código un poco mas verás el problema XD

ejemplo.php -> ejemplo1.php -> index.php
  #6 (permalink)  
Antiguo 20/04/2011, 13:38
 
Fecha de Ingreso: abril-2011
Mensajes: 5
Antigüedad: 13 años
Puntos: 0
Respuesta: Evitar acceso directo a URL

entonces como hago para que no pueda acceder directamente a ejemplo1.php
solo cuando pase por ejemplo.php y esta me redireccione a ejemplo1.php
soy novato en esto
  #7 (permalink)  
Antiguo 20/04/2011, 13:45
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Evitar acceso directo a URL

Esto
Código PHP:
Ver original
  1. $_SESSION['http://ejemplo.php']
¿que diablos significa?

según tu?
  #8 (permalink)  
Antiguo 20/04/2011, 13:52
 
Fecha de Ingreso: abril-2011
Mensajes: 5
Antigüedad: 13 años
Puntos: 0
Respuesta: Evitar acceso directo a URL

suguún yo estoy diciendo que si entran a ejemplo.php entonces:
$_SESSION['http://ejemplo.php'] = TRUE
y me manda a ejemplo1.php donde esta pagina me dice que si viene desde ejemplo.php entonces me muestra la pagina sino me manda a index.php
  #9 (permalink)  
Antiguo 20/04/2011, 14:49
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Evitar acceso directo a URL

creo que te voy entendiendo la idea, pero el código esta lleno de errores, no puedes crear una sesión con ese nombre, intenta así:

Código PHP:
Ver original
  1. $_SESSION['httpejemplophp'] = TRUE;
  2. header('Location:http://ejemplo1.php');

y en la otra página:

Código PHP:
Ver original
  1. if (!isset($_SESSION['httpejemplophp'])){  
  2. header ("Location:index.php");  
  3. exit;  
  4. }
  #10 (permalink)  
Antiguo 20/04/2011, 15:10
 
Fecha de Ingreso: abril-2011
Mensajes: 5
Antigüedad: 13 años
Puntos: 0
Respuesta: Evitar acceso directo a URL

pues sigue el mismo problema ya hice eso que mensionas pero:
entro en ejemplo.php y en 10 segundos me redirecciona a ejemplo1.php...
pero me manda a index.php
no c que hacer
  #11 (permalink)  
Antiguo 20/04/2011, 15:26
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Evitar acceso directo a URL

10 segundos? pero debes reemplazar eso por el primer codigo que te puse:

Código PHP:
Ver original
  1. <?  
  2. $_SESSION['httpejemplophp'] = TRUE;
  3. header('Location:http://ejemplo1.php');
  4.  <?  
  5. el resto d tu codigo....

otra cosa en tu segundo codigo tb tienes que iniciar la sesion:

Código PHP:
Ver original
  1. <?
  2. if (!isset($_SESSION['httpejemplophp'])){  
  3. header ("Location:index.php");  
  4. exit;  
  5. }  
  6. ?>  
  7. el resto de tu codigo...
  #12 (permalink)  
Antiguo 20/04/2011, 15:57
 
Fecha de Ingreso: abril-2011
Mensajes: 5
Antigüedad: 13 años
Puntos: 0
Respuesta: Evitar acceso directo a URL

gracias amigo solo me faltaba iniciar sesion en la segunda pagina
  #13 (permalink)  
Antiguo 21/04/2011, 09:22
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Evitar acceso directo a URL

--- error de post
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 21:48.