Está en la página 1de 5

Validar usuario con php y mysql

Un sistema de registro y reconocimiento de usuarios es utilizado para garantizar el acceso a


ciertas áreas de nuestro sitio Web.
Debemos de crear una tabla que vamos a utilizar en la base de datos MySQL.

MySQL:
1. CREATE TABLE `usuarios` (
2.   `id` INT(11) NOT NULL AUTO_INCREMENT,
3.   `usuario` VARCHAR(20) NOT NULL,
4.   `password` VARCHAR(10) NOT NULL,
5.   `descripcion` TEXT character SET utf8 collate
utf8_spanish_ci,
6.   `email` VARCHAR(45) character SET utf8 collate
utf8_spanish_ci DEFAULT NULL,
7.   `fecha` DATE NOT NULL,
8.   PRIMARY KEY  (`id`)
9. )

Ya tenemos la estructura de nuestra tabla de usuarios.Ahora una pagina index.php donde


colocaremos el siguiente código:
<?php session_start();
echo 'Bienvenido, ';
if (isset($_SESSION['k_username'])) {
    echo '<b>'.$_SESSION['k_username'].'</b>.';
    echo '<p><a href="logout.php">Logout</a></p>';
}else{
    echo '<p><a href="login.php">Login</a></p>
     <p><a href="registrar.php">Registrar</a></p>';
}
?>
Ahora el formulario para hacer login.php
HTML:
<form action="validar_usuario.php" method="post">
Usuario:<input type="text" name="usuario" size="20"
maxlength="20" />
<br />
Password:<input type="password" name="password"
size="10" maxlength="10" />
<br />
<input type="submit" value="Ingresar" />
</form>

Seguimos con el archivo validar_usuario.php el cual verificará los datos del archivo login.php
1. <?php session_start();
2.  
3. //datos para establecer la conexion con la base de
mysql.
4. mysql_connect('localhost','usuario','password')or die
('Ha fallado la conexi&oacute;n: '.mysql_error());
5. mysql_select_db('mi_base')or die ('Error al seleccionar
la Base de Datos: '.mysql_error());
6.  
7. function quitar($mensaje)
8. {
9.     $nopermitidos = array("'",'\\','<','>',"\"");
10.     $mensaje = str_replace($nopermitidos, "", $mensaje);
11.     return $mensaje;
12. }     
13.  
14. if(trim($HTTP_POST_VARS["usuario"]) != "" &&
trim($HTTP_POST_VARS["password"]) != "")
15. {
16.     // Puedes utilizar la funcion para eliminar algun
caracter en especifico
17.     //$usuario =
strtolower(quitar($HTTP_POST_VARS["usuario"]));
18.     //$password = $HTTP_POST_VARS["password"];
19.    
20.     // o puedes convertir los a su entidad HTML
aplicable con htmlentities
21.     $usuario =
strtolower(htmlentities($HTTP_POST_VARS["usuario"],
ENT_QUOTES));   
22.     $password = $HTTP_POST_VARS["password"];
23.      
24.  
25.     $result = mysql_query('SELECT password, usuario FROM
usuarios WHERE usuario=\''.$usuario.'\'');
26.     if($row = mysql_fetch_array($result)){
27.         if($row["password"] == $password){
28.  
29.             $_SESSION["k_username"] = $row['usuario'];
30.            
31.             echo 'Has sido logueado correctamente '.
$_SESSION['k_username'].' <p>';
32.             echo '<a href="index.php">Index</a></p>';
33.            
34.             //Elimina el siguiente comentario si quieres
que re-dirigir autom&aacute;ticamente a index.php
35.            
36.             /*Ingreso exitoso, ahora sera dirigido a la
pagina principal.
37.             <SCRIPT LANGUAGE="javascript">
38.             location.href = "index.php";
39.             </SCRIPT>*/
40.  
41.         }else{
42.             echo 'Password incorrecto';
43.         }
44.     }else{
45.         echo 'Usuario no existente en la base de datos';
46.     }
47.     mysql_free_result($result);
48. }else{
49.     echo 'Debe especificar un usuario y password';
50. }
51. mysql_close();
52. ?>

El archivo registrar.php, ahí crearemos un usuario nuevo.


1. <?php session_start();
2.  
3. //datos para establecer la conexion con la base de
mysql.
4. mysql_connect('localhost','usuario','password')or die
('Ha fallado la conexi&oacute;n: '.mysql_error());
5. mysql_select_db('mi_base')or die ('Error al seleccionar
la Base de Datos: '.mysql_error());
6.  
7. function formRegistro(){
8. ?>
9. <form action="registrar.php" method="post">
10. Usuario (max 20):
11.   <input type="text" name="username" size="20"
maxlength="20" /><br />
12. Password (max 10):
13. <input type="password" name="password" size="10"
maxlength="10" />
14. Confirma: <input type="password" name="password2"
size="10" maxlength="10" /><br />
15. Email (max 40):
16. <input type="text" name="email" size="20" maxlength="40"
/><br />
17. <input type="submit" value="Registrar" />
18. </form>
19. <?php
20. }
21.  
22. // verificamos si se han enviado ya las variables
necesarias.
23. if (isset($_POST["username"])) {
24.     $username = $_POST["username"];
25.     $password = $_POST["password"];
26.     $password2 = $_POST["password2"];
27.     $email = $_POST["email"];
28.     // Hay campos en blanco
29.     if($username==NULL|$password==NULL|$password2==NULL|
$email==NULL) {
30.         echo "un campo est&aacute; vacio.";
31.         formRegistro();
32.     }else{
33.         // ¿Coinciden las contrase&ntilde;as?
34.         if($password!=$password2) {
35.             echo "Las contrase&ntilde;as no coinciden";
36.             formRegistro();
37.         }else{
38.             // Comprobamos si el nombre de usuario o la
cuenta de correo ya exist&iacute;an
39.             $checkuser = mysql_query("SELECT usuario
FROM usuarios WHERE usuario='$username'");
40.             $username_exist =
mysql_num_rows($checkuser);
41.            
42.             $checkemail = mysql_query("SELECT email FROM
usuarios WHERE email='$email'");
43.             $email_exist = mysql_num_rows($checkemail);
44.    
45.             if ($email_exist>0|$username_exist>0) {
46.                 echo "El nombre de usuario o la cuenta
de correo estan ya en uso";
47.                 formRegistro();
48.             }else{
49.                 $query = 'INSERT INTO usuarios (usuario,
password, email, fecha)
50.                 VALUES (\''.$username.'\',\''.
$password.'\',\''.$email.'\',\''.date("Y-m-d").'\')';
51.                
52.                 mysql_query($query) or
die(mysql_error());
53.                 echo 'El usuario '.$username.' ha sido
registrado de manera satisfactoria.<br />';
54.                 echo 'Ahora puede entrar ingresando su
usuario y su password <br />';
55.                 ?>
56.                 <FORM ACTION="validar_usuario.php"
METHOD="post">
57.               Usuario : <INPUT TYPE="text"
NAME="usuario" SIZE=20 MAXLENGTH=20><br />
58.               Password: <INPUT TYPE="password"
NAME="password" SIZE=10 MAXLENGTH=20><br />
59.               <INPUT TYPE="submit" VALUE="Ingresar">
60.            </FORM>
61.                 <?php
62.                
63.             }
64.         }
65.     }
66. }else{
67.     formRegistro();
68. }
69. ?>

Finalmente el archivo logout.php, ahí cerraremos la sesión.


PHP:
1. <?php session_start();
2. // Borramos toda la sesion
3. session_destroy();
4. echo 'Ha terminado la session <p><a
href="index.php">index</a></p>';
5. ?>
6. <SCRIPT LANGUAGE="javascript">
7. location.href = "index.php";
8. </SCRIPT>

El sistema creado es sencillo para que sea fácil de entender, Y no olvides dejar tus comentarios.

También podría gustarte