Justi 30 de septiembre de 2008 a las 13.00
   Imprimir artículo
elWebmaster.com

Taller de PHP: Nuestro blog – Ingreso y reconocimiento de usuarios


Bueno, la clase pasada vimos cómo nuestros usuarios se podían registrar en nuestro sitio, en la clase de hoy vamos a ver cómo van a poder iniciar sesión. Hay una cosita que me quedó pendiente de la clase anterior y es explicar cómo es que hice la consulta para ingresar los datos del usuario a través del sistema de registro.

Si prestan atención, en donde va la contraseña le agregué una función que se llama md5(), esta función lo que nos permite es mantener las contraseñas encriptadas, de forma que ninguna persona pueda llegar a conocer jamás la contraseña de un usuario.

Es muy común en los sitios serios utilizar este método de encriptación de contraseña. Una forma de verificar que esto se este utilizando en los sitios es con el proceso de recuperación de la misma en caso de olvido. Si les envían su contraseña tal cual la escribieron es porque no se está encriptando, en cambio si les envían una nueva contraseña o la posibilidad de escribirla nuevamente, es muy probable que estén encriptándola. Bueno, aclarado esto, vamos a la clase de hoy.

Hoy vamos a utilizar tres archivos, uno ya lo tenemos (index.php) y los otros dos los vamos a crear (ingresar.php y admin/esUsuario.php).

Primero veamos qué tiene el archivo que está dentro de la carpeta admin que se llama esUsuario.php

  1. function esUsuario ( $usuario, $password, $conexion ) {
  2.  
  3. // verifica que esten los dos campos completos.
  4. if ($usuario=='' || $password=='') return false;
  5.  
  6. // busqueda de los datos de usuarios para loguear.
  7. $query = "SELECT idUsuario, usuario, password, tipo FROM `usuarios` WHERE usuario = '$usuario'";
  8. $resultado = mysql_query ($query, $conexion);
  9. $row = mysql_fetch_array ($resultado);
  10. $password_from_db = $row ['password'];
  11. unset($query);
  12.  
  13. // verifica que el pass enviado sea igual al pass de la db.
  14. if ( $password_from_db == $password ) {
  15. return $row;
  16. } else return false;
  17.  
  18. }
  19.  
  20. ?>

Es una función a la que le pasaremos por parámetros el nombre de usuario, la contraseña (ya encriptada con md5) y el puntero de conexión. Básicamente lo que buscamos con esta función es que nos devuelva un array con los datos del usuario en la base de datos en caso de que complete bien la información solicitada o FALSE en caso de que no exista o la contraseña no coincida.

Lo primero que hacemos es verificar que tanto $usuario como $password no se encuentren vacíos. Luego hacemos una consulta a la base de datos tratando de buscar toda la información del usuario correspondiente con $usuario.

Luego de esto verificamos que la contraseña ingresada por parámetro $password sea igual con la que se encuentra en la base de datos. En caso de que lo sean devolvemos un array con los datos obtenidos de la db, caso contrario devolvemos FALSE.

Creo que quedó bastante sencillita, gracias a Ricardo Kotik me di cuenta que en el proceso de registro me faltó algo fundamental, que es verificar que sea único el nombre de usuario, es decir, que no esté siendo utilizado por otra persona, esto es fundamental, por lo que más adelante veremos la forma de crear una función que verifique esto, o si no la solución que nos brindó Ricardo en el comentario de la clase anterior es muy buena. Sólo hay que incluirlo en el proceso de registro, cuando estamos comprobando los errores.

Bueno, ahora sí, vamos a nuestro archivo ingresar.php

  1. // iniciamos sesiones
  2. session_start ();
  3.  
  4. // archivos necesarios
  5. require_once 'admin/config.php';
  6. require_once 'admin/conexion.php';
  7. require_once 'admin/esUsuario.php';
  8.  
  9. // obtengo puntero de conexion con la db
  10. $dbConn = conectar();
  11.  
  12. // verificamos que no este conectado el usuario
  13. if ( !empty( $_SESSION['usuario'] ) && !empty($_SESSION['password']) ) {
  14. if ( esUsuario( $_SESSION['usuario'], $_SESSION['password'] ) ) {
  15. header( 'Location: index.php' );
  16. die;
  17. }
  18. }
  19.  
  20. // si se envio el formulario
  21. if ( !empty($_POST['submit']) ) {
  22.  
  23. // definimos las variables
  24. if ( !empty($_POST['usuario']) )    $usuario    = $_POST['usuario'];
  25. if ( !empty($_POST['password']) )   $password   = $_POST['password'];
  26.  
  27. // completamos la variable error si es necesario
  28. if ( empty($usuario) )  $error['usuario']       = 'Es obligatorio completar el nombre de usuario';
  29. if ( empty($password) ) $error['password']      = 'Es obligatorio completar la contraseña';
  30.  
  31. // si no hay errores registramos al usuario
  32. if ( empty($error) ) {
  33.  
  34. // verificamos que los datos ingresados corresopndan a un usuario
  35. if ( $arrUsuario = esUsuario($usuario,md5($password),$dbConn) ) {
  36.  
  37. // definimos las sesiones
  38. $_SESSION['usuario']    = $arrUsuario['usuario'];
  39. $_SESSION['password']   = $arrUsuario['password'];
  40.  
  41. header('Location: index.php');
  42. die;
  43.  
  44. } else {
  45. $error['noExiste']      = 'El nombre de usuario o contraseña no coinciden';
  46. }
  47.  
  48. }
  49.  
  50. }
  51.  
  52. ?>
  53. <h1>Inicio de sesión</h1>
  54. <ul>
  55.     <li></li>
  56. </ul>
  57. <form action="ingresar.php" method="post"><label for="usuario">Nombre de usuario</label>
  58.  
  59. <input name="usuario" type="text" value="&lt;? if ( ! empty($usuario) ) echo $usuario; ?&gt;" />
  60.  
  61. <label for="password">Contraseña</label>
  62.  
  63. <input name="password" type="password" value="&lt;? if ( ! empty($password) ) echo $password; ?&gt;" />
  64.  
  65. <input name="submit" type="submit" value="Ingresar" />
  66.  
  67. </form>

La parte de html no tiene nada del otro mundo, es igual a la de registro, con las diferencias en el formulario, ahora tenemos menos campos y lo enviamos a ingresar.php, lo que nos importa en esta parte es el script de php más que nada.

Vamos a ir explicándolo paso por paso. Como vamos a trabajar con Sesiones de PHP, es fundamental antes que nada, avisarle al proceso que vamos las vamos a utilizar, para ellos vamos a agregar la linea session_start ();

Luego de esto, incluimos nuestros archivos necesarios, los mismos que los de la clase pasada más el nuevo que creamos recién para verificar el usuario.

Creamos el puntero a la base de datos y mediante un if verificamos que no estén vacíos ni $_SESSION[‘usuario’] ni $_SESSION[‘password’], las sesiones estas todavía no las creamos, pero lo haremos en caso de que se envíe correctamente el formulario de ingreso, pero como no queremos que un usuario logueado vuelva a ingresar a este formulario, debido a que ya ha iniciado sesión, lo que hacemos es verificar si no están vacías ambas sesiones, en caso positivo, verificamos mediante la utilización de nuestra función esUsuario si pertenece a un usuario registrado, es decir si el usuario y contraseña coinciden.

Nuevamente, en caso afirmativo redireccionamos al home de nuestro sitio, ya que no tendría que estar viendo el formulario de ingreso un usuario que ya ha ingresado.

Listo, ya superamos la etapa del usuario logueado y no lo estaba, ahora verificamos si se envió el formulario o no (al igual que en el proceso de registro, el formulario de ingreso lo estamos apuntando al mismo archivo ingresar.php, por lo que verificamos si se cargó por primera vez la página o lo hizo el usuario luego de enviar el formulario.

En caso de que exista el POST, vamos a definir dos variables con los post del formulario, $usuario y $password, si alguno se encuentra vacio, creamos la variable de $error. Pasada esta verificación, vamos a ver si los datos ingresados en el formulario realmente corresponden con un usuario registrado en nuestro sitio.

Para ello, utilizamos nuevamente nuestra funcion esUsuario() pero esta vez la vamos a igualar a una nueva variable $arrUsuario que en caso de que el usuario haya completado los datos bien, contendrá un array con los datos que nos devuelve la funcion esUsuario() de la base de datos, en caso que devuelva un error, $arrUsuario va a ser igual a false y el if donde la incluimos fallará.

Fíjense que en el segundo parámetro de la función nuevamente le estoy pasando md5() a $password, en este caso lo estoy haciendo porque en la base de datos ya tenemos la contraseña encriptada, y como en este caso el usuario la escribió directamente en el formulario, la misma no lo está. En el uso anterior de esta función en esta misma página, no fue necesario pasarle md5 ya que la sesión la vamos a guardar encriptada también.

Bueno, ya pasó todos los chequeos el envío del formulario, ya verificamos que los datos ingresados por el usuario estén completos, correspondan a un usuario de la base de datos y además coinciden las contraseñas de la db con las del post, es momento de crear las sesiones.

Vamos a crear dos sesiones, una sesión que va a contener el nombre de usuario y otra con la contraseña encriptada. Luego de esto, redireccionamos al index.php, ya que un usuario logueado no tendría que por que seguir viendo el formulario de ingreso.

Finalmente tenemos nuestra index.php modificada

  1. // iniciamos session
  2. session_start ();
  3.  
  4. // archivos necesarios
  5. require_once 'admin/config.php';
  6. require_once 'admin/conexion.php';
  7. require_once 'admin/esUsuario.php';
  8.  
  9. // obtengo puntero de conexion con la db
  10. $dbConn = conectar();
  11.  
  12. // vemos si el usuario quiere desloguar
  13. if ( !empty($_GET['salir']) ) {
  14. // borramos y destruimos todo tipo de sesion del usuario
  15. session_unset();
  16. session_destroy();
  17. }
  18.  
  19. // verificamos que no este conectado el usuario
  20. if ( !empty( $_SESSION['usuario'] ) &amp;&amp; !empty($_SESSION['password']) ) {
  21. $arrUsuario = esUsuario( $_SESSION['usuario'], $_SESSION['password'], $dbConn );
  22. }
  23.  
  24. ?&gt;
  25. <h1>Blog Personal</h1>
  26. <div>El registro ha sido exitoso.</div>
  27. <ul>
  28.     <li><a href="ingresar.php">Iniciar sesión</a></li>
  29.     <li><a href="registrar.php">Regístrate gratis</a></li>
  30. </ul>
  31. Bienvenido  - <a href="index.php?salir=true">Salir</a>
  32. <ul>
  33.     <li><a href="admin/index.php">Panel de administración</a></li>
  34. </ul>

Esta bastante más completa ahora la index de nuestro sitio, veamos el codigo php.

Iniciamos sesión, para ver si el usuario esta conectado, agregamos los archivos requeridos y creamos el puntero de conexión. Hasta ahora nada distinto al resto de nuestros scripts.

Lo que vamos a agregar ahora es un if que va a verificar si existe una variable del tipo GET que se llame salir, en caso de que exista destruimos y borramos todo tipo de sesión que tenga el usuario, para que lo “desloguee”.

Luego nos fijamos si tenemos sesiones, en caso de que estén, asignamos a $arrUsuario la función esUsuario(). Y eso es todo nuestro código php.

En el html agregamos también un par de if más. El primero es un if verificando si existe el usuario, en caso de que sea un usuario sin iniciar sesión le mostramos el ingresar o registrarse. En caso de que sea un usuario conocido, le damos la bienvenida y la posibilidad de cerrar sesión.

El “salir” nuevamente, es un enlace al index con la variable get salir = true.

En caso de que sea un administrador, le mostramos un enlace al panel de control, mediante otro if que verifique el tipo de usuario del que se trate.

Bueno, por ahora eso es todo por hoy, ya la clase que viene vamos a empezar a trabajar en el back-end del sitio.

Haz clic aquí para descargar los archivos que utilizamos de ejemplo en la clase de hoy.

<< CLASE ANTERIOR

CLASE SIGUIENTE >>


Enviar a Del.icio.us Enviar a Meneame Enviar a Digg Enviar a Fresqui Enviar a Enchilame

Comentarios (54)

  1. Martin dice:

    Justi, una consulta.. el taller actual solamente completa una base de PHP o tambien la parte de OOP, ya que seria bueno contar con tutoriales sobre clases, herencia, etc.

    Gracias!

  2. Mayra Gallegos dice:

    hola que tal, pues aqui de new haciendome preguntas.
    Acabo de estar checando este curso y me parecio interesante, ya lo habia visto pero no sabia ni que hasta ahora y pienso seguirlo para aprenderlo.

    1. ¿Donde puedo generar el codigo? bloc de notas o un editor web? o como empiezo a generarlo?

    gracias, muy buena su web sigan asi, nos ayudan mucho 😉

  3. Vladis dice:

    Mayra puedes hacerlo desde el bloc de notas guardandolos como .php o desde e l dreamweaver…sigue adelante, “nunca te acuestes sin tener un sueño”…

  4. Martin dice:

    Mayra, tenes varias formas si no contas con dreamweaver, te bajas el notepad++ que te da la posibilidad de insertar el codigo php y luego, configurarlo como lenguaje PHP para que te reconozca las palabras claves, otra opción es conseguirte el php designer.

  5. mayra gallegos dice:

    muchas gracias, por sus comentarios me de mucha utilidad.

    😉 Dios los Bendiga.

  6. mayra gallegos dice:

    muchas gracias, por sus comentarios me son de mucha utilidad.

    😉 Dios los Bendiga.

  7. RUBEN STEINBERG dice:

    bueno, nada se de informatica en cifras! soymedico hace mas de 56 años, ejerci la anestesiologi, ahora jubilado, escribo cuentos.

  8. RUBEN STEINBERG dice:

    esla primera vez que entro aqui!

  9. Txata dice:

    Simplemente genial! Me ha encantado encontrar este tutorial. Lo voy a seguir completo.

    Tengo alguna noción de php, creo que con estoy voy a completar alguna dudilla.

    Muchiiiiiiiisimas gracias!

  10. Justi dice:

    el taller no incluye la parte de OOP.

  11. cristian dice:

    EHI GENTE ALGUIEN ME PUEDE DECIR EL COMO SE INSTALA “PHP 5.2.8” UNA VEZ DESCARGADO DE INTERNET ¡ESPERO RESPUESTAS!

  12. Nak dice:

    hey ya tengo casi todo, pero al iniciar sesion me dice…. El nombre de usuario o contraseña no coinciden… que puedo hacer donde podria estar el error?…

  13. Nak dice:

    hey aun no encuentro solucion aunq sea un no se podrian responderme jajaja XD

  14. Gustavo dice:

    Hola Justi, tengo el mismo problema de Nak que podria hacer??? no quiere funcionarme el codigo :(, no nos podrias ayudar??? siempre sale lo de “El nombre de usuario o contraseña no coinciden” :(

  15. Julio dice:

    Hola que tal el curso fue incríble pero tengo una duda y quisiera que me ayuden
    me funciona todo bien pero cuando quiero iniciar sesion me funca la parte de que el usuario y contraseña no coincide y me arroja un warning:

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\xampp\htdocs\www\frba\admin\es_usuario.php on line 11

    bueno corregí que ya no me salga ese mensaje cambiando el tipo de comillas en ‘usuario’
    pero nose como corregir para que me acepte los usuarios ya registrados e ingresen al sistema porque me sigue arrojando el mensaje de que el usuario y contraseña no coinciden

    Gracias de antemano

  16. Justi dice:

    ojo que donde dice & amp;& amp; (sin el espacio en el medio) en realidad tendría que decir &&, lo que pasa que el publicador de noticias de este sitio (elwebmaster) reemplaza el código por seguridad.

    (eso esta más o menos por la linea 13 del primer bloque y en la 20 del segundo)

  17. Mixons dice:

    Ya tengo casi todo, pero al iniciar sesion me dice…. El nombre de usuario o contraseña no coinciden… que puedo hacer donde podria estar el error?…

  18. Baldemar dice:

    Hola,

    Tengo una duda: ¿porqué al cargar directamente ingresar.php, después de iniciar sesión, envía los siguientes errores, y como podrían corregirse?

    Warning: Missing argument 3 for esUsuario(), called in ingresar.php on line 9 and defined in esUsuario.php on line 2

    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in esUsuario.php on line 7

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in esUsuario.php on line 8

    Gracias de antemano!

  19. Justi dice:

    @mixons hola Mixons, si no te tira ningun error de codigo y solo eso, es que el usuario y contraseña no coinciden, asegurate de que esten bien los datos en la base de datos.

    @baldemar fijate que te esta tirando el error de que el 3er parametro no esta definido en la funcion esUsuario, es decir, no le estas pasando $dbConn o la funcion conectar que se usa para traer el puntero de conexion con la base de datos no esta devolviendo nada. Asegurate de que este funcionando eso.

  20. Baldemar dice:

    Hola Justi,

    Mira, revisé el código tanto el de los ejemplos como el que redacté y la linea que da el error es esta:
    if ( esUsuario( $_SESSION[‘usuario’], $_SESSION[‘password’] ) ) {

    Tanto en los archivos de ejemplo como en el mío da ese error, ciertamente falta un tercér parámetro pero no se como incluirlo o porque habría de incluir $dbConn en esa linea.

    Gracias de nuevo!

  21. Baldemar dice:

    Bueno, agregando $dbConn se soluciona y permite la redirección a index.php, debe quedar:

    if ( esUsuario( $_SESSION[‘usuario’], $_SESSION[‘password’], $dbConn ) ) {

    Saludos!!

  22. Justi dice:

    @baldemar me alegra que te haya funcionado, hay que agregar el tercer parámetro porque la función esUsuario esta esperando que le pases el puntero de conexión a la base de datos para verificar si están bien los datos del usuario.

  23. Víctor dice:

    Buenas, una pequeña aportación para los que les da el error en el login de que el ‘El nombre de usuario o contraseña no coinciden’: comprobar que el campo de la base de datos es un char de 32, porque si el campo está definido con menos de 32 caracteres, md5 utiliza 32 y entonces la contraseña se guarda cortada en vuestra tabla.

    Saludos.

  24. juka dice:

    Hola. Utilizando NetBeans me da el error “Possible accidental assignment, assignments in conditions should be avoided” en la línea del archivo ingresar.php
    If($arrUsuario = esUsuario($usuario, md5($password), $dbConn)) {
    y aunque sólo parece una advertencia, lo cierto es que no consigo que los usuarios puedan registrarse.
    Alguna pista?

  25. Justi dice:

    igual es solo una advertencia, porque no es una buena practica de programación hacer una asignacion dentro de una condición, pero en PHP esta permitido. NetBeans como es una IDE pensada más que nada para trabajar con JAVA, es que te advierte de estas cosas, pero no esta afectando que no puedas loguear este “warning”

  26. juan dice:

    al ingresar con el usuario y pass me tira error

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\EDT09php\admin\esUsuario.php on line 11

    php

    function esUsuario ( $usuario, $password, $conexion ) {

    // verifica que esten los dos campos completos.
    if ($usuario==” || $password==”) return false;

    // busqueda de los datos de usuarios para loguear.
    $query = “SELECT idUsuario, usuario, password, tipo FROM `usuarios` WHERE usuario = ‘$usuario'”;
    $resultado = mysql_query ($query, $conexion);
    $row = mysql_fetch_array ($resultado); //esta seria la linea 11
    $password_from_db = $row [‘password’];
    unset($query);

    // verifica que el pass enviado sea igual al pass de la db.
    if ( $password_from_db == $password ) {
    return $row;
    } else return false;

    }

    Por favor ayuden.
    PD: Excelente el blog

  27. Justi dice:

    @juan hola! asegurate que a la funcion esUsuario le este llegando bien el parametro $conexion, osea en el archivo donde se llama a esUsuario habría que ver que se este pasando la conexion a la db. Yo creería que ese es el error.

  28. Nak dice:

    jaja… aun no se me soluciona lo de usario y/o contraseña no coinciden… ayuda… ya tengo tres blogs de wordpress pero quiero aprender a manejar uno como el que muestran aqui… XD… los primero errores eran de mysql_fecht_array.. algo asi por alli lei que poniendo una @ se quitaba el error pero no creo que sea la solucion de alli partira mi error?…

  29. maritza dice:

    justi, yo tengo ya mi clave encriptad en mi base de datos en mi pagina pero al querer ingresar como usuario ya registrado(y si lo esta)me sale datos incorrectos no se donde estos fallando esta es la pagina donde se verifica al usuario a ingresar osea donde se valida el acceso:

    <?
    session_start();
    require(“conexion.php”);
    $u=$_POST[‘usuario’];
    $clave=$_POST[‘clave’];
    $clave = md5($clave);
    $sql=” select * from usuarios where usuarios=’$u’ and clave=’$clave'”;
    $r=mysql_query($sql);
    if($f=mysql_fetch_array($r))
    {
    $_SESSION[‘usuario’]=$u;
    header(“location:panel.php”);
    }else {
    echo ” alert(‘datos incorrectos’);
    window.location=’index.php’;
    “;
    }
    ?>

  30. Alfredo Regalado dice:

    Saludos. Aunque gracias al aporte de Victor de poner el campo del pass en la BD de 32. Me acepta bien y me envia al index. Pero cuando quiero imprimir el nombre del usuario logueado. No sale. Ni siquier si hago esto.. if (!empty($_SESSION[‘suser’]) && !empty($_SESSION[‘spass’])){
    $arrUser = esUsuario($_SESSION[‘suser’],$_SESSION[‘spass’],$dbConn);
    echo “ENTRAMOS AQUI…”;
    }…

    Lo que quiero es que si estoy logueado no me muestre Iniciar Session o Registrar

  31. Tcaos dice:

    HHola Alfredo, me parece que para poder evitar que te salga el Iniciar Sesion o Registrar una vez loguedo un usuario, deberías incluir el código HTML que no deseas mostrar dentro de un condicional php.
    Por ejemplo, el body podría quedar así (los signos de apertura y cierra de las etiquetas “” te los reemplazo con “-“. Ve mirando con cuidado donde reemplar cada uno):

    body

    -h1- Blog Personal -/h1-

    -?php if ( !empty($_GET[‘registro’]) ) { ?-
    -div- El registro ha sido exitoso. -/div-
    -?php } ?-

    -?php
    if ( !empty( $_SESSION[‘usuario’] ) && !empty($_SESSION[‘password’]) ) {

    ?-
    Bienvenido -strong–i–php echo $arrUsuario[‘usuario’] ?- -/i–/strong-
    -br /-
    -br /-
    -a- href=”index.php?salir=true” Salir -/a-
    -?php
    }else{
    ?-
    -ul-
    -li–a href=”ingresar.php”-Iniciar sesión-/a–/li-
    -li–a href=”registrar.php”-Regístrate gratis-/a–/li-
    -/ul-

    -ul-

    -li–a href=”admin/index.php”-Panel de administración-/a–/li-

    -/ul-
    -?php
    }
    ?-
    -/body-

    De este modo sólo te aparecerá Iniciar Sesion, Registrarse o Panel de Administración si el usuario no está loguedado. Y si lo está dirá Bienvenido “usuario_logueado” y más abajo “Salir”.
    Espero que te sirva. Un saludo

  32. Ale dice:

    Hola…Por favor, alquien me podria ayudar…me salta el error al logearme “usuario y contraseña no coinciden”…me he fijado en la db y el campo del pass esta en 32…espero una respuesta please!!!

  33. jaime azair dice:

    hola lo de sesion se copia en todas las paginas para corroborar qu e seal apersona indicada y evitar regresarse?por favor responde mi pregunta, se copia todo el codigo o se llama al archivo .php?

  34. Justi dice:

    no entiendo tu pregunta

  35. Deivos dice:

    buenas a todos tengo una consulta resulta que ocupe ese codigo y lo que quiero es agregarle mas datos del usuario el codigo me funciona de maravilla pero en realidad no se como mostrar mas datos del usuario logeadode antemano muchas gracias

  36. Rikardo dice:

    Buenas, mi inquietud es la siguiente… al momento de ingresar los datos del usuario o contraseña de manera incorrecta e incluso si los dejo vacios no me esta mostrando los msj de error que aparecen en el codigo solo se quedan los datos ahi sin continuar… quisiera que me ayuden en esto… El ingreso de los datos si lo hago de manera correcta y me lleva al index…

    y referente al comentario de Alfredo yo coloque esta parte y no me muestra el ingresar ni el registrado una vez halla sido logueado y cuando le doy en salir no me muestra salir (valga la redundancia) ni panel de administracion… espero sea util mi ayuda y me colaboren con lo que pido…

    Blog Personal

    El registro ha sido exitoso.

    Iniciar sesión
    Regístrate gratis

    Bienvenido – Salir

    Panel de administración

    Esto va en el body del index :)

  37. carlos dice:

    hola a todos alguien me puede ayudar de como puedo crear y validadar un inicio de session de usuario

  38. sergio dice:

    Hola!
    muy bueno el curso, pero tengo un problemita…
    no me anda el logueo en inetrnet explorer 8. es como si se me borrara la informacion de usuario
    saludos

  39. Jesus dice:

    me facino tu taller justi, esta fantastico te doy 10 en todo lo que has hecho felicidadez

  40. Gon dice:

    Agradecer tan maravilloso aporte, gracias.

  41. wil dice:

    No consigo ver como lo haces para mostar o no el enlace a admin/index.php en función de si es admin.
    ¿Cómo lo haces?

    Gracias por tu tiempo, de verdad que ayudas mucho con este taller de php.

  42. wil dice:

    Ya lo he visto en la siguiente lección Gracias!!

  43. Phantom dice:

    hola una pregunta, yo hice, algo mas o menos parecido a lo tutyo pero al logearme me aparece esto en el navegador:

    Fatal error: Uncaught exception ‘Zend_Db_Adapter_Exception’ with message ‘SQLSTATE[28000] [1045] Access denied for user ‘sct’@’localhost’ (using password: YES)’ in C:\xampp\htdocs\crm\lib\Zend\Db\Adapter\Pdo\Abstract.php:143 Stack trace: #0 C:\xampp\htdocs\crm\lib\Zend\Db\Adapter\Abstract.php(770): Zend_Db_Adapter_Pdo_Abstract->_connect() #1 C:\xampp\htdocs\crm\lib\Zend\Db\Adapter\Abstract.php(840): Zend_Db_Adapter_Abstract->quote(‘prueba’, NULL) #2 C:\xampp\htdocs\crm\lib\Ns\Auth.php(331): Zend_Db_Adapter_Abstract->quoteInto(‘`ingenieros_pas…’, ‘prueba’) #3 C:\xampp\htdocs\crm\lib\Ns\Auth.php(262): Ns_Auth_Adapter_DbTable->_authenticateCreateSelect() #4 C:\xampp\htdocs\crm\lib\Zend\Auth.php(117): Ns_Auth_Adapter_DbTable->authenticate() #5 C:\xampp\htdocs\crm\bin\login.php(9): Zend_Auth->authenticate(Object(Ns_Auth_Adapter_DbTable)) #6 {main} thrown in C:\xampp\htdocs\crm\lib\Zend\Db\Adapter\Pdo\Abstract.php on line 143

    no se que este pasando, su puedes hecarme la mano te lo agradeceria mucho.

  44. Stephan Barker dice:

    Excelente tutorial, solamente me da este error al tratar de ingresar:
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\Curso\admin\esUsuario.php on line 7

    Y en el codigo me da un warning en:
    if ( $arrUsuario = esUsuario($usuario,md5($password),$dbConn) )

    no se que esta malo si alguien me puede ayudar. =)

  45. Sofia dice:

    Hola, muy bueno el tutorial, te felicito!!
    Te comento que tuve un error en la sintaxis:

    Parse error: syntax error, unexpected ‘;’ in /home/a1078933/public_html/ingresar.php on line 23

    Alguien me podría decir porque me marca el error, el código en esa línea es:
    header(“Location: index.php”);
    y el cógigo anterior es:
    if ( !empty( $_SESSION[‘usuario’] ) && !empty($_SESSION[‘password’]) ) {
    if ( esUsuario( $_SESSION[‘usuario’], $_SESSION[‘password’], $dbConn ) ) {
    header(“Location: http://www.sofiaagonal.site40.net/index.php“);
    die;
    }
    }

    Espero su respuesta, Gracias

  46. Sofia dice:

    Hola, ya solucione el problema. Tenia el archivo ingresar.php en la carpeta admin.

    Saludos

  47. Benjamin dice:

    Hola Que tal te felicito por el manual.. es muy completo por lo que vi el temario. Estoy aprendiendo esto de php y mysql je bueno en fin estoy haciendo tutoria con tus codigos pero no me funciona me sale error en el archivo esusuario.php muchos.. je aqui los pongo:

    ! ) Warning: Missing argument 3 for esUsuario(), called in C:\wamp\www\blog\ingresar.php on line 23 and defined in C:\wamp\www\blog\admin\esUsuario.php on line 4
    Call Stack
    # Time Memory Function Location
    1 0.0075 377416 {main}( ) ..\ingresar.php:0
    2 0.0179 388816 esUsuario( ) ..\ingresar.php:23

    ( ! ) Notice: Undefined variable: dbConn in C:\wamp\www\blog\admin\esUsuario.php on line 8
    Call Stack
    # Time Memory Function Location
    1 0.0075 377416 {main}( ) ..\ingresar.php:0
    2 0.0179 388816 esUsuario( ) ..\ingresar.php:23

    ( ! ) Notice: Undefined variable: dbConn in C:\wamp\www\blog\admin\esUsuario.php on line 8
    Call Stack
    # Time Memory Function Location
    1 0.0075 377416 {main}( ) ..\ingresar.php:0
    2 0.0179 388816 esUsuario( ) ..\ingresar.php:23
    3 0.0189 388848 esUsuario( ) ..\esUsuario.php:8

    ( ! ) Notice: Undefined variable: dbConn in C:\wamp\www\blog\admin\esUsuario.php on line 8
    Call Stack
    # Time Memory Function Location
    1 0.0075 377416 {main}( ) ..\ingresar.php:0
    2 0.0179 388816 esUsuario( ) ..\ingresar.php:23
    3 0.0189 388848 esUsuario( ) ..\esUsuario.php:8
    4 0.0193 388880 esUsuario( ) ..\esUsuario.php:8

    ( ! ) Notice: Undefined variable: dbConn in C:\wamp\www\blog\admin\esUsuario.php on line 8
    Call Stack
    # Time Memory Function Location
    1 0.0075 377416 {main}( ) ..\ingresar.php:0
    2 0.0179 388816 esUsuario( ) ..\ingresar.php:23
    3 0.0189 388848 esUsuario( ) ..\esUsuario.php:8
    4 0.0193 388880 esUsuario( ) ..\esUsuario.php:8
    5 0.0197 388912 esUsuario( ) ..\esUsuario.php:8

    ( ! ) Notice: Undefined variable: dbConn in C:\wamp\www\blog\admin\esUsuario.php on line 8
    Call Stack
    # Time Memory Function Location
    1 0.0075 377416 {main}( ) ..\ingresar.php:0
    2 0.0179 388816 esUsuario( ) ..\ingresar.php:23
    3 0.0189 388848 esUsuario( ) ..\esUsuario.php:8
    4 0.0193 388880 esUsuario( ) ..\esUsuario.php:8
    5 0.0197 388912 esUsuario( ) ..\esUsuario.php:8
    6 0.0202 388944 esUsuario( ) ..\esUsuario.php:8

    y esta tabla de arriba se repiten infinitamente….

    nose que puede hacer si me ayudan.. :S Gracias.!

  48. Luigi dice:

    que tal he estado siguiendo el taller y de verdad que es muy bueno pero al registrar un usuario me manda los siguientes warning:

    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\AppServ\www\blog\registrar.php on line 32

    Warning: Cannot modify header information – headers already sent by (output started at C:\AppServ\www\blog\registrar.php:32) in C:\AppServ\www\blog\registrar.php on line 34

    si alguien puede ayudarme por favor y gracias

  49. Gustavo dice:

    EXELENTE TALLER!!!!!! te felicito, el error q me sale es el siguiente:
    Warning: Cannot modify header information – headers already sent by (output started at C:\AppServ\www\GDR\Config_db.php:7) in C:\AppServ\www\reg.php on line 47
    y el codigo:

    <?php

    // archivos necesarios
    require_once ‘GDR/config_db.php’;
    require_once ‘GDR/conexion.php’;

    // obtengo puntero de conexion con la db
    $dbConn = conectar();

    // si se envio el formulario
    if ( !empty($_POST[‘submit’]) ) {

    // definimos las variables
    if ( !empty($_POST[‘usuario’]) ) $usuario = $_POST[‘usuario’];
    if ( !empty($_POST[‘password’]) ) $password = $_POST[‘password’];
    if ( !empty($_POST[‘re-password’]) )$rePassword = $_POST[‘re-password’];
    if ( !empty($_POST[‘email’]) ) $email = $_POST[‘email’];

    // completamos la variable error si es necesario
    if ( empty($usuario) ) $error[‘usuario’] = ‘Es obligatorio completar el nombre de usuario’;
    if ( empty($password) ) $error[‘password’] = ‘Es obligatorio completar la contraseña’;
    if ( empty($email) ) $error[‘email’] = ‘Es obligatorio completar el email’;
    if ( $_POST[‘password’] != $_POST[‘re-password’] ) {
    $error[‘re-password’] = ‘La contraseña no coincide’;

    // verificar que no exista nombre de usuario y tampoco email
    $busca_usuario = “SELECT usuario FROM reg WHERE usuario=’$usuario'”;
    $busca_email = “SELECT email FROM reg WHERE email=’$email'”;
    $resul_usuario = mysql_query($busca_usuario, $dbConn);
    $resul_email = mysql_query($busca_email, $dbConn);
    if (mysql_num_rows($resul_usuario) != 0) {
    $error[‘rep_usuario’] = “Usuario existente”;
    }
    if (mysql_num_rows($resul_email) != 0) {
    $error[‘rep_email’] = “Correo existente”;
    }
    // fin verificacion de datos repetidos
    }

    // si no hay errores registramos al usuario
    if ( empty($error) ) {

    // inserto los datos de registro en la db
    $query = “INSERT INTO reg (usuario,password,email) VALUES (‘$usuario’,'”.md5($password).”‘,’$email’)”;
    $result = mysql_query($query, $dbConn);

    header( ‘Location: Catalogo1.php?registro=true’ );
    die;

    }

    }

    no se cual puede ser el problema lo q mas modifique es las variables y las direcciones para usar mis carpetas.
    Desde ya gracias y felicitaciones exelente taller!!!

  50. Santiago dice:

    Buenas… Bueno tengo un problemita. cuando trato de iniciar sesión con un usuario registrado en la base de datos la pagina se queda en blanco. no me redirecciona ni nada.

  51. Alberto dice:

    tengo el mismo problema que santiago intente modificar la linea 37 de ingresar.php por esta if ( esUsuario( $_SESSION[‘usuario’], $_SESSION[‘password’], $dbConn ) ) {… pero tampoco me funciona por favor ayuda..!

  52. RODOLFO SEALES POSADA dice:

    ES POSIBLE QUE CON UN SESSION, SE PUEDA MULTIPLEXAR UN aplicativo de php mysql, para poder ser usado por varios usuarios, sin combinarlos datos en la misma base de datos?

  53. marcos dice:

    hola profe justi, una pregunta revise los datos de la BD estan correctos, tambien puse el tipo de campo de password en CHAR 32 y me sigue saliendo — El nombre de usuario o contraseña no coinciden, gracias

  54. Facu Subiabre dice:

    Ufff… sé que esto es bastante viejo. Y que puede que sea una pregunta estúpida, pero ¿cómo creo un usuario administrador?

Deja tu opinión

© 2007 - 2008 elWebmaster.com | Powered by Wordpress | Diseño CSS y XHTML válido. | Algunos íconos basados en FamFamFam Mini
Acceder