|
|
|
En este artículo desarrollaremos dos simples maneras de validar usuarios, la primera es realizándolo mediante un array(), lo cual nos facilita trabajar con un solo archivo .php sin necesidad de acceder y comprobar los datos desde ninguna otra fuente. La segunda es el mismo script aplicado a una conexión con una base de datos MySQL. Ambos scripts necesitan 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> Lo único que habría que alterar es la tercera línea, dependiendo del script que se desee utilizar. 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(); } ?>
A continuación la versión que trabaja con MySQL:
ValMySQL.php
<? $db = mysql_connect("localhost","root","root"); mysql_select_db("testings",$db); $leer = mysql_query("SELECT * FROM usuarios WHERE user=`$usuario` AND pass=`$contrasena`",$db); $val = mysql_num_rows($leer); if($val == 0){ ?> <center><font color="#FF0000" size="1" face="Arial"><b>ACCESO DENEGADO</b></font></center> <? exit(); } mysql_free_result($leer); mysql_close($db); ?>
La tabla MySQL "usuarios" podría ser: CREATE TABLE usuarios ( user varchar(255) NOT NULL, pass varchar(255) NOT NULL ) TYPE=MyISAM; Ambos scripts (ValTXT.php y ValMySQL.php) pueden ser llamados a la acción desde cualquier página .php con la siguiente línea: <?include(`ValMatriz.php`)?> o bien <?include(`ValMySQL.php`)?> Y lo que hacen es comprobar la veracidad de los datos, si tal procedimiento no es cumplido a cabalidad la ejecución del script se detiene, obviamente impidiendo ver los contenidos del sitio o la página protegida. Para los más principiantes quizás surja la pregunta: ¿Continuando con GET como podría pasar los datos de página a página?
Bueno lo más ideal seria utilizar algún otro método, ya que pasarlos datos por GET es un poco ambiguo e inseguro, pero en fin, se podrían pasar link a link las dos variables de PHP, poniéndolas en los URL dependientes de la validación, por ejemplo: <a href="libros.php?usuario<?=$usuario?>&contrasena<?=$contrasena?>">Libros</a>
|
|