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
-
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'";
-
$password_from_db = $row ['password'];
-
-
// verifica que el pass enviado sea igual al pass de la db.
-
if ( $password_from_db == $password ) {
-
return $row;
-
} else return false;
-
-
}
-
-
?>
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
-
// iniciamos sesiones
-
-
// archivos necesarios
-
require_once 'admin/config.php';
-
require_once 'admin/conexion.php';
-
require_once 'admin/esUsuario.php';
-
-
// obtengo puntero de conexion con la db
-
$dbConn = conectar();
-
-
// verificamos que no este conectado el usuario
-
if ( esUsuario( $_SESSION['usuario'], $_SESSION['password'] ) ) {
-
die;
-
}
-
}
-
-
// si se envio el formulario
-
-
// definimos las variables
-
-
// completamos la variable error si es necesario
-
-
// si no hay errores registramos al usuario
-
-
// verificamos que los datos ingresados corresopndan a un usuario
-
-
// definimos las sesiones
-
$_SESSION['usuario'] = $arrUsuario['usuario'];
-
$_SESSION['password'] = $arrUsuario['password'];
-
-
die;
-
-
} else {
-
$error['noExiste'] = 'El nombre de usuario o contraseña no coinciden';
-
}
-
-
}
-
-
}
-
-
?>
-
<h1>Inicio de sesión</h1>
-
<ul>
-
<li></li>
-
</ul>
-
<form action="ingresar.php" method="post"><label for="usuario">Nombre de usuario</label>
-
-
<input name="usuario" type="text" value="<? if ( ! empty($usuario) ) echo $usuario; ?>" />
-
-
<label for="password">Contraseña</label>
-
-
<input name="password" type="password" value="<? if ( ! empty($password) ) echo $password; ?>" />
-
-
<input name="submit" type="submit" value="Ingresar" />
-
-
</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
-
// iniciamos session
-
-
// archivos necesarios
-
require_once 'admin/config.php';
-
require_once 'admin/conexion.php';
-
require_once 'admin/esUsuario.php';
-
-
// obtengo puntero de conexion con la db
-
$dbConn = conectar();
-
-
// vemos si el usuario quiere desloguar
-
// borramos y destruimos todo tipo de sesion del usuario
-
}
-
-
// verificamos que no este conectado el usuario
-
$arrUsuario = esUsuario( $_SESSION['usuario'], $_SESSION['password'], $dbConn );
-
}
-
-
?>
-
<h1>Blog Personal</h1>
-
<div>El registro ha sido exitoso.</div>
-
<ul>
-
<li><a href="ingresar.php">Iniciar sesión</a></li>
-
<li><a href="registrar.php">RegÃstrate gratis</a></li>
-
</ul>
-
Bienvenido - <a href="index.php?salir=true">Salir</a>
-
<ul>
-
<li><a href="admin/index.php">Panel de administración</a></li>
-
</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 |








Martes, 30 de Septiembre de 2008 a las 13.20
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!
Martes, 30 de Septiembre de 2008 a las 22.57
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
Miércoles, 1 de Octubre de 2008 a las 14.29
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"...
Jueves, 2 de Octubre de 2008 a las 14.18
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.
Jueves, 2 de Octubre de 2008 a las 21.08
muchas gracias, por sus comentarios me de mucha utilidad.
Jueves, 2 de Octubre de 2008 a las 21.09
muchas gracias, por sus comentarios me son de mucha utilidad.
Martes, 7 de Octubre de 2008 a las 19.55
bueno, nada se de informatica en cifras! soymedico hace mas de 56 años, ejerci la anestesiologi, ahora jubilado, escribo cuentos.
Martes, 7 de Octubre de 2008 a las 19.57
esla primera vez que entro aqui!
Lunes, 24 de Noviembre de 2008 a las 15.51
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!
Miércoles, 3 de Diciembre de 2008 a las 18.30
el taller no incluye la parte de OOP.
Domingo, 25 de Enero de 2009 a las 15.38
EHI GENTE ALGUIEN ME PUEDE DECIR EL COMO SE INSTALA "PHP 5.2.8" UNA VEZ DESCARGADO DE INTERNET ¡ESPERO RESPUESTAS!
Domingo, 8 de Febrero de 2009 a las 18.41
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?...
Domingo, 19 de Abril de 2009 a las 02.32
hey aun no encuentro solucion aunq sea un no se podrian responderme jajaja XD
Miércoles, 29 de Abril de 2009 a las 11.29
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"
Jueves, 30 de Abril de 2009 a las 06.17
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
Lunes, 4 de Mayo de 2009 a las 11.46
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)
Jueves, 7 de Mayo de 2009 a las 15.56
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?...
Viernes, 8 de Mayo de 2009 a las 07.21
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!
Viernes, 8 de Mayo de 2009 a las 11.35
@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.
Viernes, 8 de Mayo de 2009 a las 17.55
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!
Viernes, 8 de Mayo de 2009 a las 18.26
Bueno, agregando $dbConn se soluciona y permite la redirección a index.php, debe quedar:
if ( esUsuario( $_SESSION['usuario'], $_SESSION['password'], $dbConn ) ) {
Saludos!!
Viernes, 8 de Mayo de 2009 a las 19.27
@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.
Domingo, 31 de Mayo de 2009 a las 15.05
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.
Martes, 9 de Junio de 2009 a las 20.20
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?
Jueves, 11 de Junio de 2009 a las 12.12
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"
Jueves, 18 de Junio de 2009 a las 22.19
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
Miércoles, 24 de Junio de 2009 a las 16.29
@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.
Sábado, 27 de Junio de 2009 a las 20.59
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?...
Lunes, 3 de Agosto de 2009 a las 15.31
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';
";
}
?>
Domingo, 16 de Agosto de 2009 a las 20.04
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
Martes, 22 de Septiembre de 2009 a las 14.24
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
Miércoles, 23 de Septiembre de 2009 a las 00.37
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!!!
Miércoles, 4 de Noviembre de 2009 a las 00.50
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?
Miércoles, 4 de Noviembre de 2009 a las 14.47
no entiendo tu pregunta
Lunes, 22 de Marzo de 2010 a las 15.31
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
Jueves, 15 de Julio de 2010 a las 03.52
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
Domingo, 8 de Agosto de 2010 a las 03.28
hola a todos alguien me puede ayudar de como puedo crear y validadar un inicio de session de usuario
Martes, 10 de Agosto de 2010 a las 23.16
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
Lunes, 25 de Octubre de 2010 a las 08.10
me facino tu taller justi, esta fantastico te doy 10 en todo lo que has hecho felicidadez
Miércoles, 16 de Febrero de 2011 a las 19.21
Agradecer tan maravilloso aporte, gracias.
Jueves, 10 de Marzo de 2011 a las 12.56
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.
Jueves, 10 de Marzo de 2011 a las 12.58
Ya lo he visto en la siguiente lección Gracias!!
Miércoles, 13 de Abril de 2011 a las 15.27
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.
Lunes, 2 de Mayo de 2011 a las 20.26
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. =)
Miércoles, 4 de Mayo de 2011 a las 17.31
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
Miércoles, 4 de Mayo de 2011 a las 18.06
Hola, ya solucione el problema. Tenia el archivo ingresar.php en la carpeta admin.
Saludos
Viernes, 3 de Junio de 2011 a las 05.13
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.!
Martes, 23 de Agosto de 2011 a las 12.07
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
Miércoles, 9 de Noviembre de 2011 a las 12.45
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!!!
Viernes, 27 de Abril de 2012 a las 01.37
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.