+ Responder tema
Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 10 de 11

Tema: Como hacer un sencillo sistema de registro en PHP y MySQL

  1. #1
    Recien Nacido
    Fecha de ingreso
    09 feb, 11
    Ubicación
    Manizales, Colombia
    Mensajes
    5
    Gracias
    1
    Agradecido 10 veces en 3 Mensajes

    Cool Como hacer un sencillo sistema de registro en PHP y MySQL

    Sencillo/fácil sistema de registro de usuarios en PHP y MySQL con manejo de sesiones

    Esta vez quiero mostrarles como hacer para que tu web tenga un sistema de registro para tus usuarios, ya con esto puedes hacer muchas cosas como darles permisos específicos, restringir la entrada de visitantes a algunas partes de tu web, etc..

    Cabe aclarar que el script es bastante básico, para quienes empiezan en esto de la programación web.

    Requerimientos:
    Hosting (servidor local o web)
    PHP (ojala 5)
    1 base de datos MySQL

    Empecemos:
    Para el desarrollo de nuestro script necesitaremos la creación de 4 archivos .php:
    • conexion.php
    • registro.php
    • login.php
    • perfil.php


    IMPORTANTE: Tengan cuidado a la hora de copiar y pegar el contenido de los archivos, recuerden no dejar ningún espacio entre el inicio de linea y la expresión "<?php".

    1. Lo primero es crear una base de datos a la cual vamos a poner nombre "registro".
      En la cual vamos a generar la siguiente consulta SQL:
      Código:
      CREATE TABLE usuarios (
          id        int(5) not null auto_increment,
          fecha    int(10) not null,
          nick    varchar(20) not null,
          pass    varchar(32) not null,
          mail    varchar(40) not null,
          ip        varchar(15) not null,
          primary key (id),
          key (nick,pass)
      )
      Lo que estamos haciendo es crear una tabla en nuestra base de datos llamada "usuarios", en la cual almacenaremos los datos de nuestros usuarios.
    2. Luego empezaremos con la creación de nuestro primer archivo "conexion.php", el cual se encarga de conectar nuestro sistema con la base de datos que creamos en el punto anterior.
      Este archivo también tendrá algunas funciones php necesarias para el registro y el logueo de los usuarios.

      Código:
      <?php
          $nombre_server[1] = 'localhost'; //Servidor al cual nos vamos a conectar.
          $nombre_user[2] = 'root'; //Nombre del usuario de la base de datos.
          $password[3] = ''; //Contraseña de la base de datos
          $nombre_db[4] = 'registro'; //nombre de la base de datos
      
          $conectar = @mysql_connect($nombre_server[1],$nombre_user[2],$password[3]) or exit('Datos de conexion incorrectos.');
          mysql_select_db($nombre_db[4]) or exit('No existe la base de datos.');
          
      /*En este archivo también pondremos unas funciones necesarias para el registro y el login*/    
      session_start();
      
      /*Función que se encarga de eliminar codigo malicioso de las variables.*/
      function limpiar($var)
      {
      
          $var = trim($var);
          $var = htmlspecialchars($var);
          $var = str_replace(chr(160),'',$var);
          return $var;
      }
      
      /*Función que se encarga de validar el email de registro para que sea correcto.*/
      function validar_email($email){
          $mail_correcto = 0; 
          //compruebo unas cosas primeras 
          if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@"))
          { 
             if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," ")))
             {//miro si tiene caracter .
                if (substr_count($email,".")>= 1)
                {//obtengo la terminacion del dominio 
                   $term_dom = substr(strrchr ($email, '.'),1); 
                   //compruebo que la terminaci?n del dominio sea correcta 
                   if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) )
                   {//compruebo que lo de antes del dominio sea correcto 
                      $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1); 
                      $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1); 
                      if ($caracter_ult != "@" && $caracter_ult != ".")
                      { 
                         $mail_correcto = 1; 
                      }
                   }
                }
             }
          }
          if ($mail_correcto) 
             return 1;
          else 
             return 0;
      }
      
      /*Funcion que se encarga de validar si el usuario esta registrado en el sistema*/
      function user_login()
      {
          if(!$_SESSION['id'])
          {
              exit ("Solo usuarios registrados, <a href='javascript:history.back(-1)'>Volver</a>");
          }
      }
      ?>
    3. Ya tenemos nuestro archivo de conexión con la base de datos entonces continuamos con el archivo "registro.php" que como su nombre lo indica se encargara de almacenar los usuarios en la base de datos.

      Código:
      <?php
      include("conexion.php");
      //Sistema de registro --HiperAcme.net--
      
      if(isset($_POST['registro']))//Vallidamos que el formulario fue enviado
      {    /*Validamos que todos los campos esten llenos correctamente*/
          if(($_POST['nick'] != '') && ($_POST['mail'] != '') && ($_POST['pass'] != '') && ($_POST['conf_pass'] != ''))
          {
              if($_POST['pass'] != $_POST['conf_pass'])
              {
                  echo '<br />Las contrase&ntilde;as no coinciden';
              }
              else
              {
                  $date= time(); 
                  $nick= limpiar($_POST['nick']);
                  $mail= limpiar($_POST['mail']);
                  $pass= md5(md5(limpiar($_POST['pass'])));
                  $ipuser= $_SERVER['REMOTE_ADDR'];            
      
                  $b_user= mysql_query("SELECT nick FROM usuarios WHERE nick='$nick'");
                  if($user=@mysql_fetch_array($b_user))
                  {
                      echo '<br />El nombre de usuario o el email ya esta registrado.';
                      mysql_free_result($b_user); //liberamos la memoria del query a la db
                  }
                  else
                  {
                      if(validar_email($_POST['mail']))
                      {
                          mysql_query("INSERT INTO usuarios (fecha,nick,mail,pass,ip) values ('$date','$nick','$mail','$pass','$ipuser')");
                          echo '<br />Te has registrado Correctamente, ahora podras iniciar sesi&oacute;n como usuario registrado.';
                      }
                      else 
                      {
                          echo '<br />El email no es valido.';
                      }
                  }
              }
          }
          else
          {
              echo '<br />Deberas llenar todos los campos.';
          }
      }
      ?>
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
      <html>
      <head>
      <meta http-equiv="content-type" content="text/html; charset=utf-8" />
      <title>Registro de Usuarios</title>
      </head>
      <body>
      <h2>Sistema de Registro</h2>
      <div align="center">
          <form name="registrar" action="registro.php" method="post" onsubmit="return validar()" />
              <dt><label>Nick:</label></dt>
              <input type='text' name='nick' /><br /><br />
      
              <dt><label>E-mail:</label></dt>
              <input type='text' name='mail' /><br /><br />
      
              <dt><label>Contraseña:</label></dt>
              <input type="password" name='pass' /><br /><br />
      
              <dt><label>Confirmar Contraseña:</label></dt>
              <input type="password" name='conf_pass' /><br /><br /><br /><br />
              
              <input type="submit" name="registro" style="width:100px;" tabindex="6" value="Registrar" />
              <input type="reset" name="Limpiar" style="width:100px;" tabindex="6" value="Limpiar" />
          </form>
          <a href="login.php">Identificarse</a>
      </div>    
      </body>
      </html>
      Hasta aquí nuestro sistema de registro ya funciona y va perfectamente.
    4. Ahora procedemos a crear el archivo de conexión de los usuarios , el "login.php".
      Este archivos es el encargado de guardar la sesión se los usuarios para que el sistema los reconozca como usuarios registrados y logueados.

      Código:
      <?php
      include("conexion.php");
      
      if(isset($_POST['login']))
      {
          $nick= $_POST['nick'];
          $pass= md5(md5($_POST['pass']));
          $b_user=mysql_query("SELECT * FROM usuarios WHERE nick='$nick'");    
          $ses = @mysql_fetch_assoc($b_user) ;
          if(@mysql_num_rows($b_user))
          {
              if($ses['pass'] == $pass)
              {
                  $_SESSION['id']=        $ses["id"];
                  $_SESSION['fecha']=    $ses["fecha"];
                  $_SESSION['nick']=    $ses["nick"];
                  $_SESSION['mail']=    $ses["mail"];
                  $_SESSION['ip']=        $ses["ip"];
              }
              else
              {
                  echo 'Nombre de usuario o Contrase&ntilde;a incorrecta.';
              }
          }
          else
          {
              echo 'Nombre de Usuario o contrase&ntilde;a incorrecta.';
          }
      }
          
      if(isset($_GET['modo']) == 'desconectar')
      {
          session_destroy();
          echo '<meta http-equiv="Refresh" content="2;url=login.php"> ';
          exit ('Te has desconectado del sistema.');
      }
          
      if(isset($_SESSION['id']))
      {
          echo 'Bienvenido <b>' . $_SESSION['nick'] . '</b><br /><br />';
          echo '<b>Fecha registro:</b> ' . date("d-m-Y - H:i", $_SESSION['fecha']) . '<br />';
          echo '<b>Email:</b> ' . $_SESSION['mail'] . '<br />';
          echo '<b>IP:</b> ' . $_SESSION['ip'] . '<br /><br />';
          echo '<a href="login.php?modo=desconectar">Salir</a>';
      }
      else
      {
      ?>
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
      <html>
      <head>
      <meta http-equiv="content-type" content="text/html; charset=utf-8" />
      <title>Login</title>
      </head>
      <body>
      <h2>Conetarse -  Desconectarse</h2>
      <div align="center">
          <form name="login_user" action="login.php" method="post" />
              <dt><label>Nick:</label></dt>
              <input type='text' name='nick' /><br /><br />
              <dt><label>Contraseña:</label></dt>
              <input type="password" name='pass' /><br /><br />
              
              <input type="submit" name="login" style="width:100px;" tabindex="6" value="Entrar" />
              <input type="reset" name="Limpiar" style="width:100px;" tabindex="6" value="Limpiar" />
          </form>
          <a href="registro.php">Registrarse</a>
      </div>
      <?php
      }
      ?>
      </body>
      </html>
      Aquí no solo tenemos el encargado de iniciar la sesión de los usuarios, sino que también se cumplen dos funciones mas:
      • Mostrar algunas opciones del perfil del usuario luego de verificar que esta logueado.
      • Terminar la sesión de usuario [Desconectarse].

      Que podrán verlas funcionando a la hora de implementar el código o en el ejemplo funcional que dejare al final.

      Hasta este momento, ya tienes todo el registro el logueo de usuarios totalmente funcional, así que hasta aquí ya tienes tenemos completo nuestro sistema de información.
    5. El ultimo de nuestros archivos, simplemente es un archivo de ejemplo para mostrar como proteger nuestra paginas de invitados que solo sena accesibles para usuarios registrados, en este caso crearemos el archivo "perfil.php".

      Código:
      <?php
      include("conexion.php");
      user_login();
          echo '<h2>Pagina solo para usuarios registrados</h2><br />';
          echo '<b>Nombre de Usuario:</b> ' . $_SESSION['nick'] . '<br />';
          echo '<b>Fecha de registro:</b> ' . date("d-m-Y - H:i", $_SESSION['fecha']) . '<br />';
          echo '<b>Email de registro:</b> ' . $_SESSION['mail'] . '<br />';
          echo '<b>IP:</b> ' . $_SESSION['ip'] . '<br /><br />';
          echo '<a href="login.php?modo=desconectar">Salir</a>';
      ?>
      La función user_login() (que pueden encontrar en el archivo conexion.php) es la encargada de verificar que el usuario este logueado, de lo contrario le mostrara un aviso diciéndole que no lo esta y no le dejara ver el contenido de la pagina que esta visitando.
      Así que las paginas que quieran proteger deberán agregarle la linea:

      Código:
      user_login();
      Al principio luego de incluir el archivo de conexión.


    Y luego de estos sencillos pasos tenemos nuestro sistema de registro de usuarios funcionando.

    Cualquier duda me la pueden preguntar y estaré dispuesto a ayudarles, el archivo con todo el script lo pueden descargar desde aquí: Descarga Script Completo

    Y lo pueden ver funcionando en Login

  2. The Following 7 Users Say Thank You to Alorse For This Useful Post:

    exactlimon (08/03/2011), Garbage (15/02/2011), jabenitez (03/03/2011), juanes79 (03/03/2011), Ksanchez (29/12/2011), marah (06/08/2011), viba (05/08/2011)

  3. #2
    Recien Nacido
    Fecha de ingreso
    03 mar, 11
    Mensajes
    1
    Gracias
    1
    Agradecido 0 veces en 0 Mensajes

    Predeterminado

    Te felicito por este post explicando cómo realizar una sesión PHP y un registro de usuarios.

    Es uno de los artículos mejor explicados que he podido encontrar, y con código comprensible y sin errores.

    Gracias por tu aporte!

  4. #3
    Dragonauta en Proceso
    Fecha de ingreso
    09 sep, 10
    Ubicación
    Manizales
    Mensajes
    64
    Gracias
    18
    Agradecido 9 veces en 8 Mensajes

    Predeterminado

    excelente aporte...
    disculpen tengo una duda, en mi pc tengo ubuntu 10.04 y resulta que para visualizar lo que hago con php y mysql utilizo mozilla firefox4 desde el principio he tenido problemas para que me corra bien lo que hago, en muchas ocasiones no me coge los scripts, no hace buena conexion en la base de datos, no me muestra errores... para solucionar este problema monte una maquina virtual con windows xp en la cual instale exactamente lo mismo firefox4 y cogi lo que habia hecho en ubuntu y lo pase tal cual a windows xp y en este si me mostro los errores que tenia y todo...
    mi duda es cual es el problema si es el sistema operativo, o el navegador?

    gracias espero me puedan ayudar

  5. #4
    Recien Nacido
    Fecha de ingreso
    09 feb, 11
    Ubicación
    Manizales, Colombia
    Mensajes
    5
    Gracias
    1
    Agradecido 10 veces en 3 Mensajes

    Predeterminado

    A mi parecer no es ninguno de los 2, ya que ubuntu es mil veces mejor que windows para correr este tipo de aplicaciones, seguramente tienes mas configurado el servidor local, (cual estas usando, xamp?) yo de ti volvería a linux y miraría si el problema esta en el php.ini o volvería a reinstalar el servidor.

  6. #5
    Dragonauta en Proceso
    Fecha de ingreso
    09 sep, 10
    Ubicación
    Manizales
    Mensajes
    64
    Gracias
    18
    Agradecido 9 veces en 8 Mensajes

    Predeterminado

    si utilizo xampp, gracias mirare a ver que tengo mal configurado solo que ahi días que me funciona full y ahi dias que no y justo para cuando tenia que entregar un proyecto no me funciono y la unica solucion que vi a si de ligero fue probarlo en un windows y en el si me corrio a full
    otra cosa que me pasa es que a veces cuando estoy en linux que lo corro en chrome y no me funciona nada, como si estuviera el servicio apagado pero lo pruebo en frefox u opera si me funciona... por eso a veces no se ni que es si navegador o SO

  7. #6
    Recien Nacido
    Fecha de ingreso
    05 ago, 11
    Mensajes
    1
    Gracias
    1
    Agradecido 0 veces en 0 Mensajes

    Predeterminado

    Excelente. Muchas gracias por compartirlo.

  8. #7
    Dragonauta Oficial Avatar de Shell Root
    Fecha de ingreso
    09 ago, 09
    Ubicación
    iNET
    Mensajes
    997
    Gracias
    3
    Agradecido 454 veces en 217 Mensajes

    Predeterminado

    No creo que función user_login sea la mejor manera de validar la sesión de usuario. Yo uso tokens!
    <script>alert('Pwned!');</script>
    .
    .
    .
    .

    "Una vulnerabilidad es tan limitada como tu quieras que sea"
    "Nuestros pensamientos más importantes, son los que contradicen nuestros sentimientos..."
    "A veces podemos pasarnos años sin vivir en absoluto, y de pronto toda nuestra vida se concentra en un solo instante..."
    "La vida no se mide por los momentos que respiras, sino por los momentos que te dejan sin aliento...
    "


  9. #8
    Recien Nacido
    Fecha de ingreso
    21 dic, 11
    Mensajes
    1
    Gracias
    0
    Agradecido 0 veces en 0 Mensajes

    Predeterminado Consulta.......... recien nacido

    Hola soy demaciado nuevo en esto, tu explicacion perfecta recien nacido, ahora mi consulta es como seria para que el usuario ya registrado entre a una pagina personal de el. te esplico tengo un pequeño comercio que en cada reparacion ó servicio quisiera darles una pagina de registro para que vean lo que se realizo vencimiento, etc. Gracias

  10. #9
    Dragonauta Avatar de Ksanchez
    Fecha de ingreso
    04 feb, 10
    Mensajes
    199
    Gracias
    61
    Agradecido 38 veces en 23 Mensajes

    Predeterminado

    Muy buen material, te felicito por el aporte. Lo probe en Windows y me funciona a la perfeccion pero en linux no :s estoy verificando cual puede ser el problema.

  11. #10
    Recien Nacido
    Fecha de ingreso
    26 mar, 12
    Mensajes
    1
    Gracias
    0
    Agradecido 0 veces en 0 Mensajes

    Predeterminado

    Tu script me cayo como anillo al dedo para un proyecto que estoy haciendo... Pero tengo un pequeño problema ya que trato de hacer que cada usuario registrado pueda actualizar sus datos una vez dentro de su panel donde los pueden visualizar... He intentado de distintas maneras hacer el script con el update usuarios set valor1='$valor1' where [condicion] sin lograr resultado alguno

    Podrias auxiliarme para lograr esto? Saludos

+ Responder tema
Página 1 de 2 12 ÚltimoÚltimo

Visitantes encuentran esta página buscando por:

crear formulario registro php mysql

manejo de sesiones en php y mysql

sistema de registro verificacion email php

como obtener la fecha del sistema en php y guardarlo

formulario de registro php mysql

formulario de registro php

como hacer un formulario de registro en php

sistema de logueo de usuarios en php &amp; mysql

formulario registro php mysql

sistema de registro php

sistema de inscripcion en php

registro de computadoras en php y mysql

sistema de usuario php mysql

sistema de registro en php full

sistema de registro para mi web

formulario de registro en php

sistema de usuarios en php y mysql

sistema de inscripciones php

sistema de inscripciones en php

como hacer un sistema de inscripcion en php

sistema de registro para tu web

sistema de registro de estudiantes

codigo para registrar en mysql los visitantes a mi pagina

descargar sistema en php de registros y busqueda

formulario de registro de estudiantes php

Etiquetas para este tema

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes