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 comprobaremos que los campos de nick y password que seran los "requeridos" como minimo para completar el registro no esten vacios, para ello utilizamos la funcion "trim()" la cual quita los espacios al comienzo y al final de la cadena, por lo que en caso de ser una cadena vacia o con solo espacios en blanco retornara "", en caso de ser valido continuamos con el registro, de lo contrario retornamos un mensaje de error:

  1. if(trim($HTTP_POST_VARS["nick"]) != "" && trim($HTTP_POST_VARS["password"]) != "")

Ahora suponiendo que las cadenas estaban correctas comprobaremos que el nick seleccionado por el usuario no exista en la base de datos, para ello hacemos una instruccion sql para pedirle a la base de datos que nos retorne la fila donde el nick sea igual al nick introducido con el usuario(quitandole el apostrofe, html y demas con la funcion quitar()):

  1. $sql = "SELECT id FROM usuarios WHERE nick='".quitar($HTTP_POST_VARS["nick"]."'";
  2. $result = mysql_query($sql);

En caso de existir dicho nick, osea que nos devuelve una fila:

  1. if($row = mysql_fetch_array($result))

Mostraremos un mensaje de error al usuario informandole del "incidente", de lo contrario continuaremos con el proceso de registro.

Ahora lo que hacemos es simplemente una instruccion sql donde insertamos en la tabla usuarios el nick, password, nombre y email introducidos por el usuario en el formulario, a todos estos les quitamos el html, apostrofe y demas haciendo uso de nuestra instruccion "quitar()", y mostramos un mensaje de "exito" al usuario:

  1. $sql = "INSERT INTO usuarios (nick,password,nombre,email)
  2. VALUES (";
  3. $sql .= "'".quitar($HTTP_POST_VARS["nick"])."'";
  4. $sql .= ",'".quitar($HTTP_POST_VARS["password"])."'";
  5. $sql .= ",'".quitar($HTTP_POST_VARS["nombre"])."'";
  6. $sql .= ",'".quitar($HTTP_POST_VARS["email"])."'";
  7. $sql .= ")";
  8. mysql_query($sql);
  9. echo "Registro exitoso!";

Nota: Por efectos practicos hemos echo esto muy sencillo, podrian agregar más comprobaciones como la del email o manejo de errores mysql.

Tambien podria hacerse más seguro mediante el uso de la funcion de encriptacion md5() para el password, aunque se esta haciendo lo mas sencillo posible ya que la finalidad de este articulo es la de enseñar como reconocer a los usuarios, de ustedes dependen estos "detalles" a la hora de "depurar" este codigo.

Bien, listo ya tenemos la aplicacion de registro, ¿pero y ahora que?, que hago con todos esos usuarios, ahora necesitamos que los usuarios ingresen y sean "reconocidos" y como lo dije lo haremos por medio de cookies.

Crearemos un formulario HTML para que los usuarios introduscan su nick y password al igual que deberemos de realizar una aplicacion ingresar.php que sera la encargada de procesar si el usuario es valido y darle "ingreso" al sistema por medio de una cookie.

Es recomendable tener este archivo en la carpeta raiz de nuestra web, el formulario html seria algo asi:

  1. <FORM ACTION="/articulos/tutoriales/php/ingresar.html" METHOD="post">
  2. Nick : <INPUT TYPE="text" NAME="nick" SIZE="20" MAXLENGTH="20">
  3. Password: <INPUT TYPE="password" NAME="password" SIZE="28" MAXLENGTH="20">
  4. <INPUT TYPE="submit" CLASS="boton" VALUE="Ingresar">
  5. </FORM>

Y ahora el codigo de nuestra aplicacion ingresar.php, luego la explicacion:

  1. <?php
  2.  
  3. //AQUI CONEXION O include() DE ARCHIVO DE CONEXION CON BASE DE DATOS.
  4.  
  5. function quitar($mensaje)
  6. {
  7. $mensaje = str_replace("<","&lt;",$mensaje);
  8. $mensaje = str_replace(">","&gt;",$mensaje);
  9. $mensaje = str_replace("\'","'",$mensaje);
  10. $mensaje = str_replace('\"',"&quot;",$mensaje);
  11. $mensaje = str_replace("\\\\","\\",$mensaje);
  12. return $mensaje;
  13. }
  14.  
  15. if(trim($HTTP_POST_VARS["nick"]) != "" && trim($HTTP_POST_VARS["password"]) != "")
  16. {
  17. $nickN = quitar($HTTP_POST_VARS["nick"]);
  18. $passN = quitar($HTTP_POST_VARS["password"]);
  19. $result = mysql_query("SELECT password FROM usuarios WHERE nick='$nickN'");
  20. if($row = mysql_fetch_array($result))
  21. {
  22. if($row["password"] == $passN)
  23. {
  24. //90 dias dura la cookie
  25. setcookie("usNick",$nickN,time()+7776000);
  26. setcookie("usPass",$passN,time()+7776000);
  27. ?>
  28. Ingreso exitoso, ahora sera dirigido a la pagina principal.
  29. <SCRIPT LANGUAGE="javascript">
  30. location.href = "/articulos/tutoriales/php/index.html";
  31. </SCRIPT>
  32. <?
  33. }
  34. else
  35. {
  36. echo "Password incorrecto";
  37. }
  38. }
  39. else
  40. {
  41. echo "Usuario no existente en la base de datos";
  42. }
  43. }
  44. else
  45. {
  46. echo "Debe especificar un nick y password";
  47. }
  48. ?>

Bien, arriba ya explique que debes de realizar la conexion y explique el funcionamiento de la funcion quitar($mensaje), asi que saltemos hasta el primer "if".

Lo primero que hacemos es comprobar que los campos de "nick" y "password" para que no esten vacios, ya sabemos para que sirve trim() asi que no lo repetire:

  1. if(trim($HTTP_POST_VARS["nick"]) != "" && trim($HTTP_POST_VARS["password"]) != "")

Asi que continuamos suponiendo que todo este bien, ahora lo que hacemos es quitarle el html, apostrofe comillas y demas al nick y password enviados por el usuario para su comprobacion con la base de datos, para ello utilizamos la funcion quitar($mensaje) que explicamos antes, y guardamos las nuevas cadenas en dos nuevas variables:

  1. $nickN = quitar($HTTP_POST_VARS["nick"]);
  2. $passN = quitar($HTTP_POST_VARS["password"]);
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)