Foros del Web » Programando para Internet » PHP »

Imposibilitar abrir lanzar formularios sin validacion previa.

Estas en el tema de Imposibilitar abrir lanzar formularios sin validacion previa. en el foro de PHP en Foros del Web. Hola, Tengo un pequeño y sencillo site en php contra MySql que está compuesto por un formulario de login - login.php y luego otro para ...
  #1 (permalink)  
Antiguo 10/04/2016, 06:12
 
Fecha de Ingreso: noviembre-2003
Mensajes: 27
Antigüedad: 21 años
Puntos: 0
Imposibilitar abrir lanzar formularios sin validacion previa.

Hola,

Tengo un pequeño y sencillo site en php contra MySql que está compuesto por un formulario de login - login.php y luego otro para el listado de documentos de un directorio del ftp del dominio mysite.com- documentos.php

Pues bien, mi consulta es la siguiente: Cómo puedo hacer para que el formulario www.mysite.com/documentos.php únicamente se muestre si previamente ha habido una validación correcta previa desde www.mysite.com/login.php?, es decir, una vez que hayan introducido correctamente en login.php valido que hayan introducido correctamente usuario y contraseña)?

Mi problema es que ahora si directamente alguien teclea en el navegador web www.mysite.com/documentos.php se muestra dicho formulario sin tener que pasar por el paso previo de la validación de usuario y contraseña.

Os agradezco cualquier ayuda o consulta al respecto
Saludos,

Angel Luis
  #2 (permalink)  
Antiguo 10/04/2016, 07:02
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Respuesta: Imposibilitar abrir lanzar formularios sin validacion previa.

Hola angelluis14,

En cada página que desees proteger deberás validar si el usuario se ha logueado, si no lo ha hecho, debes impedir el acceso a la misma, si buscas en Internet hay un montón de información de cómo hacerlo.
  #3 (permalink)  
Antiguo 10/04/2016, 08:58
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.139
Antigüedad: 13 años, 8 meses
Puntos: 171
Respuesta: Imposibilitar abrir lanzar formularios sin validacion previa.

Revisa aqui:

http://www.forosdelweb.com/f18/probl...6/#post4787207
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #4 (permalink)  
Antiguo 10/04/2016, 14:49
 
Fecha de Ingreso: noviembre-2003
Mensajes: 27
Antigüedad: 21 años
Puntos: 0
Respuesta: Imposibilitar abrir lanzar formularios sin validacion previa.

Gracias a ambos por vuestras respuestas, muy amables,

He estado buscando por la web sobre la variable $_session y no consigo implementarlo en mis páginas (hace pocos meses que empecé en plan serio con la programación en php y aún estoy "muy verde")

Podríais ayudarme un poco más? Cómo y dónde tendría que utilizar esa variable en mis forms?

Gracias de nuevo y disculpar por las molestias
Angel Luis
  #5 (permalink)  
Antiguo 10/04/2016, 17:17
 
Fecha de Ingreso: noviembre-2003
Mensajes: 27
Antigüedad: 21 años
Puntos: 0
Respuesta: Imposibilitar abrir lanzar formularios sin validacion previa.

Finalmente conseguí resolver mi problema gracias a vuestra ayuda.

  #6 (permalink)  
Antiguo 10/04/2016, 17:44
 
Fecha de Ingreso: abril-2016
Mensajes: 9
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Imposibilitar abrir lanzar formularios sin validacion previa.

Hola Angel.

Según he leído, ud. quiere restringir dicho formulario a los usuarios que no estén logeados por así decirlo.

Puede hacerlo de muchas formas, pero hay dos formas muy simples que se las dejaré aquí.

Como sabrás y habrás hecho cada vez que un usuario se logea se genera un $_SESSION, (normalmente con el nombre o la id del usuario logeado). Pues bien, puede ir a el archivo donde esté restringido y hacer lo siguiente:

Método 1:
Código PHP:
// Si x usuario no está logeado, lo redirige al login, sino, no podrá acceder.
 
if(!isset($_SESSION['login'])){ header("Location: index.php"); } 
O bien meter en un if el contenido que quiere que se muestre:

Método 2:

Código PHP:
<?php

if(isset($_SESSION['login'])){
  
// Todo el contenido que quiere que se muestre.
}else{
  
header("Location: login.php"); // Si no está logeado, lo mandas a que se logee, sino, no podrá ver el contenido.
}

?>
Espero haberte podido ayudar en algo. Aunque como ya te dije hay muchas más maneras, quizás más eficaz, pero esta es una muy simple y muy eficaz.

Un saludo!
  #7 (permalink)  
Antiguo 11/04/2016, 01:53
 
Fecha de Ingreso: noviembre-2003
Mensajes: 27
Antigüedad: 21 años
Puntos: 0
Respuesta: Imposibilitar abrir lanzar formularios sin validacion previa.

Solucionado!
Gracias a todos por vuestras valiosas aportaciones.

Angel Luis
  #8 (permalink)  
Antiguo 11/04/2016, 05:07
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Respuesta: Imposibilitar abrir lanzar formularios sin validacion previa.

Hola angelluis14,

Me alegro de que lo hayas solucionado. Puesto que aquí se trata de compartir conocimientos, estaría bien que postearas tu solución por si alguien más viene con la misma duda...

Ánimo que la programación es muy interesante.
  #9 (permalink)  
Antiguo 11/04/2016, 05:24
 
Fecha de Ingreso: noviembre-2003
Mensajes: 27
Antigüedad: 21 años
Puntos: 0
Respuesta: Imposibilitar abrir lanzar formularios sin validacion previa.

Hola,
Si claro, perdona, que se me pasó el postear la solución.

Lo resolví siguiendo este enlace que me recomendó petit89

http://www.forosdelweb.com/f18/problema-con-session_start-1150346/#post4787207
  #10 (permalink)  
Antiguo 11/04/2016, 05:35
 
Fecha de Ingreso: noviembre-2003
Mensajes: 27
Antigüedad: 21 años
Puntos: 0
Respuesta: Imposibilitar abrir lanzar formularios sin validacion previa.

Perdón, se me olvidó comentar que también me sirvieron de mucha ayuda los últimos comentarios de Carlos CR.

Gracias de nuevo

Etiquetas: formulario, formularios, lanzar, mysql, validacion
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 12:17.