Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO como bloquear sesion después de tres intentos?

Estas en el tema de como bloquear sesion después de tres intentos? en el foro de PHP en Foros del Web. Hola buenos tardes con todos; tengo este código para validar usuarios funciona bien; ahora tengo la necesidad de complementar este código para que después de ...
  #1 (permalink)  
Antiguo 27/05/2015, 12:18
 
Fecha de Ingreso: agosto-2014
Ubicación: peru
Mensajes: 24
Antigüedad: 9 años, 8 meses
Puntos: 0
Pregunta como bloquear sesion después de tres intentos?

Hola buenos tardes con todos; tengo este código para validar usuarios funciona bien; ahora tengo la necesidad de complementar este código para que después de tres intentos de ingreso fallidos se bloquee la cuenta del usuario.... Ojala puedan ayudarme y gracias de antemano...

formulario para ingresar usuario y contraseña: (login.html)

Código PHP:
Ver original
  1. <form action="login.php" method="POST">
  2. Usuario: <input type="text" name="usuario" /><br />
  3. Clave: <input type="password" name="clave" /><br />
  4. <input type="submit" value="Iniciar" />
  5. </form>

código para validar usuario y contraseña: (login.php)

Código PHP:
Ver original
  1. <?php
  2. require_once('funciones.php');
  3. conectar('localhost', 'root', 'simplementemas', 'logistica_restaurant');
  4.  
  5. //Recibir
  6. $usuario = strip_tags($_POST['usuario']);
  7. $clave = strip_tags(sha1($_POST['clave']));
  8.  
  9. $query = @mysql_query('SELECT * FROM usuarios WHERE usuario="'.mysql_real_escape_string($usuario).'" AND clave="'.mysql_real_escape_string($clave).'"');
  10. if($existe = @mysql_fetch_object($query))
  11. {
  12.     $_SESSION['logged'] = 'yes';
  13.     $_SESSION['usuario'] = $usuario;
  14.     echo '<script>window.location="logeado.php"</script>';
  15. }else{
  16.     echo 'El usuario y/o pass son incorrectos.';   
  17. }
  18. ?>

confirmación de validación: (logueado.php)

Código PHP:
Ver original
  1. <?php
  2. if($_SESSION['logged'] == 'yes')
  3. {
  4.     echo 'Bienvenido '.$_SESSION['usuario'].'.';   
  5. }else{
  6.     echo 'No estas logeado.';  
  7. }
  8. ?>

Función (funciones.php)

Código PHP:
Ver original
  1. <?php
  2. function conectar($servidor, $user, $pass, $name)
  3. {
  4.     $con = @mysql_connect($servidor, $user, $pass);
  5.     @mysql_select_db($name, $con); 
  6. }
  7. ?>
  #2 (permalink)  
Antiguo 27/05/2015, 13:51
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 10 años, 8 meses
Puntos: 401
Respuesta: como bloquear sesion después de tres intentos?

Revisa este hilo ---> http://www.forosdelweb.com/f18/limitar-numero-intentos-para-acceder-566756/

o bien... con sesión.
Código PHP:
Ver original
  1. <?php
  2. if ( $_SESSION['intentos'] > 3 )
  3. {
  4.       $error_login = true;
  5. }
  6. ?>

Código PHP:
Ver original
  1. <?php
  2. if( !empty( $error_login ) )
  3. {
  4.     echo "Limite de intentos de acceso sobrepasado";
  5. }
  6. ?>
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-

Última edición por lauser; 27/05/2015 a las 13:58
  #3 (permalink)  
Antiguo 28/05/2015, 16:09
 
Fecha de Ingreso: agosto-2014
Ubicación: peru
Mensajes: 24
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: como bloquear sesion después de tres intentos?

hola lauser disculpa si duplique el post realmente no era mi intencion esque solo modifique el prmer post y se genero otro ...no volvera a pasar.
  #4 (permalink)  
Antiguo 28/05/2015, 16:24
 
Fecha de Ingreso: agosto-2014
Ubicación: peru
Mensajes: 24
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: como bloquear sesion después de tres intentos?

amigo lauser soy estudiante de tercer ciclo de Informática y la verdad no tengo mucha experiencia en programación, el código que te estoy mostrando arriba no lo e creado yo ya que me lo paso mi profesor para acomodarlo a la tarea que estoy haciendo, bueno de alguna forma logre acomodarlo y ahora necesito bloquear la cuenta después de tres intentos fallidos y quisiera hacerlo con sesión como tu me sugieres, pero no se si me podrás explicar un poco mas sobre el código que me estas mostrando exactamente donde debería ubicarlo en las paginas que tengo ya creadas; o es que tengo que crear otra pagina. Ya de por si te agradezco bastante por tu intervención y disculpa la molestia.
  #5 (permalink)  
Antiguo 28/05/2015, 16:32
 
Fecha de Ingreso: agosto-2014
Ubicación: peru
Mensajes: 24
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: como bloquear sesion después de tres intentos?

aquí te muestro mi tabla USUARIOS de la base de datos:

Usuarios

id_usuarios.....INT (11)
usuarios.........varchar(20)
dni.................varchar(20)
clave..............varchar(40)
email.............varchar(100)
ip...................varchar(15)

debería agregar un campo intentos ?

Última edición por migsbaz; 28/05/2015 a las 16:42
  #6 (permalink)  
Antiguo 29/05/2015, 00:10
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 10 años, 8 meses
Puntos: 401
Respuesta: como bloquear sesion después de tres intentos?

En el principio de tu archivo primario, en tu caso supongo que sera login.php.

El resto lo puedes colocar en el lugar que te venga mejor del código php.
http://php.net/manual/es/session.examples.basic.php

PD: Piensa que fdw es una gran comunidad forera, e igualmente que tu la visitas, tu profesor tambien.
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-
  #7 (permalink)  
Antiguo 29/05/2015, 06:24
 
Fecha de Ingreso: agosto-2014
Ubicación: peru
Mensajes: 24
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: como bloquear sesion después de tres intentos?

bueno louser entonces estoy tratando de entender el ejemplo que me diste :

http://www.forosdelweb.com/f18/limitar-numero-intentos-para-acceder-566756/

me podrías explicar para que me sirve el campo nivel o que se almacena en el?
  #8 (permalink)  
Antiguo 29/05/2015, 06:36
 
Fecha de Ingreso: abril-2009
Ubicación: En foros del web, normalmente en Web general, HTML y CSS.
Mensajes: 258
Antigüedad: 15 años
Puntos: 3
Respuesta: como bloquear sesion después de tres intentos?

Lo que te dice es que crees una variable dentro de "$_SESSION" que almacene los intentos inicializada a 0:

Código PHP:
$_SESSION['intentos'] = 0
Cuando un usuario intenta entrar y comete un error le sumas 1:

Código PHP:
$_SESSION['intentos'] += 1
Cuando llegue a 3 directamente le imprimes un mensaje de error al intentar logearse de nuevo:

Código PHP:
if($_SESSION['intentos'] >= 3) {
   
//Mensaje de error
}
else {
  
//Si no ha fallado 3 veces, compruebas si la cuenta y contraseña son correctas

Esto último lo tienes que meter al inicio del todo, inmediatamente después de "session_start()".

Aprovecho y te comento algunas cosas para la correcta programación:

Código PHP:
conectar('localhost''root''simplementemas''logistica_restaurant'); 
Las cuentas siempre deben ser importadas de un fichero aparte, de hecho la modularidad se debe aplicar siempre, de manera que si tienes que acceder a la base de datos en 10 scripts distintos, el día que cambies la cuenta o la contraseña no tengas que modificarlo uno por uno. Lo ideal es crear un fichero llamado "config.php" con array con la información de acceso a la BD:

Código PHP:
$bd = array('host' => 'localhost''BD' => 'mibd''usuario' => 'miusuario''pass' => 'mipass'); 
Otra cosilla, "mysql" está obsoleto, procura usar el módulo "mysqli" que es más eficiente e implementa nuevas funciones.

Un cordial saludo.
__________________
¿Por qué Anónimo?, porque como está el mundo no podemos considerarnos humanos...

Última edición por Anonimo12; 29/05/2015 a las 06:46
  #9 (permalink)  
Antiguo 29/05/2015, 07:21
 
Fecha de Ingreso: agosto-2014
Ubicación: peru
Mensajes: 24
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: como bloquear sesion después de tres intentos?

Grcias por la intervencion amigo Anonimo12 : es la primera vez que trabajo con sesiones y estoy bien liado; bueno vamos paso a paso aplicando lo que me recomendaste primero entonces mi login.php quedaria de esta forma:

Código PHP:
Ver original
  1. <?php
  2.  
  3. require_once('funciones.php');
  4. conectar('localhost', 'root', 'simplementemas', 'logistica_restaurant');
  5. $usuario = strip_tags($_POST['usuario']);
  6. $clave = strip_tags(sha1($_POST['clave']));
  7.  
  8. if($_SESSION['intentos'] >= 3) {
  9.  echo 'El usuario y/o pass son incorrectos.';
  10. }
  11.  
  12. $query = @mysql_query('SELECT * FROM usuarios WHERE usuario="'.mysql_real_escape_string($usuario).'" AND clave="'.mysql_real_escape_string($clave).'"');
  13. else ($existe = @mysql_fetch_object($query))
  14.  {
  15.   $_SESSION['logged'] = 'yes';
  16.     $_SESSION['usuario'] = $usuario;
  17.     echo '<script>window.location="logeado.php"</script>';
  18. }
  19. ?>

estará bien lo que hice?

y donde colocaria lo siguiente es decier esto:

Código PHP:
Ver original
  1. $_SESSION['intentos'] = 0;  
  2.  
  3.  
  4.  
  5. $_SESSION['intentos'] += 1;

gracias de antemano.
  #10 (permalink)  
Antiguo 29/05/2015, 08:18
 
Fecha de Ingreso: abril-2009
Ubicación: En foros del web, normalmente en Web general, HTML y CSS.
Mensajes: 258
Antigüedad: 15 años
Puntos: 3
Respuesta: como bloquear sesion después de tres intentos?

El script final te quedaría así:

Código PHP:
<?php
session_start
();

/* AQUÍ HACES LA COMPROBACIÓN */
if(!isset($_SESSION['intentos'])) //Si no se ha creado "intentos" es que aún no ha hecho ningún intento, por tanto la creamos.
   
$_SESSION['intentos'] = 0;
else if(
$_SESSION['intentos'] >= 3) { //Si existe "intentos" y ya hecho 3 comprobaciones devolvemos el mensaje de error. Esta comprobación la hacemos aquí arriba porque si ya ha hecho 3 intentos ni siquiera hay que conectar a la BD
   
echo 'El usuario y/o pass son incorrectos.';
}
/* FIN COMPROBACIÓN INTENTOS */
 
require_once('funciones.php');
conectar('localhost''root''simplementemas''logistica_restaurant');
$usuario strip_tags($_POST['usuario']);
$clave strip_tags(sha1($_POST['clave']));
 
$query = @mysql_query('SELECT * FROM usuarios WHERE usuario="'.mysql_real_escape_string($usuario).'" AND clave="'.mysql_real_escape_string($clave).'"');
if (
$existe = @mysql_fetch_object($query))
 {
  
$_SESSION['logged'] = 'yes';
    
$_SESSION['usuario'] = $usuario;
    echo 
'<script>window.location="logeado.php"</script>';
}
else { 
//Si la cuenta y/o contraseña es errónea sumamos 1 al número de intentos
   
$_SESSION['intentos'] += 1;
}
?>
Va comentado. Un cordial saludo.
__________________
¿Por qué Anónimo?, porque como está el mundo no podemos considerarnos humanos...
  #11 (permalink)  
Antiguo 29/05/2015, 09:11
 
Fecha de Ingreso: agosto-2014
Ubicación: peru
Mensajes: 24
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: como bloquear sesion después de tres intentos?

hola de nuevo Anonimo12 ya corrí el script y no hay errores pero te cuento lo que sucede:

después de cada intento fallido me sale el mensaje 'El usuario y/o pass son incorrectos.'

esto es ta bien pero:

- lo que se me pide es que después de los tres intentos fallidos me salga el mensaje de que: "ya se supero el limite de intentos" y luego se bloque la cuenta del usuario.

es decir con el script que me diste hago tres intento fallidos y al hacer un cuarto intento ingreso la contraseña correcta y si se logra acceder a la pagina y esto es lo que no quiero que pase

como haría para lograr esto?

Última edición por migsbaz; 29/05/2015 a las 09:20
  #12 (permalink)  
Antiguo 29/05/2015, 09:25
 
Fecha de Ingreso: agosto-2014
Ubicación: peru
Mensajes: 24
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: como bloquear sesion después de tres intentos?

es decir en esta parte e cambiado el mensaje por 'limite de intentos superado pagina bloqueada.' pero el mensaje me esta saliendo después de cada uno de los intentos fallidos. Lo que quisiera es que este mensaje me salga después de tres intentos fallidos y luego bloquear la cuenta del usuario:

Código PHP:
Ver original
  1. if(!isset($_SESSION['intentos']))
  2.    $_SESSION['intentos'] = 0;
  3. else if($_SESSION['intentos'] >= 3) {
  4.    echo 'limite de intentos superado pagina bloqueada.';
  5. }
  6. /* FIN COMPROBACIÓN INTENTOS */

Última edición por migsbaz; 29/05/2015 a las 09:41
  #13 (permalink)  
Antiguo 29/05/2015, 09:42
 
Fecha de Ingreso: abril-2009
Ubicación: En foros del web, normalmente en Web general, HTML y CSS.
Mensajes: 258
Antigüedad: 15 años
Puntos: 3
Respuesta: como bloquear sesion después de tres intentos?

Claro! Porque te falta añadirle la salida. El texto te lo he puesto de ejemplo, te comento el punto clave:

Código PHP:
Ver original
  1. if(!isset($_SESSION['intentos']))
  2.    $_SESSION['intentos'] = 0;
  3. else if($_SESSION['intentos'] >= 3)
  4.    echo 'El usuario y/o pass son incorrectos.'; //ESTE TEXTO ES DE EJEMPLO, aquí deberías añadirle un "exit" o cualquier otra función para finalizar. Sino, te va a imprimir el mensaje pero continuará ejecutándose el script, por lo que vuelve a hacer las comprobaciones que hay a continuación
  5. }

Utiliza "exit", o "return" si es una función.
__________________
¿Por qué Anónimo?, porque como está el mundo no podemos considerarnos humanos...
  #14 (permalink)  
Antiguo 29/05/2015, 09:48
 
Fecha de Ingreso: agosto-2014
Ubicación: peru
Mensajes: 24
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: como bloquear sesion después de tres intentos?

ok amigo voy a probar
  #15 (permalink)  
Antiguo 29/05/2015, 10:23
 
Fecha de Ingreso: agosto-2014
Ubicación: peru
Mensajes: 24
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: como bloquear sesion después de tres intentos?

disculpa otra ves Anonimo12 puse de la siguene forma el return:

Código PHP:
Ver original
  1. <?php
  2.  
  3. /* AQUÍ HACES LA COMPROBACIÓN */
  4. if(!isset($_SESSION['intentos'])) //Si no se ha creado "intentos" es que aún no ha hecho ningún intento, por tanto la creamos.
  5.    $_SESSION['intentos'] = 0;
  6. else if($_SESSION['intentos'] >= 3) {
  7.    
  8.     echo 'limite de intentos superado pagina bloqueada.';
  9.     return;
  10. }

pero creo que esta mal ubicado ya que si hago un primer intento fallido me arroja el mensaje 'limite de intentos superado pagina bloqueada.' y si ingreso los los datos correctos tanbien me sale el mismo mensaje y a no logro acceder a la pagina.
  #16 (permalink)  
Antiguo 29/05/2015, 13:20
 
Fecha de Ingreso: agosto-2014
Ubicación: peru
Mensajes: 24
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: como bloquear sesion después de tres intentos?

por favor ayúdame Anonimo12 ya se me vence el plazo para presentar esta tarea y no logro encontrar la solución para bloquear la cuenta del usuario,

gracias y disculpa las molestias
  #17 (permalink)  
Antiguo 29/05/2015, 17:44
 
Fecha de Ingreso: agosto-2014
Ubicación: peru
Mensajes: 24
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: como bloquear sesion después de tres intentos?

hola Anonimo 12 te cuento que ya avance un poco y ya me esta corriendo el script lo canbie un poco para lograrlo:

Código PHP:
Ver original
  1. <?php
  2.  
  3. if(!isset($_SESSION['intentos']))
  4.   $_SESSION['intentos'] = 0;
  5.  
  6. else                                        
  7. {    
  8. $_SESSION['intentos'] ++ ;
  9.  ?>
  10.  <?php                              
  11. if ($_SESSION['intentos'] < 3 )
  12. {
  13. require_once('funciones.php');
  14. conectar('localhost', 'root', 'simplementemas', 'logistica_restaurant');
  15. $usuario = strip_tags($_POST['usuario']);
  16. $clave = strip_tags(sha1($_POST['clave']));  
  17. $query = @mysql_query('SELECT * FROM usuarios WHERE usuario="'.mysql_real_escape_string($usuario).'" AND clave="'.mysql_real_escape_string($clave).'"');
  18.    
  19.     if ($existe = @mysql_fetch_object($query))
  20.      {
  21.      $_SESSION['logged'] = 'yes';
  22.      $_SESSION['usuario'] = $usuario;
  23.       echo '<script>window.location="logeado.php"</script>';
  24.      }
  25.     else
  26.       {  echo 'El usuario y/o pass son incorrectos.'.$_SESSION['intentos'];}
  27. } ///fin del if
  28. else
  29.  {echo 'limite de intentos superado.' .$_SESSION['intentos'];}
  30. }
  31. ?>

talvez puedas ayudarme a canbiar el mysql por Mysqli ...... gracias
  #18 (permalink)  
Antiguo 30/05/2015, 01:18
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 10 años, 8 meses
Puntos: 401
Respuesta: como bloquear sesion después de tres intentos?

Cita:
talvez puedas ayudarme a canbiar el mysql por Mysqli ...... gracias
La tarea escolar la tienes que realizar tu, no esperes que te la hagan.
Revisa el manual... si no no aprenderás nada. (No engañas al profesor, te engañas a ti mismo)

http://ar2.php.net/manual/es/mysqli....onnections.php
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-
  #19 (permalink)  
Antiguo 30/05/2015, 07:45
 
Fecha de Ingreso: agosto-2014
Ubicación: peru
Mensajes: 24
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: como bloquear sesion después de tres intentos?

Tranquilo lauser quizás esta sea mi forma de aprender atraves de una buena explicación, quizás todos no somos como tu; ni disponemos del tiempo que tu tienes. tiene derecho a criticar quien tiene voluntad para ayudar y tu lauser no me ayudaste en nada agradesco a Anonimo 12 por su buena voluntad el si me ayudo en ves de criticar, ya que era una urgencia porque el docente no me iba a espera hasta que me aprenda el manual. Gracias al ejemplo que me dio Anonimo12 ahora tengo mas claro es tema y puedo avanzar.
yo soy nuevo en programación y es difícil para mi ya que tengo una familia y tengo que trabajar y se hace mucho mas difícil si en el camino nos encontramos con tipos intolerantes y reprimidos y pedantes como tu que desde un principio me hiciste problemas. gracias Anonimo12
  #20 (permalink)  
Antiguo 30/05/2015, 08:32
Avatar de HackID1  
Fecha de Ingreso: febrero-2013
Ubicación: En Update
Mensajes: 492
Antigüedad: 11 años, 2 meses
Puntos: 17
Respuesta: como bloquear sesion después de tres intentos?

Las funciones de mysql para cambiarlas a mysqli, no es complicado pero debes cambiar un poco las sintaxis que usabas anteriormente.

Aquí encontrarás las sintaxis de mysqli.

http://www.php.net/manual/es/mysqli.summary.php

PD: Si no requieres hacerlo aún con mysql, primero haz que funcione esta forma, y poco a poco ve integrando todo lo que hagas nuevo para realizar las consultas con mysqli.

Saludos
__________________
Puntuar +1 es buena forma de dar las gracias. :P
Your Time is limited, so don't waste it living someone else´s life.
Por: HackID1
  #21 (permalink)  
Antiguo 30/05/2015, 11:04
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 10 años, 8 meses
Puntos: 401
Respuesta: como bloquear sesion después de tres intentos?

Cita:
Tranquilo lauser quizás esta sea mi forma de aprender atraves de una buena explicación, quizás todos no somos como tu; ni disponemos del tiempo que tu tienes.
????---- me espías desde tu ventana? como calculas el tiempo libre del resto del universo? Me interesa saberlo.

Cita:
y tu lauser no me ayudaste en nada
Si relees el hilo, observaras que te proporcione la solución correcta. Si en tercer curso no sabes aplicar una simple session..... realmente tienes un problema. Aparte de que cuando pediste aclaración Anonimo 12 te respondió exactamente en 6minutos.

Cita:
agradesco a Anonimo 12 por su buena voluntad el si me ayudo en ves de criticar
Te lo explico de forma sencilla... a los niños se les enseña a comer solos por que si noooo tendrán 20 años y aun habra que darles con la cuchara en la boca (es un ejemplo). Y Anonimo lo que hizo fue hacer TU trabajo, que es lo que tu querías.... que te lo hicieran.
En ningun momento recibiste una critica por mi parte. Todo lo contrario.... fue un consejo. Y si te lo sigues tomando como critica, en vez de un problema tienes dos.

Cita:
tengo una familia y tengo que trabajar
Pues como todos, o crees que se vive del aire?
Solo tienes familia tu?

Cita:
tipos intolerantes y reprimidos y pedantes
Creo que me malinterpretaste, pero no tienes ningun derecho a decir todo tipo de improperios sobre mi, con los cuales ademas quedas retratado como alguien sin ningun tipo de educación, ni respeto hacia nada ni nadie.. y te exijo una rectificación de tus palabras. No juzgues y no seras juzgado.

Estamos en un foro de ayuda y aprendizaje, no un servicio técnico. El objetivo primordial es que los usuarios aprendan y entre todos se ayuda a que se resuelvan sus problemas. Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro, con el único fin de ayudar. Piensa en ello.
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-

Última edición por lauser; 30/05/2015 a las 11:27

Etiquetas: bloquear, formulario, html, mysql, select, sql, tres, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:24.