Tu web de informática

Sistema de registro de usuarios PHP

Hola, en este tutorial les enseñaré 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 código:

<?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 contraseña, que normalmente no hay')or die ('Ha fallado la conexión con el servidor: '.mysql_error());
mysql_select_db('Aqui la base de datos, que es este caso es usuarios')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
function formRegistro(){
?>
//esto es lo que que se va a ver, ese un formulario pequeño
<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 contraseñas?
      if($password!=$password2) {
         echo "Las contraseñas no coinciden";
         formRegistro();
      }else{
         // Comprobamos si el nombre de usuario o la cuenta de correo ya existían
         $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) {
            echo "El nombre de usuario o la cuenta de correo estan ya en uso";
            formRegistro();
         }else{
            $query = 'INSERT INTO usuarios (usuario, password, email, fecha)
            VALUES (\''.$username.'\',\''.$password.'\',\''.$email.'\',\''.date("Y-m-d").'\')';
            mysql_query($query) or die(mysql_error());
            echo 'El usuario '.$username.' ha sido registrado de manera satisfactoria.<br />';
            echo 'Ahora puede entrar ingresando su usuario y su password<br />';
            ?>
                                 //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','Contraseña')or die ('Ha fallado la conexión: '.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'];
         echo 'Has sido logueado correctamente '.$_SESSION['k_username'].' <p>';
         echo '<a href="index.php">Index</a></p>';
         //Elimina el siguiente comentario si quieres que re-dirigir automáticamente a index.php
         /*Ingreso exitoso, ahora sera dirigido a la pagina principal.
         <SCRIPT LANGUAGE="javascript">
         location.href = "index.php";
         </SCRIPT>*/
      }else{
         echo 'Password incorrecto';
      }
   }else{
      echo 'Usuario no existente en la base de datos';
   }
   mysql_free_result($result);
}else{
   echo 'Debe especificar un usuario y password';
}
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 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>';
}
?>

Bueno eso es todo, espero que les sirva, y hasta la próxima....


  • Autor: Chochex

Si tienes alguna pregunta que hacernos tienes el foro a tu disposición.

Volver a crear webs>>


Creada el 08/01/11 21:19
Copyright © - Todos los derechos reservados - Página creada por Juanma