Fácil sistema de autentificación (login, password) PHP

Por el 7 de agosto de 2006

en: Programacion


Primer Paso: Creación de la base de datos

Lo primero que necesitas es crear la base de datos en la que vas a almacenar tu información. Si ya tienes creada una salta al paso dos.
Para crear la base de datos la mejor manera es desde algun tipo de software que te permita manejar MySql ya que el uso de scripts no está autorizado en todos los servidores.

Segundo Paso: Configuración de tablas

Ya está creada la base de datos y tenemos que configurar las tablas y campos en los que vamos a almacenar la información.
Utiliza este código o modifícalo adaptándolo a tus gustos.

// Configura los datos de tu cuenta
$dbhost='localhost';
$dbusername='username';
$dbuserpass='password';
$dbname='database';
// Conexión a la base de datos
mysql_connect ($dbhost, $dbusername, $dbuserpass);
// Seleccion de la base de datos
mysql_select_db($dbname) or die('Cannot select database');

// Creacion de la tabla (puedes elegir otros nombres para los campos)
$query = 'CREATE TABLE users(
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
username VARCHAR(30) NOT NULL,
password VARCHAR(20) NOT NULL,
email VARCHAR(40) NOT NULL)';
$result = mysql_query($query);
echo "!Tabla creada!";
?>

Tercer Paso: Registro de usuarios

Ya hemos creado y configurado la base de datos, ahora escribiremos el código de una simple página de registr, en la que insertaremos nombre de usuario, contrseña y cuenta de correo.

// Configura los datos de tu cuenta
$dbhost='localhost';
$dbusername='username';
$dbuserpass='password';
$dbname='database';
// Conexión a la base de datos
mysql_connect ($dbhost, $dbusername, $dbuserpass);
mysql_select_db($dbname) or die("Cannot select database");

// Preguntaremos si se han enviado ya las variables necesarias
if (isset($_POST["username"])) {
$username = $_POST["username"];
$password = $_POST["password"];
$cpassword = $_POST["cpassword"];
$email = $_POST["email"];
// Hay campos en blanco
if($username==NULL|$password==NULL|$cpassword==NULL|$email==NULL) {
echo "un campo está vacio.";
}else{
// ¿Coinciden las contraseñas?
if($password!=$cpassword) {
echo "Las contraseñas no coinciden";
}else{
// Comprobamos si el nombre de usuario o la cuenta de correo ya existían
$checkuser = mysql_query("SELECT username FROM users WHERE username='$username'");
$username_exist = mysql_num_rows($checkuser);

$checkemail = mysql_query("SELECT email FROM users WHERE email='$email'");
$email_exist = mysql_num_rows($checkemail);

if ($email_exist>0|$username_exist>0) {
echo “EL nombre de usuario o la cuenta de correo estan ya en uso”;
}else{
//Todo parece correcto procedemos con la inserccion
$query = “INSERT INTO users (username, password, email) VALUES(‘$username’,'$password’,'$email’)”;
mysql_query($query) or die(mysql_error());
echo “El usuario $username ha sido registrado de manera satisfactoria.”;
}
}
}
}
?>

Nos quedaría escribir el código HTML que debe contener el formulario de registro, prueba con este ejemplo o edítalo a tu gusto.

Puedes verlo aquí.

Nombre de usuario:
Password:
Repite Password:
Email:
Ver código registro.php

Ahora que tenemos nuestra página de registro llego la hora de hacer pruebas, ten en cuenta que si has cambiado algún dato de los formularios o algun campo de la base de datos ten en cuenta que deberas cambiar las consultas.
La correcta ejecución de nuestro código debe devolver lo siguiente.

El usuario “nombre_de_usuario” ha sido registrado de manera satisfactoria.

Cuarto Paso: Autentificación de usuarios

// Configura los datos de tu cuenta
$dbhost='localhost';
$dbusername='username';
$dbuserpass='password';
$dbname='database';

session_start();

// Conectar a la base de datos
mysql_connect ($dbhost, $dbusername, $dbuserpass);
mysql_select_db($dbname) or die('Cannot select database');

if ($_POST['username']) {
//Comprobacion del envio del nombre de usuario y password
$username=$_POST['username'];
$password=$_POST['password'];
if ($password==NULL) {
echo "La password no fue enviada";
}else{
$query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['password'] != $password) {
echo "Login incorrecto";
}else{
$query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
$row = mysql_fetch_array($query);
$_SESSION["s_username"] = $row['username'];
echo "Has sido logueado correctamente ".$_SESSION['s_username']." y puedes acceder al index.php.";
}
}
}
?>

Nos quedaría escribir el código HTML que debe contener el formulario para ingresar en la página, prueba con este ejemplo o edítalo a tu gusto.

Puedes verlo aquí.

Nombre de usuario:
Password:
Ver código login.php

Quinto Paso: Index.php visible para usuarios registrados

// Configura la información de tu cuenta
$dbhost='localhost';
$dbusername='username';
$dbuserpass='password';
$dbname='database';
session_start();

// Conexión a la base de datos
mysql_connect ($dbhost, $dbusername, $dbuserpass);
mysql_select_db($dbname) or die('Cannot select database');

?>

if (isset($_SESSION['s_username'])) {
echo "Bienvenido a mi sitio has ingresado como ".$_SESSION['s_username'].", gracias por la visita!";
}else{
echo "Tu no estas autentificado dirígete a login.php o registrate en register.php";
echo $_SESSION['s_username'];
}
?>

Sexto Paso: Logout

Sólo nos quedaría poder salir de la página una vez nos hayamos autentificado y esto lo haremos con este pequeño script.

session_start();
$_SESSION = array();
header("Location: index.php");
?>

Puedes ver más información sobre este script aquí

5 Respuestas a Fácil sistema de autentificación (login, password) PHP

Avatar

Sara Rodel

30 de junio de 2011 a las 3:00 am

Oye… esta super tu publicacion..!!! me gustaria saber kmo funcionaria con AJAX… usando servlets y .js… y jsp… espero que puedas enviarme algo a mi correo k me ayude =) “sarah_neko@live.com”

Saludos!!

Avatar

jesus | empleo en guadalajara

8 de diciembre de 2011 a las 10:45 pm

No entiendo muy bien como hacer la autentificacion de usuarios, pero voy a probar con este que tienes posteado, espero poder hacerlo funcionar. Gracias

Un saludo

Avatar

Gaston

14 de diciembre de 2011 a las 8:57 pm

Hola hermano, queria agradecer lo facil y bien explicado que esta la info, hice todo mi sistema de logueo de usuarios en 1 h.
Hice unas modificaciones usando ajax para que todo sea asincronico y quede mas vistoso.

mil gracias desde bs as argentina

Avatar

Cristian Batista

27 de diciembre de 2011 a las 12:57 pm

Gracias la verdad de que esto si me funciona y no da error alguno me sirve de gran ayuda ya que se bastante de html y css pero a la hora de integrarme en el php me cuesta un poco mas ya que es mas complejo a la vez que el mysql, bueno el mysql es mas facil pero tambien tiene su complejidad jejeeje .

Gracias por tu aporte y ahora mismito lo pruebo :P

Avatar

Carlos

4 de marzo de 2012 a las 3:08 am

Excelente!!! Me funciono al pelo…Gracias!!!

Dejar un comentario