[Php-avanzado] Problema con passwords

Maia Cordero maiacordero en gmail.com
Vie Sep 10 09:21:32 ART 2010


Interesante lo de CRYPT voy a probarlo entonces :D

Gracias desde ya por tu respuesta :)

El 10 de septiembre de 2010 09:20, Maia Cordero <maiacordero en gmail.com>escribió:

> Exacto Leo. Mi algoritmo asume que no hay dos usuario que se llamen igual
> porque eso nunca puede suceder debido a la estructura de la tabla
>
> CREATE TABLE TB_Usuarios(
>     id_user tinyint unsigned not null auto_increment,
>     login varchar(12) not null,
>     pass char(32) not null,
>     nombre varchar(50) not null,
>     PRIMARY KEY (id_user),
>     UNIQUE KEY usuario (login)
> ) ENGINE=InnoDB;
>
> Al especificar UNIQUE KEY usuario el motor me asegura que nunca van a
> existir dos nombres de usuarios que se llamen igual.
>
> El 9 de septiembre de 2010 19:03, Leonardo Tadei - Pegasus Tech Supply <
> leonardot en pegasusnet.com.ar> escribió:
>
> Hola Maia,
>>
>>        ya que estamos con este tema, fijate que tu algoritmo asume que no
>> hay
>> dos usuarios que se llamen igual: valida si existe un usuario que
>> concuerde, pero si existe más de uno, también.
>>
>>        Vamos a ver este tema cuando veamos sesiones y la capa de
>> persistencia
>> que se le agrega al código para suplementar el "detalle" de que el
>> protocolo HTTP no la implementa.
>>
>>        Nos vemos!
>>
>> El jue, 09-09-2010 a las 14:34 -0300, Maia Cordero escribió:
>> > ah me olvidaba para verificar hago esto:
>> >
>> >
>> > Desde PHP
>> >
>> >
>> > if ( isset( $_POST['txtUsuario'] ) &&
>> > ( preg_match( '/^[a-zA-Z0-9]{4,12}$/', $_POST['txtUsuario'] ) > 0 ) )
>> > {
>> > $usuario = trim( $_POST['txtUsuario'] );
>> >     } elseif ( isset( $_POST['txtUsuario'] ) ) {
>> > $mensaje = 'El usuario debe tener enre 4 y 12 caracters';
>> >     }
>> >
>> >     if ( isset( $_POST['txtClave'] ) &&
>> > ( preg_match( '/^[a-zA-Z0-9]{4,12}$/', $_POST['txtUsuario'] ) > 0 ) )
>> > {
>> > $password = md5( $_POST['txtClave'] );
>> >     } elseif ( isset( $_POST['txtClave'] ) ) {
>> > $mensaje = 'La clave debe tener entre 4 y 12 caracteres';
>> >     }
>> >
>> >     if ( $usuario != '' && $password != '' ) {
>> >         $datos_usuario = dbLogin( DSN_ADMIN, $usuario, $password );
>> >
>> > // print_r( $datos_usuario );
>> >
>> > if ( !is_array( $datos_usuario ) && $datos_usuario != '' )
>> >    $mensaje = $datos_usuario;
>> > elseif ( $datos_usuario == '' )
>> >    $mensaje = 'USUARIO O CONTRASE&Ntilde;A INCORRECTOS';
>> >         else {
>> >             $_SESSION['catalogo']['dsn'] = DSN_ADMIN;
>> >    $_SESSION['catalogo']['usuario'] = $datos_usuario; //id_usuario,
>> > nombre
>> >    header( 'location: abm_categorias.php' );
>> > }
>> >     }
>> >
>> >
>> > __________________
>> >
>> >
>> > function dbLogin( $str_dsn, $str_usuario, $str_clave ) {
>> >         $cn =& MDB2::connect( $str_dsn );
>> >         if ( !PEAR::isError( $cn ) ) {
>> >             $consulta = 'call ' . DB_DATABASE . '.sp_login( ' .
>> > $cn->quote( $str_usuario, 'text' ) . ', ' . $cn->quote( $str_clave,
>> > 'text' ) . ' );';
>> >             $res = $cn->query( $consulta );
>> >             if ( !PEAR::isError( $res ) )
>> >                 $salida = $res->fetchRow( MDB2_FETCHMODE_ASSOC );
>> >                 //$salida['id_user'] y $salida['nombre']
>> >             else
>> >                 $salida = $res->getDebugInfo();
>> >             $cn->disconnect();
>> >         } else
>> >             $salida = $cn->getDebugInfo();
>> >
>> >         return $salida;
>> >     }
>> >
>> >
>> > ______________
>> >
>> >
>> > Desde MYSQL
>> >
>> >
>> > delimiter //
>> > create procedure sp_login( IN usuario VARCHAR(12), IN clave CHAR(32) )
>> > begin
>> >     select id_user, nombre
>> >     from TB_Usuarios
>> >     where login = usuario and pass = clave
>> >     limit 1;
>> > end; //
>> > delimiter ;
>> > grant execute on procedure sp_login to cata_admin en localhost;
>>
>>
>> --
>>
>> Leonardo Tadei
>> leonardot en pegasusnet.com.ar
>> http://blog.pegasusnet.com.ar
>> Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
>>
>> _______________________________________________
>> Php-avanzado mailing list
>> Php-avanzado en pato2.fi.mdp.edu.ar
>> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>>
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://www3.fi.mdp.edu.ar/pipermail/php-avanzado/attachments/20100910/0269ef91/attachment-0001.htm 


Más información sobre la lista de distribución Php-avanzado