Para seguir este tutorial necesitamos tener instalado en el ordenador un servidor, php y mysql; Todo esto ahora suele venir incluido en paquetes ya listos para instalar y usar. Yo en este caso utilizaré Xampp 1.7.1, ya está disponible la versión superior (1.7.2) pero la he testeado y tiene algunos bugs en php asi que recomiendo utilizar la misma que yo.
Una vez instalado Xampp o los programas por separado vamos a crear la base de datos con la que trabajaremos. Los códigos de cada paso se pueden descargar individualmente pinchando sobre el botón de código a la derecha del título.
Entramos en phpMyAdmin ( por defecto: http://localhost/phpmyadmin/ ) y creamos una nueva base de datos llamada "tutorialweb". Pinchamos en la pestaña SQL e introducimos esta consulta:
CREATE TABLE IF NOT EXISTS `usuarios` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`usuario` varchar(20) NOT NULL,
`clave` varchar(32) NOT NULL,
`email` varchar(60) NOT NULL,
`fecha_registro` date NOT NULL,
`ip` varchar(15) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Si teneis alguna duda o algún problema al ejecutar la consulta SQL, descargaros al final del tutorial los archivos dónde incluyo el .sql listo para importar.

Empezamos a toquetear un poco PHP, comenzaremos creando un nuevo archivo .php para conectar nuestra página web a la base de datos.
Como muchos sabreis ( espero ), el código PHP comienza siempre por las etiquetas "<?php" y acaba en "?>". El siguiente código define unas constantes que luego se pasan por una función y conecta con la DB, también se puede hacer la conexión sin función pero es mucho más cómodo de esta forma, ya que cada vez que queramos hacer una consulta a la DB sólo tendremos que llamar a esta función en vez de definir de nuevo estas constantes.
Haremos una nueva carpeta dentro del directorio "htdocs", yo la he llamado "tutorialweb" y dentro iremoos colocando los archivos. El archivo de conexion renombrarlo por conexion.php .
Luego para entrar a ver nuestros progresos entraremos a: http://localhost/tutorialweb/
O el nombre del directorio que hayais puesto.
(formulario.php)Este paso yo creo que será el más sencillo, el formulario de altas, los campos a rellenar serán:
- Nombre de Usuario
- Contraseña
- Repetir Contraseña
- Correo Electrónico
Método del formulario POST, y en acción validar.php por ejemplo. Una vez tengamos el formulario hay que crear el archivo que validará los campos e insertará la información en la base de datos.
(validar.php)Este es el archivo dónde irá el formulario al registrarnos.
En el código he puesto comentarios en casi todos los fragmentos para explicar la función de cada uno. Resumiendo brevemente, primero recibimos los datos del formulario, comprobamos que no hay ninguno vació, que las contraseñas coincidan, que sean valores alfanuméricos, limpiamos las variables, encriptamos la contraseña, comprobamos que el usuario no exista y se inserta en la base de datos..
Éso brevemente ^^.
Ya tenemos el sistema de altas preparado para funcionar, sólo tenemos que colocar el formulario y el validador en el mismo directorio y probar, OJO, siempre desde el servidor, si lo abris directamente desde un navegador no funcionará.
Ejemplo correcto: http://localhost/tutorialweb/index.php
Ejemplo incorrecto: file:///C:/xampp/htdocs/tutorialweb/index.php
(entrar.php)Vamos a crear el sistema para que nos reconozca como usuarios registrados partiendo de la base de datos.
Normalmente, se hace un formulario que luego te lleva a otra página dónde verifica los datos, esta vez no, directamente en un mismo archivo para no tener archivos por tener.
El archivo básicamente comprueba si se han enviado datos o hay algun usuario identificado, en caso de ser falsos esos 2 casos muestra el formulario.
Hace una consulta a la base de datos, compara los datos y si son correctos se crea una sesion con los datos del usuario que posteriormente nos servirán para mostrarlos en cualquier página que creemos, por ejemplo una vez te identificas podrás entrar en una página privada que sólo se accede habiendo pasado por este formulario.
IMPORTANTE: La primera línea "session_start()" sirve para mantener las sesiones y no perderlas al entrar en otra página, por ello la he colocado en todas como vereis al final del tutorial al descargar los archivos.
(privado.php)En este archivo comprueba que la sesión "nombre_usuario" está activa y reconoce al usuario, si no hay ninguna sesión comprende que es un invitado y le bloquea el paso.
<?php
if(!isset($_SESSION['nombre_usuario'])){
Todo lo que pongas aquí se mostrara a los usuarios no registrados.
} else {
Y aqui en caso contrario.
}
?>
Ya solo nos falta el archivo para finalizar la sesion que explicaré a continuación.
(salir.php)En la primera línea volvemos a poner session_start() para recoger la sesión de la página de la que vengamos y después la destruye.
<?php
if(!isset($_SESSION['nombre_usuario'])){
echo "No has iniciado sesión";
} else {
session_unset();
session_destroy();
echo "Has cerrado sesión correctamente. Gracias por su visita.";
}
?>

Yo creo que por ahora ya teneis para hacer vuestros pinitos con php y mysql. He creado una portada cutre para enlazar todos los archivos, la adjunto aquí junto con todos los archivos por si quereis testearlo.
Podeis seguir el hilo del tutorial a través del foro aquí: