Foros del Web » Programando para Internet » PHP »

Como restringir acceso a una página si no ha pasadopor un form

Estas en el tema de Como restringir acceso a una página si no ha pasadopor un form en el foro de PHP en Foros del Web. Hola compañer@s! He buscado y no he encontrado como resolver el siguiente problema. Tengo un buscador (index.php) el cual realiza la paginación en otra página ...
  #1 (permalink)  
Antiguo 17/10/2010, 13:51
 
Fecha de Ingreso: septiembre-2008
Mensajes: 66
Antigüedad: 16 años, 2 meses
Puntos: 2
Como restringir acceso a una página si no ha pasadopor un form

Hola compañer@s!

He buscado y no he encontrado como resolver el siguiente problema.
Tengo un buscador (index.php) el cual realiza la paginación en otra página aparte (xbusqueda.php) y ya después desde esa (xbusqueda.php) se puede volver arealizar otra búsqueda. O sea como cualquier otro buscador.

Mi problema radica en que, si no se ha realizado una busqueda antes y se entra directo a esa página (xbusqueda.php) se ve todo en blanco solo el form de búsqueda. Lo que quiero hacer es evitar que se entre a esa pagina (xbusqueda.php) si no se pasa primero por la anterior (index.php).

Espero haberme dado a entender.

De antemano muchas gracias
  #2 (permalink)  
Antiguo 17/10/2010, 13:58
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: Como restringir acceso a una página si no ha pasadopor un form

Se me ocurre asi;
Código PHP:
if (empty($_POST)) {
header ('Location: index.php');
}else{
//aca pones el codigo que hace la busqueda

Eso lo que haria, es que si no hay busqueda simplemente
redirecciona al index.php :)
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #3 (permalink)  
Antiguo 17/10/2010, 14:35
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Como restringir acceso a una página si no ha pasadopor un form

lovecom45:
la solución que te propusieron, podría ser, pero no es del todo efectiva, el POST te lo pueden pasar de cualquier lado.

esto creo que sería más apropiado

http://www.forosdelweb.com/f4/creaci...3/#post3599361

saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 17/10/2010, 14:57
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: Como restringir acceso a una página si no ha pasadopor un form

En todo caso, la solucion que propones tampoco funcionaria correctamente, ya que detecta de que pagina se 'refirio', pero igual pudo haber no mandado algun formulario y lo dejaria entrar....

Aplicando la razon que dices por la que mi solucion no seria, el codigo seria algo asi;
Código PHP:
//Suponiendo que el campo de busqueda se llama 'busqueda'
// (<input type="text" name="busqueda">)
if (empty($_POST['busqueda'])) {
header ('Location: index.php');
}else{
//Codigo que muestre los resultados

__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #5 (permalink)  
Antiguo 17/10/2010, 15:17
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Como restringir acceso a una página si no ha pasadopor un form

Sourcegeek:
El planteo de lovecom45 es muy preciso, el quiere que a xbusqueda.php solo se pueda acceder desde su index.php que es supongo por lógica donde está el form. lo siguiente puesto al inicio de xbusqueda.php, redirigira a index.php si la página no fue accedida desde index.php


Código PHP:
Ver original
  1. <?php
  2. $ref = $_SERVER['HTTP_REFERER'];
  3. $valido = 'http://misitio.com/index.php';
  4. if((!$ref)||($ref != $valido)){
  5. header ("Location: $valido");
  6. }
  7. ?>


Si hubo o no resultados, es otra cosa, y desde ya siempre habra post si se utilizó el form.

Asi que mejor, revises tus conceptos

__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #6 (permalink)  
Antiguo 17/10/2010, 16:04
 
Fecha de Ingreso: marzo-2010
Ubicación: Lima, Perú
Mensajes: 136
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Como restringir acceso a una página si no ha pasadopor un form

si utilizas require, y usas tu indice como un controlador, que :
si el_texto_a_buscar esta seteado,
te requiera xbusqueda.php
sino
te requiera el cuerpo del formulario.

espero que me haya dejado entender,.
  #7 (permalink)  
Antiguo 17/10/2010, 16:45
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: Como restringir acceso a una página si no ha pasadopor un form

Entonces supongamos que de cierta forma se accede a xbusqueda.php desde el index.php sin haber usado el form...

Ahi si, mi metodo es mas 'exacto'
Revisa tus conceptos tambien ;)
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #8 (permalink)  
Antiguo 17/10/2010, 17:08
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Como restringir acceso a una página si no ha pasadopor un form

Sourcegeek:

voy a hacer un último intento:

que formas tenemos de acceder a xbusqueda.php

1. un form que tenga como action="xbusqueda.php"
2. un link que tenga href="xbusquede.php"
3. un header o redirect... o javascript que redirija a xbusqueda.php
4. tipeando en la barra de direcciones la url de xbusqueda.php
5. dime tú, porque no se me ocurre otra

Cualquiera sea el caso, si el link, el form o la redirección NO están en index.php (y es de suponer ue solo lovecom45 es el responsable de eso), con mi código, xbusqueda.php vuelve a redirigir a index.php
Tu comentario
Cita:
Entonces supongamos que de cierta forma se accede a xbusqueda.php desde el index.php sin haber usado el form
carece de logica alguna, ese "cierta forma" debe ser algo en concreto.

Finalmente, en el caso 5. no se genera $_SERVER['HTTP_REFERER']; de ahí el if(!$ref) (creo que con javascript en IE, tampoco se genera, pero ese es solo un detalle)

si aún te quedan dudas, basta que confecciones un par de scripts, las subas a un servidor y lo verifiques.
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #9 (permalink)  
Antiguo 17/10/2010, 17:14
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: Como restringir acceso a una página si no ha pasadopor un form

No digo que tu metodo no funcione, simplemente digo que en cualquier caso el mio es un poco mas 'eficiente' de cierta forma. Listo, no quiero seguir discutiendo por algo sin sentido y en lo que se exactamente de lo que hablamos
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #10 (permalink)  
Antiguo 17/10/2010, 17:19
 
Fecha de Ingreso: septiembre-2008
Mensajes: 66
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Como restringir acceso a una página si no ha pasadopor un form

hola de nuevo he usado las formas de conseguir esto que requiero y hasta ahorita la que quedó es la solución de emprear, cabe aclarar que todas me funcionaron pero la que más se adaptó fue la de emprear, aunque raras veces como que procesa el form y el script de php redirige otra vez a index.php, pero lo estaré probando y veré que tal queda al final. Gracias a todos !!!
  #11 (permalink)  
Antiguo 17/10/2010, 17:31
 
Fecha de Ingreso: septiembre-2010
Ubicación: cali
Mensajes: 15
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: Como restringir acceso a una página si no ha pasadopor un form

lovecom45:

Te cuento, tengo en mi web un sistema de búsqueda en una base de datos con información sobre el santoral católico, y hace poco descubrí que en otra web, con la que no tengo relación, tenian un form que buscaba en mi págna de busqueda y mostraba los resultados en un iframe, todito muy disimulado, que casi no se notaba.
Lo solucioné con algo similar a lo que indico emprear.


gracias a este excelente foro
  #12 (permalink)  
Antiguo 17/10/2010, 19:30
 
Fecha de Ingreso: septiembre-2008
Mensajes: 66
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Como restringir acceso a una página si no ha pasadopor un form

desde hace unas horas he estado probando el script de emprear y me funciona solo que tienen un inconveniente como que se ejecuta en la segunda página y como no viene de la principal me reedirecciona a la primera. Cómo podría solucionarlo intente hacer otro if que incluyera a esta segunda página pero no quiere, así quedó lo que les digo

Código PHP:

<?php
$ref 
$_SERVER['HTTP_REFERER'];
$valido 'index.php';
if((!
$ref)||($ref != $valido)){
header ("Location: $valido");
}
$valido2 'xbusqueda.php';
if((!
$ref)||($ref != $valido2)){
header ("Location: $valido2");
}
?>
  #13 (permalink)  
Antiguo 17/10/2010, 19:47
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: Como restringir acceso a una página si no ha pasadopor un form

Con el metodo que te habia puesto yo si funcionaria correctamente...

Lo que tu describes es un problema mas por el que no te recomentaba
usar HTTP_REFERER :P
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #14 (permalink)  
Antiguo 17/10/2010, 19:53
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Como restringir acceso a una página si no ha pasadopor un form

lovecom45:


esto en lo que pasaste

Código PHP:
Ver original
  1. $valido2 = 'xbusqueda.php';
  2. if((!$ref)||($ref != $valido2)){
  3. header ("Location: $valido2");
  4. }

está demás

te he dejado una demo y el código correspondiente, esta aplicado a otro ejemplo, pero igual te va a servir,
en este caso

reglamento.php equivale a tu index.php
comprar.php equivale a tu xbusqueda.php
y hay una página extra pag2.html, para verificar que no se puede acceder a xbusqueda.php si no es desde reglamento.php

la demo está en
http://foros.emprear.com/php/reg/

tambien podes probar ingresando directamente en la barra de direcciones
http://foros.emprear.com/php/reg/comprar.php y darle enter, a ver donde te dirige

Un saludo
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #15 (permalink)  
Antiguo 17/10/2010, 20:02
 
Fecha de Ingreso: septiembre-2008
Mensajes: 66
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Como restringir acceso a una página si no ha pasadopor un form

ok, como mencioné antes me funciona para evitar que accedan si no es por index.php (donde esta el form de busqueda), eso me funciona perfecto, el problema ahora radica en que en xbusqueda.php tambien tiene un form que se procesa en ella misma y con el script me redirecciona a index.php, supongo que se debe a que la condición dice que debe de venir de index.php
  #16 (permalink)  
Antiguo 17/10/2010, 20:27
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Como restringir acceso a una página si no ha pasadopor un form

lovecom45:

lo que acabas de plantear cambia completamente el desarrollo te tu post original, por su puesto que hecho así, lo que te pasé no te va a funcionar, vas a tener que recurrir a lo señalado por nuestro amigo Sourcegeek y combinarlo con la solución que te di, si no, con que yo construya en cualquier otro sitio un form

<form action="http://tusitio.com/xbusqueda.php" method="post">
.....
submit.....
</from>
voy a poder acceder igual.

Sería bueno que en tus próximo posts seas más prolijo

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #17 (permalink)  
Antiguo 17/10/2010, 20:41
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: Como restringir acceso a una página si no ha pasadopor un form

Jajaja pero el lo esta haciendo mas bien por diseño, no por evitar hacks :P
Igual no creo que alguien se vaya a tomar la molestia de crear un
archivo html en su pc, ejecutarlo, blah blah blah para obtener una simple
busqueda XD
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies

Etiquetas: restringir, formulario
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 14:41.