Está en la página 1de 4

Sistema de registro de usuarios PHP

Hola, en este tutorial les ensear como crear un sistema de usuarios para tu web en php
Bueno lo primero que vamos ha hacer es crear una BD (base de datos) que se llame "usuarios" En esa base vamos a a crear una tabla con el siguiente codigo

CREATE TABLE `usuarios` ( `id` int(11) NOT NULL auto_increment, `usuario` varchar(20) NOT NULL, `password` varchar(10) NOT NULL, `descripcion` text character set utf8 collate utf8_spanish_ci, `email` varchar(45) character set utf8 collate utf8_spanish_ci default NULL, `fecha` date NOT NULL, PRIMARY KEY (`id`) )
Si no saben como, nada mas lo copian y lo pegan en el bloc de notas y lo guardan como txt, o como sql, y en el admin de sql, se van a importar, luego donde dice seleccionar y se les abre una ventana donde van a buscar el archivo que crearon antes, le dan continuar y ya tendremos una tabla donde se va a registrar los usuarios Ya tenemos la BD, y la tabla, ahora vamos a crear un archivo que se va a llamar registro.php Este archivo va a contener el siguiente cdigo:

<?php session_start();

//datos para establecer la conexion con la base de mysql.


mysql_connect('Aqui el servidor, normalmente localhost','Aqui va tu usuario, normalmente root','Aqui tu contrasea, que normalmente no hay')or die ('Ha fallado la conexin con el servidor: '.mysql_error());

Aqui la base de datos, que es este caso es usuarios')or die ('Error al seleccionar
mysql_select_db(' la Base de Datos: '.mysql_error()); function formRegistro(){ ?>

//esto es lo que que se va a ver, ese un formulario pequeo


<form action="registro.php" method="post"> Usuario: <input type="text" name="username" size="30" maxlength="20" /><br /> Password: <input type="password" name="password" size="40" maxlength="10" /> Confirma: <input type="password" name="password2" size="40" maxlength="10" /><br /> Email: <input type="text" name="email" size="20" maxlength="40" /><br /> <input type="submit" value="Registrar" /> </form> <?php }

// verificamos si se han enviado ya las variables necesarias.

if (isset($_POST["username"])) { $username = $_POST["username"]; $password = $_POST["password"]; $password2 = $_POST["password2"]; $email = $_POST["email"];

// Hay campos en blanco


if($username==NULL|$password==NULL|$password2==NULL|$email==NULL) { echo "un campo est vacio."; formRegistro(); }else{

// Coinciden las contraseas?


if($password!=$password2) { echo "Las contraseas no coinciden"; formRegistro(); }else{

// Comprobamos si el nombre de usuario o la cuenta de correo ya existan


$checkuser = mysql_query("SELECT usuario FROM usuarios WHERE usuario='$username'"); $username_exist = mysql_num_rows($checkuser); $checkemail = mysql_query("SELECT email FROM usuarios WHERE email='$email'"); $email_exist = mysql_num_rows($checkemail); if ($email_exist>0|$username_exist>0) {

El nombre de usuario o la cuenta de correo estan ya en uso";


echo " formRegistro(); }else{ $query = 'INSERT INTO usuarios (usuario, password, email, fecha) VALUES (\''.$username.'\',\''.$password.'\',\''.$email.'\',\''.date("Y-md").'\')'; mysql_query($query) or die(mysql_error());

El usuario '.$username.' ha sido registrado de manera satisfactoria.<br />'; echo 'Ahora puede entrar ingresando su usuario y su password<br />';
echo ' ?>

//Un formulario de login, que aparesera despues de el registro fue exitoso


<FORM ACTION="comprobar.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> <?php } } } }else{ formRegistro(); }

?>
Bueno ya creamos un archivo para registro, ahora vamos a crear uno para login (loguearse, identificarse) Este archivo va a llevar el nombre de "login.php" y llevara el siguiente codigo:

<form action="comprobar.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>
Una vez creado este archivo, hay que crear uno que se llame "comprobar.php" Este llevara este codigo:

<?php session_start();

//datos para establecer la conexion con la base de mysql. mysql_connect('Tu servidor','Tu usuario','Contrasea')or die ('Ha fallado la conexin: '.mysql_error()); mysql_select_db('La base de datos, que en este caso seria usuarios')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
function quitar($mensaje) { $nopermitidos = array("'",'\\','<','>',"\""); $mensaje = str_replace($nopermitidos, "", $mensaje); return $mensaje; } if(trim($HTTP_POST_VARS["usuario"]) != "" && trim($HTTP_POST_VARS["password"]) != "") {

// Puedes utilizar la funcion para eliminar algun caracter en especifico


//$usuario = strtolower(quitar($HTTP_POST_VARS["usuario"])); //$password = $HTTP_POST_VARS["password"];

// o puedes convertir los a su entidad HTML aplicable con htmlentities


$usuario = strtolower(htmlentities($HTTP_POST_VARS["usuario"], ENT_QUOTES)); $password = $HTTP_POST_VARS["password"]; $result = mysql_query('SELECT password, usuario FROM usuarios WHERE usuario=\''.$usuario.'\''); if($row = mysql_fetch_array($result)){ if($row["password"] == $password){ $_SESSION["k_username"] = $row['usuario'];

Has sido logueado correctamente '.$_SESSION['k_username'].' <p>';


echo ' echo '<a href="index.php">Index</a></p>';

//Elimina el siguiente comentario

si quieres que re-dirigir automticamente a index.php /*Ingreso exitoso, ahora sera dirigido a la pagina principal.
<SCRIPT LANGUAGE="javascript"> location.href = "index.php"; </SCRIPT>*/ }else{ echo ' } }else{ echo '

Password incorrecto';

Usuario no existente en la base de datos';


} mysql_free_result($result); }else{

Debe especificar un usuario y password';


echo ' } mysql_close(); ?>
Ahora crearemos un archivo con el el nombre de logout Este archivo se llamara logout.php y llevara el siguiente codigo:

<?php session_start();

// Borramos toda la sesion


session_destroy(); echo 'Ha terminado la session <p><a href="index.php">index</a></p>'; ?> <SCRIPT LANGUAGE="javascript"> location.href = "index.php"; </SCRIPT>
Y por ultimo crearemos el index (La pagina de inicio) Este archivo llevara el nombre de index.php u contendr el siguiente cdigo: <?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>'; } ?>