Regresar a la página www.ComoCrearTuWeb.com
Página 2 de 12 PrimerPrimer 123456 ... ÚltimoÚltimo
Resultados 16 al 30 de 166

Tema: Registro de usuarios desde cero.

  1. #16
    Administrador CCTW Webmaster de CCTWHabitante Avatar de Jorgens_CCTW
    Fecha de Ingreso
    30 ene, 11
    Ubicación
    Cartagena, Murcia, España.
    Mensajes
    1,188
    Poder de Reputación
    10
    [TUTORIAL :: SISTEMA DE REGISTRO DE USUARIOS :: PARTE 5]

    El siguiente paso será crear una serie de archivos. Uno para el login, otro para des-loguearse, uno más para el formulario de registro, etc, etc. Todos ellos tienen algo en común y es, que han de conectar con la base de datos. Es por eso que se suele crear un archivo aparte con solamente esos datos de conexión. Una vez lo tengamos, nos basta con insertar ese archivo dentro de cada uno de los restantes.

    Este archivo con los datos de conexión lo llamaremos configuracion.php y en él añadiremos las siguientes líneas:

    Nombre del archivo: configuracion.php
    Código PHP:
    <?php

    // En esta línea siempre se coloca, casi siempre, localhost
    $dbhost="localhost";

    // Nombre del usuario de la base de datos. El que definiste en el cPanel
    $dbuser="nombrehost_administrador"

    // La contraseña para la base de datos
    $dbpass="esunsecreto";

    // Nombre de la base de datos
    $db="nombrehost_reguser";

    //nombre de la tabla de usuarios
    $tabla="usuarios"

    // Hacemos la conexión con la base de datos y la seleccionamos
    mysql_connect("$dbhost","$dbuser","$dbpass");
    mysql_select_db("$db");

    // Abrimos la sesión
    session_start();

    ?>
    Con esto nos ahorramos definir las claves una y otra vez, así como tener que abrir la conexión y la sesión. Más adelante veremos cómo se añade este código a cada uno de los demás archivos.

    Como ves, la útima línea abre una sesión. Las sesiones son guardadas en el servidor y no en el ordenador del usuario como en el caso de las cookies. De este modo el sistema seguirá funcionando aún cuando el usuario tiene desactivadas las cookies. Usaremos por tanto sesiones en lugar de cookies para pasar valores de un archivo a otro. Es por eso que se empiezan todos los archivos llamando a esa sesión consession_start();

  2. #17
    Administrador CCTW Webmaster de CCTWHabitante Avatar de Jorgens_CCTW
    Fecha de Ingreso
    30 ene, 11
    Ubicación
    Cartagena, Murcia, España.
    Mensajes
    1,188
    Poder de Reputación
    10
    [TUTORIAL :: SISTEMA DE REGISTRO DE USUARIOS :: PARTE 6]

    Bien, lo primero que se nos ocurre que debe encontrar un usuario para acceder al registro es una página en la que poder añadir sus datos de registro, nombre de nick, email y contraseña, no? Vamos a crear ese archivo que llamaremos formulario.php

    Empezamos el archivo añadiendo un include. Este comando añade el contenido del archivo indicado. En nuestro caso añadimos todo el contenido del archivo configuracion.php, que posee los datos necesarios para la conexión con la base de datos.

    Después, creamos el formulario donde el usuario puede añadir sus datos de registro. Si tienes dudas con esto repasa las lecciones de Formularios de CCTW que están en el Curso de Php y MySQL, oki?

    Posteriormente añadimos un enlace a la página, para dar la opción al visitante de regresar a la página de logeo, que llamaremos login.php y que crearemos más tarde.

    Nombre del archivo: formulario.php

    Código PHP:
    <?php

    //incluimos configuracion.php con los datos de conexión
    include('configuracion.php'); 

    //Creamos el formulario de registro
    echo '
        <form action="registro.php" method="POST" />
            Nick:       <input type="text"     name="nick"     size="25" /><br />
            Contraseña: <input type="password" name="password" size="40" /><br />
            E-mail:     <input type="text"     name="email"    size="60" /><br />
                        <input type="submit"   name="submit"   value="Registrar" />
        </form>
         '
    ;

    // Damos la opción de volver a la página de login si no desea registrarse
    echo '<br /><a href="login.php">Login</a>'

    ?>
    Los datos recogidos por el formulario irán a parar al archivo registro.php en cuanto se haga clic en "Registrar". Vamos pues a crear ese archivo de registro.

  3. #18
    Administrador CCTW Webmaster de CCTWHabitante Avatar de Jorgens_CCTW
    Fecha de Ingreso
    30 ene, 11
    Ubicación
    Cartagena, Murcia, España.
    Mensajes
    1,188
    Poder de Reputación
    10
    [TUTORIAL :: SISTEMA DE REGISTRO DE USUARIOS :: PARTE 7]

    Como siempre, añadimos el include con los datos del archivo configuracion.php. Además, verificamos que no se han dejado en blanco los datos del formulario con el if. En caso de estar alguno en blanco, regresamos automáticamente a la página formulario.php utilizando la línea que empieza por Header.

    Si los campos no están en blanco, los añadimos en la base de datos con la línea que empieza por mysql_query y mostramos al visitante el mensaje "Usuario registrado con éxito".

    Además, colocamos un enlace a la página de login, por si tras este registro quiere logearse.

    Nombre del archivo: registro.php

    Código PHP:
    <?php

    include('configuracion.php'); //incluimos configuracion.php que contiene los datos de la conexión a la db

    //Comprobamos que los campos nick, y password se han rellenado en el form de reg.php, sino volvemos al form
    if ( ($_POST[nick] == '') or ($_POST[password] == '') )
        {
        
    Header("Location: formulario.php"); //enviamos al form de registro que esta en reg.php
        
    }
    else
        {
        
    //introducimos el nuevo registro en la tabla users
        
    mysql_query("INSERT INTO $tabla (nick,password,email) values ('$_POST[nick]','$_POST[password]','$_POST[email]') ");
        echo 
    'Usuario registrado con éxito';
        }
    echo 
    '<br /><a href="login.php">Quieres logearte?</a>'// damos la opcion de logerase

    ?>
    Una vez registrado, el usuario querrá logearse de modo que vamos a crear el archivo login.php ahora mismo.

  4. #19
    Administrador CCTW Webmaster de CCTWHabitante Avatar de Jorgens_CCTW
    Fecha de Ingreso
    30 ene, 11
    Ubicación
    Cartagena, Murcia, España.
    Mensajes
    1,188
    Poder de Reputación
    10
    [TUTORIAL :: SISTEMA DE REGISTRO DE USUARIOS :: PARTE 7]

    En este archivo de logeo llamado login.php, añadimos, como siempre, el archivo configuracion.php con los datos de conexión con la base de datos. Después con el if, miramos si existe sesión abierta ya. Si no existe (es decir, si no está logeado) se ejecuta lo que hay en el primer corchete, un formulario para introducir sus datos de login. Si existe la sesión 8significaría que ya está logeado) lo del segundo, un mensaje de bienvenida y la opción para deslogearse.

    Nombre del archivo: login.php

    Código PHP:
    <?php

    include('configuracion.php');

    if (!isset(
    $_SESSION[usuario]) )  // Esto es, si no está ya logeado
        // Si aún no está logeado le mostramos el formulario de login
        
    {
        
    // Formulario para recoger los datos de login y enviarlos a chequeo.php, donde miramos que sean correctos
        
    echo '
        <form action="chequeo.php" method="POST">
        Nick: <input type="text" name="nick" size="25"><br>
        Password: <input type="password" name="password" size="40" ><br>
        <input type="submit" name="submit" value="Login"></form>
        '
    ;
        
    // le damos la opcion de registrarse si no lo está
        
    echo '<br /><a href="formulario.php">Registro</a>'
        }
    else   
    // Esto es, si está ya logeado
        
    {
        
    // Si está logeado indicamos que no es necesario logearse de nuevo. Le mostramos el nick y la opción de deslogearse
        
    echo 'Bienvenido a la web <b>'.$_SESSION[usuario].'</b>'// Mensaje de bienvenida
        
    echo '<br /><a href=logout.php>Salir</a>'//link para deslogearse, iría a logout.php
        
    }

    ?>
    Casi al final del archivo hemos puesto la opción de deslogearse, que veremos más adelante. Pero ahora vamos a ver cuál sería el contenido del archivo chequeo.php que es el que va a recibir los valores del formulario de este archivo visto ahora mismo.

  5. #20
    Administrador CCTW Webmaster de CCTWHabitante Avatar de Jorgens_CCTW
    Fecha de Ingreso
    30 ene, 11
    Ubicación
    Cartagena, Murcia, España.
    Mensajes
    1,188
    Poder de Reputación
    10
    [TUTORIAL :: SISTEMA DE REGISTRO DE USUARIOS :: PARTE 8]

    Vemos como desde el archivo anterior, enviamos los datos introducidos en el formulario de login al archivo chequeo.php. El objeto de ese archivo es comprobar que realmente existe ese usuario y que la contraseña es la correcta.

    Si todo es correcto creamos variables de sesión y le damos los valores del usuario. Además, enviamos al visitante automáticamente al archivo login.php donde se chequeaba si existía ya sesión abierta para dar unmensaje de bienvenida.

    Si no todo es correcto, indicamos que hay algún dato incorrecto y mostramos un enlace al visitante para que pueda regresar a la página de logeo, login.php.

    Nombre del archivo: chequeo.php

    Código PHP:
    <?php

    include('configuracion.php');

    // Chequeamos que el usuario existe y que la contraseña es correcta
    $usuarios=mysql_query("SELECT * FROM $tabla WHERE nick='$_POST[nick]' and password='$_POST[password]' ");
    if(
    $datosdelusuario mysql_fetch_array($usuarios)) //si existe comenzamos con la sesion, si no, al index
        
    {
        
    session_register("usuario"); //registramos la variable usuario que contendrá el nick del user
        
    session_register("idusuario"); //registramos la variable idusuario que contendrá la id del user
        
    $_SESSION[usuario] = $datosdelusuario["nick"]; //damos el nick a la variable usuario
        
    $_SESSION[idusuario] = $datosdelusuario["id"]; //damos la id del user a la variable idusuario
        
    Header("Location: login.php"); //volvemos al login
        
    }
    else
        {
        echo 
    'Nick y/o Password incorrectos';
        echo 
    '<br /><a href="login.php">Logearse</a>';
        }

    ?>

  6. #21
    Administrador CCTW Webmaster de CCTWHabitante Avatar de Jorgens_CCTW
    Fecha de Ingreso
    30 ene, 11
    Ubicación
    Cartagena, Murcia, España.
    Mensajes
    1,188
    Poder de Reputación
    10
    [TUTORIAL :: SISTEMA DE REGISTRO DE USUARIOS :: PARTE 9]

    Para deslogearse, para dejar de estar logeado, hemos puesto antes un enlace a un archivo llamado logout.php

    Ese archivo simplemente destruye la sesión con lo que, se deja de estar logeado. El archivo contiene como siempre el include con los datos de configuracion.php, además de la orden de destruir la sesión. Una vez destruida se envía al visitante a la página login.php mediante la redirección automática usando el comando Header.

    Nombre del archivo: logout.php

    Código PHP:
    <?php

    include('configuracion.php');

    session_destroy(); // Con esto se destruye la sesión y queda el usuario deslogueado
    Header("Location: login.php"); // Se envia automáticamente a la página login.php

    ?>

  7. #22
    Esto empieza a ser un vicio... Habitante Avatar de lantiga
    Fecha de Ingreso
    23 feb, 11
    Mensajes
    905
    Poder de Reputación
    14
    Jorge tengo un par de dudas con el tuto parte 6:

    1. Al hacer una llamada de inclusión no seria mejor usar el include_once para evitar que las peticiones al sesión y a la base de datos se repitan de pueda haber un error grave? recuerda que en el archivo de configuración los abres pero no los cierras y si por un casual se incluyese esto dos veces seria poco recomendable e incluso inseguro.


    2. Por otro lado creo que seria interesante crear contantes para las urls del form y asi evitar posible indexación de estas urls en el sitemap.(salvo que lo quieras asi ,claro)
    Suscribete a Los videotutoriales de Lantiga y podre hacer vídeos más largos y con mejor calidad.

  8. #23
    Administrador CCTW Webmaster de CCTWHabitante Avatar de Jorgens_CCTW
    Fecha de Ingreso
    30 ene, 11
    Ubicación
    Cartagena, Murcia, España.
    Mensajes
    1,188
    Poder de Reputación
    10
    [TUTORIAL :: SISTEMA DE REGISTRO DE USUARIOS :: PARTE 10]

    Esto es básicamente, un sitema de registro de usuarios bien bien sencillo. De hecho es malísimo de sencillo que es, je je je. Funcionar funciona, pero tiene una serie de inconvenientes que ahora iremos detectando y reparando. El objetivo era principalmente ver cómo hacerlo funcionar y ahora, le pasaremos la prueba de fuego para detectarle errores y mejoras que hagan de este sistema, nuestro sistema preferido de registro.

    Te animas? A mi se me ocurren ya decenas de mejoras, pero las comento en otra respuesta. Permanece atento y, participa conmigo plis!

  9. #24
    Esto empieza a ser un vicio... Habitante Avatar de lantiga
    Fecha de Ingreso
    23 feb, 11
    Mensajes
    905
    Poder de Reputación
    14
    El tuto 7 creo que el archivo es inseguro; te pueden pasar un para con mala intención y robarte incluso la pagina hay que mejorar ese codigo.
    Suscribete a Los videotutoriales de Lantiga y podre hacer vídeos más largos y con mejor calidad.

  10. #25
    Administrador CCTW Webmaster de CCTWHabitante Avatar de Jorgens_CCTW
    Fecha de Ingreso
    30 ene, 11
    Ubicación
    Cartagena, Murcia, España.
    Mensajes
    1,188
    Poder de Reputación
    10
    Gracias Lantiga por tus comentarios, de veras.

    1. Al hacer una llamada de inclusión no seria mejor usar el include_once para evitar que las peticiones al sesión y a la base de datos se repitan de pueda haber un error grave? recuerda que en el archivo de configuración los abres pero no los cierras y si por un casual se incluyese esto dos veces seria poco recomendable e incluso inseguro.
    Como ves, pretendo partir de lo más básico posible para a partir de ahí, ir mejorándolo. Si lo pongo completo desde el principio la gente se puede agobiar de tanto código y quizás no termine de entenderlo todo. Los arboles les impiden ver el bosque! je je je. Tomo nota y paso los includes a include_once en la siguiente versión gracias a tu propuesta, explicando ya de paso el motivo del cambio para que todos aprendamos un poco más. Asímismo, añadiré el cierre de la conexión al final de cada uno de estos archivos. Cualquier otra sugerencia será, como siempre, bienvenida.

    2. Por otro lado creo que seria interesante crear contantes para las urls del form y asi evitar posible indexación de estas urls en el sitemap.(salvo que lo quieras asi ,claro)
    Esto no lo termino de entender Lantiga. Constantes para las URLs? Me lo aclaras plis? Está claro que son páginas que no deberían ir a parar al sitemap, pero aunque se me ocurren varias opciones para evitarlo, no se a qué te refieres con lo de las constantes en URLs.

    Gracias compi!

  11. #26
    Administrador CCTW Webmaster de CCTWHabitante Avatar de Jorgens_CCTW
    Fecha de Ingreso
    30 ene, 11
    Ubicación
    Cartagena, Murcia, España.
    Mensajes
    1,188
    Poder de Reputación
    10
    El tuto 7 creo que el archivo es inseguro; te pueden pasar un para con mala intención y robarte incluso la pagina hay que mejorar ese codigo.
    Si si, el muy inseguro. Repito que el objetivo es entender primero cómo funciona y, ahora, ir mejorándolo para evitar problemas de seguridad, añadir nuevas funcionalidades, etc, etc.

    Hay que verificar cada dato recogido en los formularios para evitar las inyecciones, etc, etc, etc. Forma parte de las siguientes partes del tutorial, no lo dudes.

    Gracias de nuevo!

  12. #27
    Administrador CCTW Webmaster de CCTWHabitante Avatar de Jorgens_CCTW
    Fecha de Ingreso
    30 ene, 11
    Ubicación
    Cartagena, Murcia, España.
    Mensajes
    1,188
    Poder de Reputación
    10
    Añado un mensaje de advertencia al principio del tuto, para evitar que la gente lo use antes de terminar la parte de la seguridad de esta aplicación.

  13. #28
    Esto empieza a ser un vicio... Habitante Avatar de lantiga
    Fecha de Ingreso
    23 feb, 11
    Mensajes
    905
    Poder de Reputación
    14
    Sabes lo que son las constantes?
    Suscribete a Los videotutoriales de Lantiga y podre hacer vídeos más largos y con mejor calidad.

  14. #29
    Administrador CCTW Webmaster de CCTWHabitante Avatar de Jorgens_CCTW
    Fecha de Ingreso
    30 ene, 11
    Ubicación
    Cartagena, Murcia, España.
    Mensajes
    1,188
    Poder de Reputación
    10
    Imagino, pero no se a qué te refieres exáctamente ni como evitar que esos archivos entren el el sitemap o sean leidas por los robots de buscadores solo por incluirlas en las url. Imagino que con las líneas apropiadas en el .htaccess solvento la papeleta igualmente, pero dinos tu propuesta que somos todo oidos y sabemos apreciar los buenos consejos!

  15. #30
    Administrador CCTW Webmaster de CCTWHabitante Avatar de Jorgens_CCTW
    Fecha de Ingreso
    30 ene, 11
    Ubicación
    Cartagena, Murcia, España.
    Mensajes
    1,188
    Poder de Reputación
    10
    En el mensaje inicial iré escribiendo un listado con las tareas por hacer, para acordarme de lo que falta por añadir y, por si alguien se anima.

Temas Similares

  1. Empezando desde cero
    Por May en el foro Foro General
    Respuestas: 3
    Último Mensaje: 28/08/2011, 17:17
  2. Iniciando desde Cero
    Por Are$ en el foro Foro General
    Respuestas: 7
    Último Mensaje: 06/01/2011, 06:45
  3. Crear un foro desde cero
    Por Abel_Melero en el foro Foros
    Respuestas: 1
    Último Mensaje: 16/12/2009, 23:01

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
  •