Autor
|
Tema: Hacer que enlace funcione solo cuando se viene de una pagina en especifico (Leído 4,451 veces)
|
Alarkon_88
Desconectado
Mensajes: 70
|
Hola, quería saber si es posible que solo se muestre el contenido de una pagina web siempre y cuando venga desde un enlace por ejemplo
mipagina.com/paso1.php a ► mipagina.com/paso2.php
y de esta forma si la persona intenta entrar a mipagina.com/paso2.php directo con la URL no le sea permitido bien sea que no se vea nada o mostrando un mensaje de error
|
|
|
En línea
|
|
|
|
engel lex
|
hay 2 formas
1- variable de sesión: guarda siempre en la variable de sesión la url solicitada, así en paso2 puedes verificar si la ultima pagina fue paso1
ventaja: no se puede alterar desventaja: si el usuario tiene 2 pestañas de tu pagina abierta (por ejemplo está viendo la pagina de "noticias") y entra a otro link despues de pagina1, el metodo fallaría, requerirías varias estructuras de control para evitar esto (nada del otro mundo, pero es más codigo)
2- referer header leyendo la cabecera de referido, puedes saber desde que pagina se está referenciando a otra
ventaja: es facil seguir el rastro del usuario aunque tenga multiples pagina abiertas desventaja: como es un método de lado de cliente puede ser alterado intencionalmente (no es fácil para un principiante, pero alguien con mediana capacidad podría hacerlo)
recomendación... ve por la opción 1, y asegurate de que no haya "confusiones" en el valor guardado... si no es esencial un control estricto a prueba de hackeos en este sistema (ya que por lo menos hay inputs que no podrían estar en blanco) usa el metodo 2 ya que es más simple
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Alarkon_88
Desconectado
Mensajes: 70
|
Muchas gracias, logre conseguir este codigo el cual deberia funcionar de esta forma Tengo paso1.php y paso2.php, el codigo lo coloco en la pagina paso2.php muy bien el codigo detecta cuando ingreso directamente por url y me redigire a la pagina de error asignada el problema que tengo con este codigo es que funciona si entro desde cualquier pagina siempre y cuando sea por un enlace por decir paso5523.php contiene un enlace a paso2.php y igual sigue entrando cuando deberia mostrar el mensaje de error ya que la unica entrada solo deberia ser por paso1.php, quisiera que funcionara igual pero que solo mostrara la web y el mensaje de bienvenida solo cuando se venga de una pagina en especifico en este caso paso1.php <?php $ref = $_SERVER['HTTP_REFERER']; echo (strtolower($ref) === $protocol . 'paso1.php') ? 'welcome':'BIENVENIDO'; } else { echo("<script>window.location = 'error.php';</script>"); } ?>
|
|
« Última modificación: 18 Agosto 2018, 07:40 am por Alarkon_88 »
|
En línea
|
|
|
|
engel lex
|
por dios! XD pero por qué el desastre de codigo? if(isset($_SERVER['HTTP_REFERER'])) { $pagina = end(explode("/", $_SERVER['HTTP_REFERER'])); // separa por / y retorna el ultimo elemento if($pagina == 'paso1.php'){ echo "viene de pagina1"; }else{ echo "error"; } }
igual revisa el codigo, no lo probé
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Alarkon_88
Desconectado
Mensajes: 70
|
jeje fue un codigo que consegui por ahi, ya probe el que me acabas de pasar y funciona bien solo hasta donde deberia mandar el error, por ejemplo si accedo directamente desde la URL me muestra la pagina normal cuando deberia salir error pero si entro desde paso1.php me muestra el mensaje de bienvenida
|
|
« Última modificación: 18 Agosto 2018, 08:06 am por Alarkon_88 »
|
En línea
|
|
|
|
engel lex
|
es raro, a ver tu codigo arreglado
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Alarkon_88
Desconectado
Mensajes: 70
|
No lo he podido arreglar, el problema es que cuando ingreso por url no me manda el error de resto funciona bien por ejemplo colocó el código en paso2.php y ingreso por url y me muestra la pagina normal como hago para que en este caso mande error al igual que como si entrase desde otra página que no sea paso1.php gracias
Amigo por ejemplo si yo coloco que solo se permita entrada desde paso1.php como haria en el caso de que el enlace tenga variables ejemplo paso1.php?nombre=carlos&apellido=medina como haria para que solo detectase el paso1.php y permitiera el acceso sin leer o omitiendo las variables
Hola he modificado un poco el codigo su funcion es permitir solo entrada desde paso1.php, el problema es que si entro desde http://localhost/referer/paso1.php me da el mensaje de bienvenida pero si entro desde http://localhost/referer/paso1.php?nombre=carlos&apellido=medina me manda el mensaje de error "Solo se puede acceder por paso1.php" <?php $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; if($referer !== 'http://localhost/referer/paso1.php'){ echo "Solo se puede acceder por paso1.php"; }else{ echo "Entro desde paso1.php"; } ?>
No hagas doble post, usa el boton modificar
|
|
« Última modificación: 18 Agosto 2018, 18:51 pm por engel lex »
|
En línea
|
|
|
|
engel lex
|
solo ignora del ? en adelante... o usa post (no veo la necesidad del get)
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Alarkon_88
Desconectado
Mensajes: 70
|
Si, lo que pasa es que para la pagina donde lo estoy haciendo se envian variables por GET pero el problema como te dije es que necesito que entre a paso2.php bien sea que entre desde paso1.php o paso1.php?nombre=carlos&apellido=medina Si entro desde paso1.php si entra normal y me da el mensaje de bienvenida el problema esta en que si entro desde paso1.php?nombre=carlos&apellido=medina me manda el mensaje de error indicandome que no he entrado desde paso1.php de que manera deberai poner el codigo entonces en mi archivo paso2.php no lo he logrado aun, si me pudieras ayudar con eso te lo agradecería por siempre. Puede servir de esta manera? <?php $carpeta = str_replace($_SERVER['DOCUMENT_ROOT'], '', dirname($_SERVER['SCRIPT_FILENAME'])); $ruta = "https://$_SERVER[HTTP_HOST]$carpeta/paso1.php"; $aux = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; if($referer !== $ruta){ echo "Solo se puede acceder por paso1.php"; }else{ echo "Entró desde paso1.php"; } ?>
|
|
« Última modificación: 18 Agosto 2018, 19:09 pm por Alarkon_88 »
|
En línea
|
|
|
|
engel lex
|
por qué te matas haciendo locuras? XD has igual que yo y usa explode.... partes por "?" y tomas el primer segmento
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
hacer zoom solo en una parte determinada de una pagina web
Desarrollo Web
|
javierr
|
5
|
5,906
|
9 Enero 2011, 19:13 pm
por javierr
|
|
|
tengo un exe y quiero se se ejecute solo cuando el pc abra una pagina web ayuda?
Análisis y Diseño de Malware
|
binario010101
|
5
|
3,667
|
11 Agosto 2013, 17:28 pm
por MeCraniDOS
|
|
|
Cómo hacer que el icono de tu web aparezca al lado del enlace cuando alguien...
Noticias
|
wolfbcn
|
0
|
2,132
|
28 Octubre 2013, 14:40 pm
por wolfbcn
|
|
|
El dilema de los medios, ¿qué hacer cuando la información que se filtra viene...
Noticias
|
wolfbcn
|
0
|
1,279
|
17 Diciembre 2014, 18:31 pm
por wolfbcn
|
|
|
hacer que un programa basado en archivos de texto funcione solo con strings
.NET (C#, VB.NET, ASP)
|
dr4
|
0
|
1,802
|
19 Mayo 2015, 15:22 pm
por dr4
|
|