[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Ñ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