Bien, este artículo será muy útil para aquellos que deseen incluir un sistema de identificación de miembros en su página web.
Para empezar deberemos crear una tabla llamada "usuarios" en la base de datos mysql, en ella se guardaran los datos de los usuarios registrados.
CREATE usuarios (
id TINYINT(11) AUTO_INCREMENT,
nombre TEXT,
user VARCHAR(40),
pass VARCHAR(20),
email TEXT,
UNIQUE (id) );
A continuación vamos a crear un formulario de registro, donde el usuario pueda introducir sus datos para identificarse posteriormente, después de el formulario de registro crearemos la pagina de validación del formulario.
registro.php:
<form action="validar_registro.php" method="post">
Usuario: <input name="user" type="text">
Contraseña: <input name="pass1" type="password">
Repetir Contraseña: <input name="pass2" type="password">
Nombre: <input name="nombre" type="text">
Correo electronico: <input name="email" type="text">
<input name="Crear" type="submit">
</form>
En el formulario de registro enviamos mediante POST las variables que el usuario ha introducido al archivo "validar_registro.php"
Validar_registro.php:
<?
$srv="localhost"; //server mysql
$bdname="bd1"; // nombre bd
$bduser="root"; // user mysql
$bdpass=""; //contraseña del user mysql
//primero comprobamos que no exista el usuario.
$user = $_POST['user'];
$pass2 = $_POST['pass1'];
$pass1 = $_POST['pass2'];
$email = $_POST['email'];
$name = $_POST['nombre'];
$ssql="SELECT * FROM usuarios WHERE user='" . $user . "'";
$link=mysql_connect($srv,$bduser,$bdpass);
$result=mysql_db_query($bdname,$ssql,$link);
if(mysql_num_rows($result)){
echo "Nombre de usuario en uso.";
} else {
mysql_free_result($result);
//procedimos a comprobar contraseñas
if($pass1!=$pass2) {
echo "Error: las contraseñas especificadas son distintas
";
} else {
$ssql="INSERT INTO usuarios (user, nombre, pass, email) VALUES ('$user','$name','$pass1','$email')";
if(mysql_db_query($bdname,$ssql,$link)){
echo "Usuario registrado con exito.";
} else {
echo "Error registrando usuario.";
}
}
}
?>
A continuacion vamos a crear una pagina en la que se muestre un formulario para identificarse, en caso de que el usuario estuviera identificado lo mandamos directamente a la pagina restringida.
form_identificacion.php:
session_start();
if(isset($SESSION)){
header("location: pagina_protegida.php");
} else {
//si no esta identificado, colocamos formulario para que se identifique
?>
<title>Necesita identificación! </title>
<center>
Identificacion
</center>
<form action="comprueba.php" method="post"></form>
Usuario: <input name="user" id="user" type="text">
Contraseña:<input name="pass" type="password">
<input value="Entrar" type="submit">
[<a href="registro.php">Registrate gratis!</a>]
<?
}
?>
Y ahora validaremos los datos de este formulario:
valida_login.php:Finalmente vamos a crear la pagina protegida, desde la cual se accedera una vez estes registrado e identificado:
<?
session_start();
$srv="localhost"; //server mysql
$bdname="bd1"; // nombre bd
$bduser="root"; // user mysql
$bdpass=""; //contraseña del user mysql
$user = $_POST['user'];
$pass = $_POST['pass'];
$ssql="SELECT * FROM usuarios WHERE user='$user'";
$link=mysql_connect($srv,$bduser,$bdpass);
$result=mysql_db_query($bdname,$ssql,$link);
if(!mysql_num_rows($result)){
echo "Usuario desconocido.";
} else {
$rs=mysql_fetch_array($result);
if($rs["pass"]==$pass ){
$SESSION["login"]=$user;
$SESSION["nombre"]=$rs["nombre"];
$SESSION["email"]=$rs["email"];
session_register("SESSION");
header("location: user.php");
} else {
echo "Password no valido.";
}
}
?>
pagina_protegida.php:
<?
session_start();
if(!isset($SESSION)){
header("location: form_identificacion.php");
} else {
echo "Hola " . $SESSION['user'] . ", este es un contenido privado!";
}
?>
Y para complementar este sistema crearemos el archivo desconexion.php que permitira al usuario salir del sistema de forma segura, para evitar que futuros usuarios usen su cuenta.
desconexion.php:
<?
session_start();
if(!isset($SESSION)){
header("location: form_identificacion.php");
} else {
session_unset();
session_destroy();
//LOGOUT
header("location: form_identificacion.php");
}
?>
Bueno esto ha sido todo, si desean dejar algun comentario haganlo libremente, aceptare criticas y dudas ;)
Saludos!
7 comentarios:
como estan, soy nuevo en esto de la programacion web.
Yo estoy haciendo el registro y validacion de usuarios como lo colocastes, el problema es que cuando me registro me envia a una pagina totalmente en blanco.
Las dos unicas q se ven son las que tienen los formularios. ahh otra cosa en el codigo de for_identificacion esta un llamado a comprueba.php.
Por favor si me podrian aydar se lo agradeceria.
lo mismo ke albert falta el archivo comprueba.php si pudieras
ponerlo te lo agradeceria kaleta
por lo que veo, entiendo que en realidad comprueba.php tiene que hacer la función de valida_login.php, es decir, si cambias comprueba.php por valida_login.php os debería funcionar... voy a comprobarlo yo mismo y os confirmo... un saludo
me funciono muy bien hasa el registro luego en la parte del login no me funciono
sale unphp q se llama user.php y ese no esta en la explicacion seria bueno que arreglaran este tutorial
Wenas ya una cosa k no entiendo, en esta parte $rs=mysql_fetch_array($result);
if($rs["pass"]==$pass ){
$SESSION["login"]=$user;
$SESSION["nombre"]=$rs["nombre"];
$SESSION["correo"]=$rs["correo"];
session_register("SESSION");
header("location: index.php");
} else {
echo "Password no valido.";
}
}
?>
que representa k ace? ami solo me da "Password no valido"
necesito una ayudita plz tnx :)
$rs=mysql_fetch_array($result);
if($rs["pass"]==$pass ){
$SESSION["login"]=$user;
$SESSION["nombre"]=$rs["nombre"];
$SESSION["correo"]=$rs["correo"];
session_register("SESSION");
header("location: index.php");
} else {
echo "Password no valido.";
}
}
?>
Esta parte informa que el usuario está logueado
sobre todo para la pagina protegida
en header("location: index.php");
tienes que cambiar por
header("location: validar_registro.php");
espero te sirva
Publicar un comentario