Tutoriales PHP MYSQL Registro y reconocimiento de usuarios con PHP

\n"; } } } lecturas();

          


Registro y reconocimiento de usuarios con PHP

      

Autor: Jorge Luis Martinez M

Ahora ejecutamos una instruccion sql, en la cual le pedimos a la base de datos que de la tabla usuarios nos devuelva la fila cuyo nick corresponda por el enviado por el usuario:

  1. $result = mysql_query("SELECT password FROM usuarios WHERE nick='$nickN'");

Si devuelve una columna quiere decir que el nick SI existe en la base de datos, de lo contrario devolvemos un mensaje de error:

  1. if($row = mysql_fetch_array($result))
  2. {
  3. ...
  4. }
  5. else
  6. {
  7. echo "Usuario no existente en la base de datos";
  8. }

Ahora continuamos con el proceso suponiendo que el usuario exista en la base de datos ahora debemos comprobar que el password sea correcto, para ello hacemos una simple comparacion, si es correcto continuamos de lo contrario mostramos el mensaje de password incorrecto:

  1. if($row["password"] == $passN)
  2. {
  3. ...
  4. }
  5. else
  6. {
  7. echo "Password incorrecto";
  8. }

Ahora suponiendo que el password es correcto continuamos y lo proximo a hacer es establecer las cookies de nick y password (Las cuales nombramos "usNick"/index.html"usPass" y contienen el nick y password respectivamente) en la maquina del usuario, informamos que se ha realizado correctamente el login y lo enviamos a la pagina principal, una vez mas recalco que estamos haciendo esto lo mas sencillo posible, de ti depende personalizar y mejorar los mensajes:

  1. setcookie("usNick",$nickN,time()+7776000);
  2. setcookie("usPass",$passN,time()+7776000);
  3. ?>
  4. <SCRIPT LANGUAGE="javascript">
  5. alert("Ingreso exitoso");
  6. location.href = "/articulos/tutoriales/php/index.html";
  7. </SCRIPT>
  8. <?

Listo, el usuario ya tiene las cookies en su sistema, ¿pero ahora que?, como hacemos para comprobar en las paginas que queramos si el login es correcto, osea que el usuario posee las cookies y son validas?.

Para ello crearemos un ultimo archivo, lo llamaremos login.php, este se encargara de leer las cookies y decirnos si el usuario es un usuario registrado y que ha echo el respectivo "ingreso" al sistema, el contenido de dicho archivo seria el siguiente:

  1. <?php
  2. $loginCorrecto = false;
  3. $idUsuarioL;
  4. $nickUsuarioL;
  5. $emailUsuarioL;
  6. $nombreUsuarioL;
  7.  
  8. if(isset($HTTP_COOKIE_VARS["usNick"]) && isset($HTTP_COOKIE_VARS["usPass"]))
  9. {
  10. $result = mysql_query("SELECT * FROM usuarios WHERE nick='".
    $HTTP_COOKIE_VARS["usNick"]."' AND password='".$HTTP_COOKIE_VARS["usPass"]."'");
  11.  
  12. if($row = mysql_fetch_array($result))
  13. {
  14. setcookie("usNick",$HTTP_COOKIE_VARS["usNick"],time()+7776000);
  15. setcookie("usPass",$HTTP_COOKIE_VARS["usPass"],time()+7776000);
  16. $loginCorrecto = true;
  17. $idUsuarioL = $row["id"];
  18. $nickUsuarioL = $row["nick"];
  19. $emailUsuarioL = $row["email"];
  20. $nombreUsuarioL = $row["nombre"];
  21. }
  22. else
  23. {
  24. //Destruimos las cookies.
  25. setcookie("usNick","x",time()-3600);
  26. setcookie("usPass","x",time()-3600);
  27. }
  28. }
  29. ?>

Lo primero que hacemos es declarar unas variables que utilizaremos para guardar los datos del usuario en caso de tener las cookies en su sistema y de estas ser correctas:

  1. $loginCorrecto = false;
  2. $idUsuarioL;
  3. $nickUsuarioL;
  4. $emailUsuarioL;
  5. $nombreUsuarioL;

Hay una variable boleana que tenemos que mirar de cerca y es la de $loginCorrecto ya que esta sera la que utilizaremos para comprobar el login en nuestros archivos, mas adelante veremos como.

Seguidamente lo que hacemos es comprobar que las cookies existan, si no existen pues no hay problema simplemente no hay "ingreso":

  1. if(isset($HTTP_COOKIE_VARS["usNick"]) && isset($HTTP_COOKIE_VARS["usPass"]))

Ahora lo que hacemos es una sentencia sql, en la cual le pedimos a la base de datos que nos devuelva la fila donde el nick y password correspondan al nick y password guardado en las cookies:

  1. $result = mysql_query("SELECT * FROM usuarios WHERE
  2. nick='".$HTTP_COOKIE_VARS["usNick"]."' AND password='".$HTTP_COOKIE_VARS["usPass"]."'");

Si ese nick y password corresponden a una fila en la base de datos esto quiere decir que son correctos de lo contrario la informacion de las cookies esta mal y debemos destruirlas:

  1. if($row = mysql_fetch_array($result))
  2. {
  3. ...
  4. }
  5. else
  6. {
  7. //Destruimos las cookies.
  8. setcookie("usNick","x",time()-3600);
  9. setcookie("usPass","x",time()-3600);
  10. }

Si la informacion es correcta procedemos con el ingreso, establecemos de nuevo las cookies con lo que se actualiza el tiempo de destruccion a otros noventa dias apartir de ahora:

  1. setcookie("usNick",$HTTP_COOKIE_VARS["usNick"],time()+7776000);
  2. setcookie("usPass",$HTTP_COOKIE_VARS["usPass"],time()+7776000);

Seguido de esto establecemos la variable $loginCorrecto a "true", y las otras variables las llenamos con la informacion del usuario:

  1. $loginCorrecto = true;
  2. $idUsuarioL = $row["id"];
  3. $nickUsuarioL = $row["nick"];
  4. $emailUsuarioL = $row["email"];
  5. $nombreUsuarioL = $row["nombre"];

Listo ya tenemos nuestro archivo "/articulos/tutoriales/php/login.html", ahora ¿como lo utilizamos?, bien supongamos que queremos en nuestro "/articulos/tutoriales/php/index.html" darle la bienvenida al usuario en caso de estar ingresado en el sistema deseamos saludarlo por su nick o nombre en caso contrario lo saludaremos como visitante, para ello tendriamos que incluir el archivo "/articulos/tutoriales/php/login.html" al comienzo de nuestro archivo "/articulos/tutoriales/php/index.html" asi:

Nota: Antes de incluir el "/articulos/tutoriales/php/login.html" debe recordar realizar la conexion con la base de datos, de lo contrario obtendra errores.

  1. <?php
  2. //AQUI CONEXION O include() DE ARCHIVO DE CONEXION CON BASE DE DATOS.
  3. include("/articulos/tutoriales/php/login.html");
  4. ...

Con eso el "/articulos/tutoriales/php/login.html" se encargara de realizar las acciones que vimos arriba, ahora en nuestro "/articulos/tutoriales/php/index.html" donde queramos saludar al visitante ponemos lo siguiente:

  1. ... if($loginCorrecto)
  2. {
  3. echo "Estas identificado en el sistema como ".$nickUsuarioL;
  4. }
  5. else
  6. {
  7. echo "Bienvenido visitante, el sistema no te ha reconocido";
  8. }
  9. ...

Como ven, hicimos uso de la variable $loginCorrecto la cual sera "true" en caso de que el usuario fuera reconocido por el sistema, de lo contrario sera "false".

Y asi podemos usarlo en muchas areas, supongamos que tenemos una seccion donde solo pueden accesar los usuarios registrados, la llamaremos "/articulos/tutoriales/php/restringida.html", entonces lo que hariamos para prevenir que usuarios no registrados vean el contenido seria algo asi:

  1. <?php
  2. //AQUI CONEXION O include() DE ARCHIVO DE CONEXION CON BASE DE DATOS.
  3.  
  4. include("/articulos/tutoriales/php/login.html");
  5.  
  6. if($loginCorrecto)
  7. {
  8. echo "Aqui el contenido solo para usuarios registrados";
  9. }
  10. else
  11. {
  12. echo "El sistema no lo ha identificado, solo los usuarios registrados tienen acceso a esta area";
  13. }
  14. ?>

Eso es todo, espero haya quedado claro. PD: Sobre el proceso de "logout" o "salir" no lo explico ya que es algo muy sencillo, simplemente se "borran" las cookies.

Scour Design ™ Todos los Derechos Reservados © Carlos Carmona Xhtml 1.1 Strict Válido!CSS Nivel 2 Válido! Nivel Triple-A de Conformidad con las Directrices de Accesibilidad Web (WAI)