INTRODUCCIÓN
Pues me he dado a la tarea de hacerte un tutorial algo básico para un sistema de registro, explicado paso a paso. Bien, pues por decir "básico" me refiero a que no tiene opciones muy avanzadas pero es completamente funcional e incluso adaptable para tu web.
Esto lo hago con el propósito de difundir lo que hasta ahora sé y espero que en verdad te sea útil. Pidiendo únicamente que reconozcas el autor principal de este pequeño tutorial, yo Geze. (Este tutorial lo puedes encontrar en diferentes webs como ComoCrearTuWeb.com, TuWebDeInformatica.com; todos estos bajo mi nick: Geze)
CONOCIMIENTOS MÍNIMOS
Lo primero que necesitamos es saber lo esencial de PHP, como: manejar variables, manejar cadenas de texto; funciones como if, else... y claro, saber algo sobre bases de datos, no mucho, les repito, mínimo. Si sabes al menos lo primario de esto, se te hará muy fácil.
MATERIAL
Lo que necesitaremos además de ganas de trabajar es un servidor que tenga instalado PHP y MySQL para las bases de datos. Si no tienes un servidor con esto puedes buscar información en internet de cómo instalarlo en el servidor que estás usando, hay mucha información.
Por lo pronto si no tienes ni servidor, podemos utilizar uno gratuito que ofrese UEUO.COM
Puedes registrar tu cuenta gratis desde este enlace: http://www.freewebhostingarea.com/
Te aconsejo poner en el desplegable de “Select Subdomain” la opción de ueuo.com
Una vez que nos registremos, recuerda los datos del FTP para conectarnos al servidor (de forma rápida y si seguiste mi consejo anterior serán estos: Servidor ueuo.com Usuario mipagina.ueuo.com Contraseña *****
Ahora ya tenemos una servidor con PHP y MySQL, pero eso es sólo el principio, si queremos continuar con esto necesitaremos un editor para escribir el código fuente del programa. El que uses está bien, incluso el Bloc de Notas de Windows sirve o el Gedit de Ubuntu. [Recomiendo en Windows: NotePad++ o PsPad] [Recomiendo en Linux: BlueFish ]
¡A TRABAJAR!
Iremos a la página de UEUO.COM e iniciaremos sesión con nuestra cuenta que antes ya hemos creado.
http://www.ueuo.com/
El Username es el nombre de nuestra página, por ejemplo: mipagina.ueuo.com y la Password nuestra contraseña (¡duhg!).
Una vez iniciada sesión iremos al apartado que dice “Create your MySQL Databases” y daremos al botón “Create DB”. Se mostrarán algunos datos para acceder a PhpMyAdmin como el “Database username” que es comúnmente un número que nos servirá para entrar a crear la bases de datos y conectarnos desde nuestro código que haremos en php, listo, ya se creo la base de datos. Daremos clic en “Main menu” y nos llevará de nuevo a la pantalla de Member Area; daremos de nuevo al apartado de la base de datos, pero ahora debe de decir algo como “Manage DB”. Daremos clic en el botón que dice “PhpMyAdmin” y observamos una ventana que nos pide un usuario y una contraseña, pues nada más ingresamos el usuario que es aquel numero que les mencioné que recordaran cuando creábamos la base de datos, el llamado “Database username”. La contraseña será la que hemos usado para registrarnos en ueuo.com. Dando los datos correctos ingresamos a PhpMyAdmin. Del lado izquierdo daremos clic sobre el enlace que tiene el mismo número que el que usamos para entrar.
Una vez seleccionada esta será la base de datos en la que crearemos una tabla para añadir los registro, si no lo sabias la tabla es donde se guardarán los valores que queramos almacenar, como noticias, direcciones o en nuestro caso, usuario y contraseña. Para añadir una tabla rellenaremos los datos que nos pide como “Nombre” y “Número de campos”. En mi caso pondré de nombre usuarios y sólo 2 campos que será uno para el Nick y otro para la contraseña, daremos clic en Continuar.
El siguiente paso es nombrar el Campo que será como lo reconoceremos (yo le pondré “nick” y al otro “pass”), el tipo de campo que será (te recomiendo varchar en los dos) y la longitud que quieres que almacene cada campo, yo le daré 15. Con esto es suficiente para crear la tabla de usuarios, pues bien, pulsaremos Grabar y eso es todo en este lado de la base de datos. Ahora continuaremos con el código que hará todo el trabajo.


En nuestro editor...
Escribiremos primero el formulario de registro, es decir, en donde pediremos a un “Nuevo usuario” que ingrese sus datos para que se identifique.

registro.html

<html>
<form action='registro.php' method='POST'>
Nick <input type='text' name='nick'>

Contrasena <input type='password' name='contrasena'>

<input type='submit' value='Enviar'>
</form>
</html>

Fácil, un formulario HTML, ya te toca a ti ponerlo más original, pero por el momento nos bastará con que pida Nick y una contraseña que repetirá dos veces. El siguiente paso es crear la página PHP que procese los datos que ha ingresado el usuario. A esta página la llamaremos justo con el mismo nombre que le hemos puesto en el atributo de la etiqueta FORM de la página registro.html, en mi caso le he puesto registro.php. Entonces esto va quedando así:

registro.php

<?php
//conexión con la base de datos
$conexion=mysql_connect('localhost','USUARIO','CON TRASENA');
//Selección de la base de datos.
mysql_select_db('BASE_DE_DATOS',$conexion);
//Recibimos lo que ingresó por teclado el usuario y lo asignamos a un variable para un mejor manejo
$nick=$_POST[nick];
$pass=$_POST[contrasena];
//Una vez recibidos el valor de cada campo, lo ingresaremos en la base de datos
mysql_query("insert into usuarios(nick,pass) values('$nick','$pass')",$conexion) or die (mysql_error());
//Le mencionamos al usuario que se ha registrado correctamente.
echo 'Te has registrado con éxito.';
?>

¿Ahora ves porque pedía conocimiento mínimo de PHP? Pues porque sería más difícil entender todo le código si no supiéramos como funciona PHP. Si no sabes mucho no te preocupes, pondré al final del enlace para que descargues los archivos y las instrucciones listos para que lo pongas en tu página.
Explicaré el código de registro.php: En la primera parte nos estamos conectando con la base de datos que en un principio creamos, tan sólo cambia los valores de USUARIO y CONTRASEÑA por tu usuario que es el número que te dieron al crear la base de datos, sí, el mismo con el que ingresamos a PhpMyAdmin. La contraseña es con la que te registraste en ueuo.com. Después estamos recibiendo los valores que se ingresaron por teclado en el formulario; pon atención en esta parte porque en el archivo de registro.html cada etiqueta de input tiene un valor de name, este valor deverá ser el mismo que el que pones en registro.php en la parte de $_POST[name], por ejemplo, si yo pongo en el formulario un campo con name=”geze” en la página php debería recoger el valor con $_POST[geze] ¿me entiendes?
Otra cosa importante es que en la etiqueta de form de registro.html el atributo method debe ser POST esto es porque enviamos los valores ingresados en el formulario por POST y los recibimos por POST ¿sí?
Una vez recibidos los asignamos a una variable para manejarlos mejor, depsués los estamos metiendo a la base de datos...atención aquí.
La línea de mysql_query("insert into usuarios(nick,pass) values('$nick','$pass')",$conexion) or die (mysql_error());
Quiere decir...
mysql_query(“INSERTA DENTRO nombre_de_mi_tabla en los campos (nick, contrasena) LOS VALORES('$nick',$pass'')”,$conexion) SI NO SUCEDE ESTO (mysql_error());

En donde dice nombre_de_mi_tabla será el nombre que le pusimos a la tabla cuando la cremaos en PhpMyAdmin, en mi caso le puse usuarios. Los valores de $nick y $pass son lso que ya habiamos recibido por POST y los pusimos en variable para un mejor manejo. En la parte de OR DIE lo que esté en paréntesis es una función que nos dirá si ocurrió algún erro al hacer el mysql_query. Por último imprimimos en pantalla con echo que los datos se han ingresado correctamente, para que el usuario vea qué sucedió.
Lo siguiente es hacer un formulario para iniciar sesión, con el mismo que se registró nos bastará, sólo hay que cambiar el nombre del archivo, por ejemplo entrar.html. También hay que cambiar el atributo de action en la etiqueta form por algo como entrar.php. Recuerda que será la página que procesará los valores del formulario.



Lo siguiente es hacer un formulario para iniciar sesión, con el mismo que se registró nos bastará, sólo hay que cambiar el nombre del archivo, por ejemplo entrar.html. También hay que cambiar el atributo de action en la etiqueta form por algo como entrar.php. Recuerda que será la página que procesará los valores del formulario.
Una vez hecho esto, seguiremos por hacer la página para iniciar sesión que llamaré entrar.php esta tendrá la siguiente estructura.

entrar.php

<?php
//conexión con la base de datos.
$conexion=mysql_connect('localhost','USUARIO','CON TRASEÑA');
//Selección de la base de datos.
mysql_select_db('BASE_DE_DATOS',$conexion);
//Recibimos lo que ingresó por teclado el usuario y lo asignamos a un variable para un mejor manejo
$nick=$_POST[nick];
$pass=$_POST[contrasena];
//Buscamos en la tabla si existe un usuario con ese nombre y esa contraseña
$registrado=mysql_query("select nick,pass from usuarios where nick='$nick' and pass='$pass'",$conexion) or die (mysql_error());
//Si existe un usuario con ese nick y esa contraseña le damos una session
if($usuario=mysql_fetch_array($registrado))
{
//Le damos una coockie que se guarda en su computadora que será igual al su nombre de nick.
setcookie("usuario",$usuario['nick'],time()+7776000);
setcookie("contrasena",$usuario['pass'],time()+7776000);
//Le mencionamos al usuario que ha iniciado correctamente.
echo 'Has iniciado sesión con éxito.';
}
//Si no existe no existen esos datos en la tabla, le decimos que no son correctos
else
{
echo 'Los datos ingresados no son correctos.';
}
?>

La explicación:
La primer parte ya la saben, nos conectamos a la base de datos, sencillo.
Después recibimos lo que ingresó en los campos de formulario y lo asignamos a una variable.
La línea interesante es esta:
$registrado=mysql_query("select nick,pass from usuarios where nick='$nick' and pass='$pass'",$conexion) or die (mysql_error());
Que se entiende así:
$usuario es igual a mysql_query("SELECCIONA los campos de nick,pass en la tabla usuarios donde nick='$nick' y $pass='$pass'",$conexion) SI NO SUCEDE (dime el error);

Esto buscará si existe un usuario ya registrado en la tabla de usuarios y una contraseña cokmo la que también ingresó.
Después la consoulata la ponemos en un array que nombramos $usuario, que con esta variable, ya podemos acceder a los valores de la consulta tal y como lo hiceramos con un array común, por el el nombre del campo en este caso, claro que si no genera resultados esto, entonces el programa se va hacia el else, lo que pondría en pantalla un mensaje de que los datos son incorrectos.
Regresando a la condición de que si hay resultados (al if) entonces le crearé dos cookies en su computadora, una que almacena el usuario y otra la contraseña. Esta es la forma de crear COOKIES:

Se crean con la función setcookie y contiene al emnos tres parámetros; el primeor es el nombre de la cookie, con este nombre después verificaremos si existe en la computadora del usuario, el segundo es el valor de la cookie, en este caso accedemos al array nombrado como $usuario y que a su vez contiene los valores de la consulta mysql_query y utilizamos el campo pass ($usuario['pass']). Recuérda que pass no es un nombre a nuestro gusto, es el nombre del campo de la tabla que creamos al inicio; el útimo parámetro es el tiempo que durará la cookie en la computadora del usuario. Como en algún foro que nos pregunta en una casilla “recordar cuenta” esto hará que se guarde por más tiempo la cookie y asi podremos entrar a cualquier hora que gustemos, sin tener que ir al formulario para inicar sesión.

Ahora veremos una página con un ejemplo para que puedas ver cómo restringir el acceso a un usuario o como permitir verle el contenido.

ejemplo.php

<?php

if(isset($HTTP_COOKIE_VARS["usuario"]) && isset($HTTP_COOKIE_VARS["contrasena"]))

{

echo 'Binvenido';

}

else

{

echo 'Área sólo para usuarios registrados';

}

?>

Bastante fácil: la función isset comprueba si existe la cookie que llamamos usuario, si esta cookie existe. Significa que quien intenta entrar es un usuario registrado, por eso tiene la cookie.
Si es falta la enterior condición, es decir que no existe, entocnes le diremos con un emsnaje que el área es sólo para registrados.
Esto es todo, ya sólo falta una página que cierre la sesión actual para evitar problemas de seguridad, para ello basta con este código:

cerrar.php

<?
setcookie("usuario",time()-7776000);
setcookie("contrasena",time()-7776000);
echo 'Has cerrado sesión.';
?>

Esto es sencillo, así como al crearla le dabamos un número positivo, para destruir la cookie hay que dar un número negativo, pero esta vez sólo estamos dandos dos parámetros, el parámetro de valor, no hace falta nombrarlo; así que la próxima vez que quiera la cookie de nuevo, tendrá que inicar sesión.

Hemos terminado nuestro sistema de usuarios en PHP y MySQL, espero te sea de gran utilidad y con esto puedes crear el tuyo, o personalizar este. Puedes bajar el código de estos archivos y modificarlos a tu gusto para adapatarloa a tu web o para ver cómo funciona.
Descargar: [enlace roto]
Un saludo: GEZE.