Foros del Web » Programando para Internet » PHP »

Solo expertos - Formulario con clave en campo oculto

Estas en el tema de Solo expertos - Formulario con clave en campo oculto en el foro de PHP en Foros del Web. Saludos a todos. Quisiera saber si alguien tiene alguna idea o ha visto cómo le hacen en algunas páginas para ésto: Quiero tener un formulario ...
  #1 (permalink)  
Antiguo 11/07/2004, 09:25
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, México
Mensajes: 50
Antigüedad: 20 años
Puntos: 0
Solo expertos - Formulario con clave en campo oculto

Saludos a todos.

Quisiera saber si alguien tiene alguna idea o ha visto cómo le hacen en algunas páginas para ésto:

Quiero tener un formulario en una página, el cual tenga como action una página php por su puesto, digamos que formulario.php manda llamar a procesa.php.

Mi pregunta es simple, ¿cómo puedo hacer que SOLO a través de mi formulario contenido en formulario.php se le puedan enviar datos a procesa.php y no lo puedan hacer desde otra página parecida con los mismos campos del formulario?

He visto que algunos formularios manejan un campo oculto con una especia de clave, pero todavía no entiendo esa idea.

Nota: Lo que hará procesa.php será darle acceso o no al usuario, de darle acceso creará una sesión, si no, lo devuelve a formulario.php.

Les agradezco su interés una vez más saludos.
__________________
JAEC

Última edición por Jaec; 11/07/2004 a las 14:13
  #2 (permalink)  
Antiguo 11/07/2004, 14:59
 
Fecha de Ingreso: octubre-2003
Ubicación: FMSite
Mensajes: 336
Antigüedad: 20 años, 6 meses
Puntos: 2
pues, no sé muy bien pero igual podrías hacerlo así:

el campo de texto oculto lo vamos a llamar: clave
al campo de texto donde se mete la clave para enviar lo llamaremos: pass

en procesa.php puedes hacer algo así:
Código PHP:
$clave $_POST['clave'];
$pass $_POST['pass'];

if(
$clave == $pass){
//el código de enviar resultados
}else{
echo 
"El password introducido no es correcto";

de todas maneras, yo creo que hacerlo de esta manera, es un poco inseguro.

Si lo tengo mal, corregidme por favor
__________________
http://www.fmsite.net/
  #3 (permalink)  
Antiguo 11/07/2004, 19:17
 
Fecha de Ingreso: octubre-2003
Mensajes: 152
Antigüedad: 20 años, 6 meses
Puntos: 2
no se si te estoy entendiendote bien, pero lo que creo que quieres es que nadie mas pueda enviar datos a a procesa.php

con $HTTP_REFERER, que te indica el URL anterior.

seria algo asi
Código PHP:
<?php
$url 
"http://www.mi__web.com/formpulario.php";

if(
$HTTP_REFERER==$url)
{
    
/// Acciones que se hace cuando es correcto
}
else
{
   
header("location:$url");
}
?>
Disculpa si no te entendi, pero es que esta un poco confuso
  #4 (permalink)  
Antiguo 11/07/2004, 20:50
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, México
Mensajes: 50
Antigüedad: 20 años
Puntos: 0
Si me entendiste

Cita:
Iniciado por edwinmc
Disculpa si no te entendi, pero es que esta un poco confuso
Si, si esta confuso después de leerlo me quedó esa impresión sin embargo, ya no supe como explicarlo, pero lo bueno es que si me entendiste...

Tu solición si funcionaría, yo no conocía esta variable superglobal.

Ahora otra pregunta... has visto en hotmail u otros lugares cuando te autentificas, hay uno o varios campos ocultos que contienen algo así como claves, no sabes para que sirven????

Saludos y gracias.
__________________
JAEC
  #5 (permalink)  
Antiguo 11/07/2004, 20:55
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, México
Mensajes: 50
Antigüedad: 20 años
Puntos: 0
Cita:
Iniciado por Black_River
Si lo tengo mal, corregidme por favor
Si, lo que pasa es que no me entendiste, me refiero a que he visto sitios como hotmail u otros que manejan campos ocultos en sus formularios de autentificación, y que estos campos ocultos contienen algo asi como "gf4345hgcfg545gh32563gf" y no sé bien para que sirve, mi teoría es que lo hacen para lograr que su formulario sea el único por el cual accesen a su página que procesa los datos de user y pass.

Saludos y gracias.
__________________
JAEC
  #6 (permalink)  
Antiguo 11/07/2004, 21:40
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
se puede implementar un algoritmo para generar una clave como la que mencionas. Pero una forma mas sencilla y eficaz es inicializar una sesión con session_start();e inicializar una variable cualquiera en tu sitio. Y al llegar a la página de procesa.php compruebas que la variable este inicializada. El servidor reconoce si la variable fué inicializada desde tu sitio, o desde otro lado. Solo se procederá al proceso si se inicializo en tu sitio.

Un saludo
  #7 (permalink)  
Antiguo 12/07/2004, 13:30
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, México
Mensajes: 50
Antigüedad: 20 años
Puntos: 0
Cita:
Iniciado por sism82
se puede implementar un algoritmo para generar una clave como la que mencionas. Pero una forma mas sencilla y eficaz es inicializar una sesión con session_start();e inicializar una variable cualquiera en tu sitio. Y al llegar a la página de procesa.php compruebas que la variable este inicializada. El servidor reconoce si la variable fué inicializada desde tu sitio, o desde otro lado. Solo se procederá al proceso si se inicializo en tu sitio.

Un saludo

Gracias, lo intentaré.
__________________
JAEC
  #8 (permalink)  
Antiguo 13/07/2004, 08:17
 
Fecha de Ingreso: octubre-2003
Mensajes: 152
Antigüedad: 20 años, 6 meses
Puntos: 2
Esos datos que ves en algunos sitios de autentificacion, son tus datos encriptados, mayormente lo hacen con la funcion MD5, el que encripta los datos y no se pueden desencriptar
__________________
Mamani Calderón, Edwin Fredy
Ingeniería de Sistemas www.gruposistemas.com
  #9 (permalink)  
Antiguo 14/07/2004, 10:37
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, México
Mensajes: 50
Antigüedad: 20 años
Puntos: 0
Ok, gracias, un saludo.
__________________
JAEC
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 01:48.