en: Programacion
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.
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!";
?>
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í.
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.
// 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í.
// 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'];
}
?>
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
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!!
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
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
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
Carlos
4 de marzo de 2012 a las 3:08 am
Excelente!!! Me funciono al pelo…Gracias!!!