en el formulario tengo
1.Usuario
2.Password
ya valida el usuario y la contraseña lo que necesito es hacer que el usuario solo tenga 3 intentos para el ingreso de su contraseña.
espero me puedan ayudar gracias

| ||||
Pues puedes hacerlo fe una forma "facil", agregando un <input type="hidden" name="tries" value="0"> e ir incrementando el valor de tries cada vez. O hacerlo mas complejo, en la base de datos guardas, cuantas veces ha tratado y la fecha, asi si trata mas de X veces, lo guardas en la base que ya no puede tratar hasta Y fecha, y en el principio de tu login, checas la fecha y ves si puede o no intentarlo. |
| ||||
tambien puedes ir guardandolo en una variable de sesion... y para que no te estorbe despues al momento de acceder a la pagina protegida le das un unset a la variable de la session... tengo un codigo medio extraño para eso pues lo acabo de implementar en un sitio, te lo pongo en dos horas por que me llaman a junta,..... voy que vuelvo.. espero te sirva un poco mas tarde... saludos!!! |
| ||||
if ($totalRows_rsvalida == 0) //si la consulta a la base de datos con el nombre de usuario y contraseña me devuelve un CERO es por que no se encontro ese registro y por ende o esta mal el usuario o la contraseña { if (isset($_SESSION['contador'])) //si ya existe la variable de sesion contador..... { $_SESSION['contador']=$_SESSION['contador']+1; //le sumo el intento fallido $int = $_SESSION['contador']; if ($int <= 4) //comparo que sea menor o igual a 4 intentos { header ("Location: index.php?error=0&int=$int"); // lo mando a la pagina de logeo diciendole q esta mal el nombre de usuario y contraseña... exit; } if ($int > 4) //si ya paso de 4 intentos... { header ("Location: registro/registro.php?error=3"); //lo mando a la pagina de "Mejor registrese..." exit; } } else //si no existe la variable de sesion contador entonces la inicializo y le doy el valor primario de 1 y lo redireciono de nuevo a la pagina de login. { $_SESSION['contador'] = 1; $int = $_SESSION['contador']; header ("Location: index.php?error=0&int=$int"); exit; } } Como te habras dado cuenta en todos los caso de los headers va una variable $error que pasa por la URL, esto es para mostrar los mensajes de error respectivos en cada pagina, por ejemplo en el index.php le muestra un mensaje de "nombre de usuario y contraseña incorrectos!" y en la pagina de registro.php, al detectar la variable $error de la URL le muestra le mensaje de "Mejor registrese..." Espero te sirva de algo .... saludos!!! |
| |||
yo tengo un sistema de logeo que utiliza el sistema de windows, te lo pongo, los datos los obtengo de una base de datos. <? if(!isset($PHP_AUTH_USER)) { header('WWW-Authenticate: Basic realm="Acceso Restringido"'); header('HTTP/1.0 401 Unauthorized'); echo 'Se necesita un nombre de Usuario y un Password Correcto Para poder Ingresar'; exit; } //el siguiente script es de conexion devuelve la conexion a la base datos //con el usuario y pass correcto include "conexion.php"; // script de conexion // aqui la tabala admin solo tiene un registro que // es el administrador del sistema // si lo quieres para más registros solo incluyele un ciclo $result=mysql_query("select * from admin",$conexion); $row=mysql_fetch_row($result); // obtengo los datos $usua=$row[0]; $clave=$row[1]; include"cerrar_conexion.php"; // script para cerrar la conexion $validado=false; if(($PHP_AUTH_USER==$usua)&&($PHP_AUTH_PW==$clave) ) $validado=true; if(!$validado) { header('WWW-Authenticate: Basic realm="Acceso restringido"'); header('HTTP/1.0 401 Unauthorized'); echo 'Se necesita un nombre de Usuario y un Password Correcto Para poder Ingresar'; exit; } ?> por ser un sistema de windows, te permite, solo intentar 3 veces, esto no puede ser controlado |
| ||||
GatorV muchas gracias por ayudarme pero ya le estaba haciendo de esa manera y no consegui hacer lo que deseaba pero si puedes enviarme el codigo porfa seria de mucha ayuda pa ver en donde estoy errando por fa disculapa la molestia y gracias nuevamente. |
| ||||
Muchisimas gracias norpool1 voy a probarlo y espero que funcione como tu lo dices parece facil pero lo voy a implementar en el sistema de login que tengo de todos modos muchas gracias, luego te cuento como me fue ok bay bay |
| |||
te recomiendo que este sea un script aparte, llámalo "autentifica.php" entonces a la página que requiere logeo le incluye la siguiente línea al inicio: <? include"autentifica.php";?> así cuando quieres abrir la página primero te autentifica, si es correcto ve todo lo demás, sino es correcto se queda en el script autentifica con un mensaje de error. Se le pueden hacer adaptaciones para que te envie a otra página y cosas así, solo si lo requieres. |
| ||||
muchas gracias por la aclaracion norpool1 y espero me funcione y otra pregunta y si lon quiero hacer mas complicado como deberia hacerlo por ejemplo si deseo que el usuario que excedio en sus intentos de ingreso no pueda ingresar durante todo el dia |
| |||
podrias agregarle a la tabla admin un campo fecha, en el cual si ya no pudo entrar hoy, le gregues la fecha y en la consulta a la tabla revises la fecha si concide con hoy no abre, sino abre y borras el campo. si tienes messenger de hotmail puedes agregarma [email protected] para que estemos en contacto más rápido. y me digas que estás haciendo y enviarte los script para hacerlos funcionar. Norberto |
| |||
me equivoque en el correo es [email protected] el de gmail es [email protected] |
| |||
Yo uso este codigo para hacer lo que deseas: <FONT style="BACKGROUND-COLOR: #f5f5ff"> Código PHP: http://www.okram.com.ar/intentos.php Y otra cosa, solo decirles, y no para incomodarlos o molestar, que el pedir ayuda atraves de un MP o por correo electronico es considerado como una falta de respeto o discriminacion hacia los demas usuarios... Espero te sirva e codigo, ya comentas como t fue Salu2 ![]() EDITADO: Me olvidaba, los datos supuestos de acceso correcto en el ejemplo que te di son USUARIO: admin y PASS: abc .... Despoues de tres intentos fallidos el usuario no podra loguearse por 20 segundos... si quieres aumentar el tiempo a un dia por ejemplo: 60*60*24 |
| |||
el dar mi correo o ayudar por mp no es para discriminar a los demás usuarios, solo es para tener un contacto más rápido y personalizado para resolver más rápido sus dudas si es que prefiere utilizar mi código, además le puedo enviar los scripts que tengo y la forma en que operan sin hacer más grande el tema. si un usario tiene el mismo problema lo resuelve enviando un e-mail y no publicando nuevamente. No es molestia, sino aclaración. I.S.C. Norberto Pablo |
| |||
Totalmente de acuerdo ![]() pero... Cita: los usuarios que lleguen a este mensaje y usen tu codigo sera gracias al buscador, pero dado que muchos aqui no lo usan, es inevitable que de aqui a un tiempo este tema sea replanteado, en cuyo caso lo ideal sera linkear nuevamente a este mensaje, y si hay mas dudas seguir posteando aqui con el fin de contribuir y ayudar a los demas usuarios, no limitando asi la solucion al que plantea el problema.
Iniciado por norpool1 si un usario tiene el mismo problema lo resuelve enviando un e-mail y no publicando nuevamente. ademas, los usuarios con el mismo problema que lleguen a este mensaje o a cualquier otro que haya sido resuelto por PM o por email, pues al no ver la solucion completa posteada lo que harann s iniciar un nuevo tema, por lo que es mejor terminar siempre con los temas empezados en vez de dejarlos en el aire No es mi intencion para nada armar ningun problema, tan solo es un comentario acerca de algo que siempre se ha dado en los foros, y que deja cientos de mensajes sin una solucion aparente AQUI, que resulto resuelta por mensajes privados o por emails Salu2 ![]() |
| ||||
Bueno debo dar las gracias a todos por la ayuda brindada ya que en realidad todas las ideas y codigos expuestos funcionaron a pedir de boca o sea excelente gracias por resolver mis dudas y ayudarme mucho norpool1, pato_volador, okram en realidad fueron de mucha ayuda nuevamente muchas gracias. Saludos a todos :) |
| ||||
bueno debo dar las gracias a todos por la yuda brindada es muy bueno contar con personas como ustedes, nuevamente muchas gracias GatorV,pato_volador, norpool1, y okram el codigo y las ideas que ustedes me presentaron fue de mucha ayuda y en realidad me sirvio de mucho ya que de todos aproveche alguna idea gracias muevamente. saludos ;) |
| |||
Respuesta: Como validar para que el usuario ingrese solo 3 intentos en el login Interesante tema me sirvió mucho, la pregunta seria que actualizaciones tendría que hacer para este año 2015, o ya el php quedo desfasado yo sigo trabajando con el |