Validar contraseña en php

Voy a intentar explicarte mi problema y a ver si puedes ayudarme.
El caso es que en mi empresa hemos creado una pequeña aplicación en access para los clientes y queremos ponerla en descarga a través de nuestra web. He encontrado mucha información sobre como crear una página web privada que requiera acceso mediante usuario y contraseña pero no queremos hacerlo así exactamente.
La idea que tengo es colgar las actualizaciones en nuestra web para que los clientes se la descarguen, pero para descárgala tengo pensado facilitarles una contraseña que autorice la descarga, esta contraseña solo sera valida por una vez, es decir, cuando se use se debe desactivar, de forma que cuando tengamos una nueva actualización le demos una contraseña a cada cliente y pueda bajársela, la idea de que la contraseña se desactive tras usarla es para que no pueda pasarle la contraseña a otro cliente y que este se lo descargue sin nuestra autorización, no se si esto sera posible, supongo que si, pero no tengo ni idea de por donde empezar. Espero haberlo explicado bien y que es entinda perfectamente el problema en si.
Respuesta
1
Puedes hacer eso perfectamente con PHP, haciendo una página de login o acceso y una tabla con las contraseñas.
Simplemente, cada vez que la página de login valide la contraseña, no sólo ha de permitir el acceso sino además borrar la contraseña de la tabla, con lo que ya no podrá usarse de nuevo.
OK, ya tengo claro que se puede hacer... XD, ahora solo me hace falta saber como... XD
Conoces o tienes algún ejemplo de código sencillo en el que se codifique algo similar a lo que necesito.
Gracias por tu tiempo,
En primer lugar debes hacer un formulario para que el usuario pueda entrar el código.
Y cuando recibas el código lees la tabla y lo comparas. La tabla puede ser una matriz de PHP, un fichero de texto o bien una tabla de una base de datos.
Depende de tus decisiones de diseño, como lo implementes claro. Eres tu el que debe juzgar según tu caso. Tu sabes cómo vas a generar las contraseñas, si dispones de servidor de base de datos, si has usado antes bases de ddatos o ficheros o matrices.
Yo optaría por lo que te resulte más sencillo.
Los conceptos teóricos de lo que hay que hacer (crear formulario, leer la tabla, comparar los datos) los tengo ya que estoy apunto de acabar I. T. en Informática de Gestión, pero en la carrera solo tocamos el lenguaje C++, por lo que de PHP no tengo ni idea, se programar en C++ y por tanto estoy familiarizado con el uso de lenguajes de este tipo, debido a mi formación en C++ con lo que estoy más familiarizado es con el uso de ficheros, pero podría intentar una base de datos si tuviera alguna de ejemplo.
Lo que me gustaría es saber donde encontrar un código libre o similar que implemente algo similar a lo que necesito para cogerlo como base aunque lo tenga que modificar un poco.
En el manual de PHP hay ejemplos de uso de cada función. Concretamente, para el caso de gestión de una tabla de la base de datos en MySQL:
http://es2.php.net/manual/es/function.mysql-query.php
En este manual en línea tienes ejemplos de todas las funciones.
Muchas gracias, muy buen manual y seguro que me sera de ayuda.
Buscando por internet he encontrado lo siguiente...
El script necesita de la siguiente "entrada", la cual envía mediante GET los datos del usuario, sobra decir que el pasar esta información, se puede hacer de varias maneras, desde el almacenamiento de los datos en una cookie, en una sesión o incluso en un archivo de log. Sin embargo para efectos didácticos el siguiente código aplica perfectamente.
<html>
<body>
<form action="ValMatriz.php" method="get">
Usuario:
<input name="usuario" type="text" id="usuario">
Contraseña:
<input name="contrasena" type="text" id="contrasena">
<input type="submit" name="Submit" value="Continuar">
</form>
</body>
</html>
A continuación el script que realiza la validación por si mismo...
ValMatriz.php
<?
$usuarios = array(
#Usuario #Contraseña
"hans" => "hans23",
"kaiser" => "kaiser23",
"tangalanga" => "julio23",
//"nuevo" => "usuario",
);
$val = 0;
while (list($user, $pass) = each($usuarios)) {
if($user==$usuario
&& $pass==$contrasena){
$val++;
}
}
if($val == 0){
?>
<center><font color="#FF0000" size="1" face="Arial"><b>ACCESO DENEGADO</b></font></center>
<?
exit();
}
?>
Por lo que veo este script en lugar de bases de datos o fichero, utiliza un vector donde se guardaran las contraseñas y pienso que para lo que necesito me sería bastante útil y fácil de mantener, solo me falta que cuando compruebe que la contraseña se encuentra en el vector a la misma vez que da paso a la zona privada elimine dicha contraseña, ¿podría hacer esto con la función unset()? ¿En caso afirmativo como sería la forma correcta de usarla?
en este caso, sólo tienes que usar unset() como comentas. Por ejemplo, si acabas de comprobar la contraseña de kaiser, ejecutar: unset($usuarios["kaiser"])
Esto vaciará esa posición de la matriz, y por lo tanto, la contraseña ya no podrá usarse de nuevo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas