Como Hacer un Sistema de Registro de Usuarios en PHP y MySQLEn este tutorial desarrollaremos y explicaremos un sistema de registro de usuarios, este tutorial es una continuación de este otro donde vimos como crear un sistema de login de usuarios. 1. Crear la tabla en MySQL Vamos a comenzar preparando una tabla en nuestra base de datos, la cual almacenara la información de los usuarios, para crear la tabla simplemente copia y ejecuta la siguiente consulta SQL: 1 2 3 4 5 6 CREATE TABLE `usuarios` ( `idusuario` INT(11) NOT NULL AUTO_INCREMENT, `usuario` VARCHAR(20) NOT NULL, `password` VARCHAR(10) NOT NULL, PRIMARY KEY (`idusuario`) ) 2. Conectando a MySQL en PHP Ya una vez que tengamos la estructura de nuestra tabla, creamos un archivo llamado conexion.php. 1 <?php 2 3 4 5 6 // datos para la coneccion a mysql define('DB_SERVER','localhost'); define('DB_NAME','TU_BASE_DE_DATOS'); define('DB_USER','TU_USUARIO'); define('DB_PASS','TU_CLAVE'); La funcion define como su nombre lo dice, se usa para definir una constante nominada, que nos permite almacenar valores escalares(string, integer, float, boolean y nulos). 1 $con = mysql_connect(DB_SERVER,DB_USER,DB_PASS); 2 3 mysql_select_db(DB_NAME,$con); ?> La función de mysql_connect nos servira para abrir una conexión al servidor de MySQL usando los 3 parámetros que declaramos anteriormente. Luego mysql_select_db selecciona la base de datos usando 2 parámetros. se llamaran $_POST['password'] y $_POST['repassword']respectivamente.'localhost').'TU_BASE_DE_DATOS'). $con = mysql_connect(DB_SERVER. session_start() crea una sesión para ser usada mediante una petición GET o POST. 1 2 3 <?php session_start(). define('DB_NAME'.php".php. o pasado por una cookie y la sentencia include_once es la usaremos para incluir el archivo de conexión a la base de datos que creamos anteriormente. mysql_select_db(DB_NAME. el nombre de la base de datos y la conexión a usar. Código completo 1 2 3 4 5 6 7 8 9 <?php // datos para la conexion a mysql define('DB_SERVER'. 1 2 3 4 5 6 <form action="" method="post" class="registro"> <div><label>Usuario:</label> <input type="text" name="usuario"></div> <div><label>Clave:</label> <input type="password" name="password"></div> <div><label>Repetir Clave:</label> <input type="password" name="repassword"></div> <div><input type="submit" name="enviar" value="Registrar"></div> </form> Creamos el formulario con el campo de Usuario que se llamara $_POST['usuario'] y 2 campos para la clave y uno mas para confirmar si escribió bien la clave. el cual contendrá el formulario de registro y al mismo tiempo el mensaje de “fue registrado correctamente” o “faltan llenar campos”.DB_PASS). index. define('DB_PASS'. include_once "conexion.DB_USER.'TU_CLAVE').'TU_USUARIO'). ?> 4.$con).php Ahora pasamos el archivo index. procedemos a escribir el codigo que procesara y validara lo que el usuario ingrese: . define('DB_USER'. '. 8 } 9 else 10 { $sql = 'SELECT * FROM usuarios'.'. 12 $verificar_usuario = 0. 26 $sql = "INSERT INTO usuarios (usuario.password) VALUES ('$usuario'. mysql_query($sql). intente nuevamente. 25 $password = $_POST['password']. 29 } 30 else 31 { echo 'Las claves no son iguales. 11 $rec = mysql_query($sql).1 2 3 4 if(isset($_POST['enviar'])) 5 { if($_POST['usuario'] == '' or $_POST['password'] == '' or $_POST['repassword'] == '') 6 { 7 echo 'Por favor llene todos los campos. 32 } 33 } 34 else 35 { 36 echo 'Este usuario ya ha sido registrado anteriormente.'. } 37 } 38 } 39 40 41 42 Linea 1: La primera condición es para saber cuando el formulario haya sido enviado. . 27 28 echo 'Usted se ha registrado correctamente.'$password')". 18 } 19 } 20 21 if($verificar_usuario) { 22 if($_POST['password'] == $_POST['repassword']) 23 { 24 $usuario = $_POST['usuario']. 13 14 while($result = mysql_fetch_object($rec)) 15 { 16 if($result->usuario == $_POST['usuario']) { 17 $verificar_usuario = 1.'. registro div { margin-bottom: 15px. Linea 23: Si los campos son iguales. Decoración opcional con CSS Esta parte es algo de CSS opcional ya que no influye en nada en el funcionamiento del sistema. font-family: sans-serif.registro div label { display: block. Linea 11. pero si la condición de la linea 15 resulta verdadera. line-height: 25px. Linea 27: Se insertan los datos a la base de datos. margin: 0 auto. float: left. 14 15 16 17 form. overflow: hidden. . entonces la variable toma el valor de 1 que quiere decir que ese nombre de usuario ya existe por lo tanto no se puede registrar. continua el registro o caso contrario saldrá un mensaje de error. 15 y 21: Creamos la variable $verificar_usuario que empieza con un valor de 0. caso contrario sigue el siguiente bloque de código. width: 278px. es unicamente decorativa: *{ 1 2 3 } font-size: 14px. padding: 20px. 4 form. Linea 3: Si los campos están vacíos muestra el siguiente mensaje. el usuario es registrado con exito y sale el mensaje correspondiente. border: 1px solid #DDDDDD. form.registro{ 5 6 7 8 9 10 11 12 13 } } background: none repeat scroll 0 0 #F1F1F1. 18 19 20 21 22 } form. Y con esto terminamos el nuestro sistema de registro en PHP.registro div input[type="password"] { border: 1px solid #DCDCDC. font-weight: bold. padding: 4px. float: right.registro div input[type="submit"] { background: none repeat scroll 0 0 #DEDEDE. } 23 24 25 26 27 28 29 30 31 form. recuerda que puedes probar el resultado final en esta dirección o bajarte el código fuente desde aqui. . } .error{ color: red. padding: 4px 20px. text-align: center. form. font-weight: bold.registro div input[type="text"]. border: 1px solid #C6C6C6. float: right. 32 33 34 35 36 37 38 } margin: 10px. define('DB_PASS'. boolean y nulos).Como Hacer un Sistema de Login de Usuarios en PHP y MySQL En este tutorial desarrollaremos y explicaremos un sistema de autentificacion de usuarios. que nos permite almacenar valores escalares(string. este tipo de sistemas se utilizan para limitar el acceso a ciertas paginas de nuestro sitio Web. 1 <?php 2 3 4 5 6 // datos para la coneccion a mysql define('DB_SERVER'.'localhost'). 1. . La funcion define como su nombre lo dice. define('DB_NAME'. la cual almacenara la información de los usuarios.'TU_BASE_DE_DATOS'). PRIMARY KEY (`idusuario`) 2.'TU_USUARIO').php. Preparando una tabla en MySQL Vamos a comenzar preparando una tabla en nuestra base de datos. se usa para definir una constante nominada. Conectando a MySQL en PHP Ya una vez que tengamos la estructura de nuestra tabla. define('DB_USER'. integer.'TU_CLAVE'). float. creamos un archivo llamado conexion. para crear la tabla simplemente copia y ejecuta la siguiente consulta SQL: 1 CREATE TABLE `usuarios` ( 2 3 4 5 6 ) `idusuario` INT(11) NOT NULL AUTO_INCREMENT. `password` VARCHAR(10) NOT NULL. `usuario` VARCHAR(20) NOT NULL. 'TU_USUARIO'). .'TU_BASE_DE_DATOS').$con).$con).DB_USER. ?> La función de mysql_connect nos servira para abrir una conexión al servidor de MySQL usando los 3 parámetros que declaramos anteriormente. mysql_select_db(DB_NAME. define('DB_PASS'.DB_PASS).php para que realice el cierre de sesión.php').'localhost'). ?> 3. session_destroy().php Creamos un archivo que se llame logout.DB_USER. Código completo 1 2 3 4 5 6 7 8 9 <?php // datos para la conexion a mysql define('DB_SERVER'. el nombre de la base de datos y la conexión a usar. 1 <?php 2 3 4 5 6 ?> session_start(). mysql_select_db(DB_NAME.'TU_CLAVE').1 2 3 $con = mysql_connect(DB_SERVER. $con = mysql_connect(DB_SERVER. logout. header('location: index. define('DB_USER'. define('DB_NAME'.DB_PASS). Luego mysql_select_db selecciona la base de datos usando 2 parámetros. 1 2 3 <?php session_start(). el cual contendrá el formulario de login y al mismo tiempo el mensaje de bienvenida o de error. o pasado por una cookie y la sentencia include_once es la usaremos para incluir el archivo de conexión a la base de datos que creamos anteriormente.php’) redireccionara al usuario al index.$password. session_start() crea una sesión para ser usada mediante una petición GET o POST.php.php 4.La funcion de session_destroy() destruye toda la información registrada de una variable de sesión. include_once "conexion. index.&$result) 1 2 3 4 5 6 7 8 9 10 11 { $sql = "SELECT * FROM usuarios WHERE usuario='$user' and password='$password $rec = mysql_query($sql). } if($count == 1) { . $result = $row. luego elheader(‘location: index.php". while($row = mysql_fetch_object($rec)) { $count++. Función verificar_login() Vamos a crear una función llamada verificar_login.php Ahora pasamos el archivo index. function verificar_login($user. $count = 0. esta se encargara de hacer una consulta a la base de datos para saber si el usuario ingresado es correcto o no. return 0.</ } } ?> <form action="" method="post" class="login"> . header("location:index.$result) == 1) { $_SESSION['userid'] = $result->idusuario. } else { echo '<div class="error">Su usuario es incorrecto.12 13 14 15 16 } } else { return 1.$_POST['password'].php"). 17 18 19 } Luego haremos una serie de condicionales que identificaran el momento en el boton de login es presionado y cuando este sea presionado llamaremos a la función verificar_login() pasandole los parámetros ingresados: 1 if(!isset($_SESSION['userid'])) 2 3 4 5 6 7 8 9 10 11 12 13 14 15 { if(isset($_POST['login'])) { if(verificar_login($_POST['user']. intente nuevamente. login { .'. registramos la variable de sesión y al mismo tiempo refrescamos la pagina index. Linea 1: La primera condición es para saber si existe o no ya la variable de sesión que se va a crear cuando el usuario se logee Linea 3: Si la primera condición no pasa.php">Logout</a>'. Linea 22: Si la variable de sesión ‘userid’ ya existe. haremos otra preguntando si el boton de login fue presionado Linea 5: Si el boton fue presionado llamamos a la función verificar_login() dentro de otra condición preguntando si resulta verdadero y le pasamos los valores ingresados como parámetros. echo '<a href="logout.16 17 18 19 20 <div><label>Username</label><input name="user" type="text" ></div> <div><label>Password</label><input name="password" type="password"></div> <div><input name="login" type="submit" value="login"></div> </form> <?php } else { 21 22 23 24 25 26 } ?> echo 'Su usuario ingreso correctamente. Linea 12: Si la función verificar_login() no pasa. que muestre el mensaje de saludo. form. Linea 7 y 8: Si el login fue correcto.php. Decoración opcional con CSS Esta parte es opcional ya que no influye en nada en el funcionamiento del sistema. font-family: sans-serif. que se muestre un mensaje de error. es unicamente decorativa: 1 *{ 2 3 4 5 } font-size: 14px. padding: 20px. float: right. form. border: 1px solid #C6C6C6. float: right.login div label { display: block. overflow: hidden. margin: 0 auto. width: 278px. } form. padding: 4px. } 19 form. font-weight: bold. padding: 4px 20px.login div input[type="text"]. border: 1px solid #DDDDDD.6 7 8 9 10 } background: none repeat scroll 0 0 #F1F1F1.login div input[type="submit"] { background: none repeat scroll 0 0 #DEDEDE.login div { margin-bottom: 15px. 11 12 13 14 15 16 17 18 form. float: left. 30 .login div input[type="password"] { 20 21 22 23 24 25 26 27 28 29 } } border: 1px solid #DCDCDC.error{ . form. line-height: 25px. include_once "conexion. . $sql = "SELECT * FROM usuarios WHERE usuario = '$user' and password = '$password $rec = mysql_query($sql). $count = 0.php". function verificar_login($user. $result = $row. text-align: center. font-weight: bold. 35 36 37 38 Código completo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 } while($row = mysql_fetch_object($rec)) { $count++. margin: 10px.&$result) { <?php session_start().31 32 33 34 } color: red.$password. 15 16 17 18 19 if($count == 1) { return 1. if(!isset($_SESSION['userid'])) { if(isset($_POST['login'])) { if(verificar_login($_POST['user']. } else 20 { 21 22 23 24 25 26 27 28 29 30 } } return 0.$_POST['password']. intente nuevamente.php").$result) == 1) { $_SESSION['userid'] = $result->idusuario. echo '<div class="error">Su usuario es incorrecto.</ . 31 32 33 34 35 36 37 38 39 ?> } } } else { header("location:index. font-family: sans-serif. float: left. margin: 0 auto. width: 278px. overflow: hidden.login { background: none repeat scroll 0 0 #F1F1F1.login div input[type="text"]. padding: 4px. 45 46 47 48 49 50 51 52 53 } } border: 1px solid #DDDDDD. } form. . padding: 20px. form.login div input[type="submit"] { 64 background: none repeat scroll 0 0 #DEDEDE. } form.login div { margin-bottom: 15px. 54 55 56 57 58 59 60 61 62 form.login div input[type="password"] { border: 1px solid #DCDCDC.login div label { display: block. float: right. form. line-height: 25px. } 63 form.40 41 42 43 44 <style type="text/css"> *{ font-size: 14px. 65 66 67 68 } border: 1px solid #C6C6C6. font-weight: bold. padding: 4px 20px. font-weight: bold. text-align: center.'.php">Logout</a>'.error{ 70 71 72 73 74 75 76 77 78 79 } color: red. 69 . } ?> . margin: 10px. echo '<a href="logout. float: right. </style> <form action="" method="post" class="login"> <div><label>Username</label><input name="user" type="text" ></div> <div><label>Password</label><input name="password" type="password"></div> <div><input name="login" type="submit" value="login"></div> 80 81 82 83 84 85 86 87 88 89 </form> <?php } else { echo 'Su usuario ingreso correctamente. 90 91 92 93 94 Y con esto terminamos el nuestro sistema de login en PHP. recuerda que puedes probar(usar admin/admin como user/pass) el resultado final en esta dirección o bajarte el código fuente desde aqui. .
Report "Como Hacer Un Sistema de Registro de Usuarios en PHP y MySQL"