Interesante lo de <meta http-equiv="content-type" content="text/html; charset=utf-8"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">CRYPT voy a probarlo entonces :D</span><div>
<font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></font></div><div><font class="Apple-style-span" face="arial, sans-serif"><span class="Apple-style-span" style="border-collapse: collapse;">Gracias desde ya por tu respuesta :)<br>
</span></font><br><div class="gmail_quote">El 10 de septiembre de 2010 09:20, Maia Cordero <span dir="ltr">&lt;<a href="mailto:maiacordero@gmail.com">maiacordero@gmail.com</a>&gt;</span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
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<div><br></div><div><div>CREATE TABLE TB_Usuarios(</div><div>    id_user tinyint unsigned not null auto_increment,</div>

<div>    login varchar(12) not null,</div><div>    pass char(32) not null,</div><div>    nombre varchar(50) not null,</div><div>    PRIMARY KEY (id_user),</div><div>    UNIQUE KEY usuario (login)</div><div>) ENGINE=InnoDB;</div>

<div><br></div><div>Al especificar UNIQUE KEY usuario el motor me asegura que nunca van a existir dos nombres de usuarios que se llamen igual.</div><br><div class="gmail_quote">El 9 de septiembre de 2010 19:03, Leonardo Tadei - Pegasus Tech Supply <span dir="ltr">&lt;<a href="mailto:leonardot@pegasusnet.com.ar" target="_blank">leonardot@pegasusnet.com.ar</a>&gt;</span> escribió:<div>
<div></div><div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hola Maia,<br>
<br>
        ya que estamos con este tema, fijate que tu algoritmo asume que no hay<br>
dos usuarios que se llamen igual: valida si existe un usuario que<br>
concuerde, pero si existe más de uno, también.<br>
<br>
        Vamos a ver este tema cuando veamos sesiones y la capa de persistencia<br>
que se le agrega al código para suplementar el &quot;detalle&quot; de que el<br>
protocolo HTTP no la implementa.<br>
<br>
        Nos vemos!<br>
<br>
El jue, 09-09-2010 a las 14:34 -0300, Maia Cordero escribió:<br>
<div><div></div><div>&gt; ah me olvidaba para verificar hago esto:<br>
&gt;<br>
&gt;<br>
&gt; Desde PHP<br>
&gt;<br>
&gt;<br>
&gt; if ( isset( $_POST[&#39;txtUsuario&#39;] ) &amp;&amp;<br>
&gt; ( preg_match( &#39;/^[a-zA-Z0-9]{4,12}$/&#39;, $_POST[&#39;txtUsuario&#39;] ) &gt; 0 ) )<br>
&gt; {<br>
&gt; $usuario = trim( $_POST[&#39;txtUsuario&#39;] );<br>
&gt;     } elseif ( isset( $_POST[&#39;txtUsuario&#39;] ) ) {<br>
&gt; $mensaje = &#39;El usuario debe tener enre 4 y 12 caracters&#39;;<br>
&gt;     }<br>
&gt;<br>
&gt;     if ( isset( $_POST[&#39;txtClave&#39;] ) &amp;&amp;<br>
&gt; ( preg_match( &#39;/^[a-zA-Z0-9]{4,12}$/&#39;, $_POST[&#39;txtUsuario&#39;] ) &gt; 0 ) )<br>
&gt; {<br>
&gt; $password = md5( $_POST[&#39;txtClave&#39;] );<br>
&gt;     } elseif ( isset( $_POST[&#39;txtClave&#39;] ) ) {<br>
&gt; $mensaje = &#39;La clave debe tener entre 4 y 12 caracteres&#39;;<br>
&gt;     }<br>
&gt;<br>
&gt;     if ( $usuario != &#39;&#39; &amp;&amp; $password != &#39;&#39; ) {<br>
&gt;         $datos_usuario = dbLogin( DSN_ADMIN, $usuario, $password );<br>
&gt;<br>
&gt; // print_r( $datos_usuario );<br>
&gt;<br>
&gt; if ( !is_array( $datos_usuario ) &amp;&amp; $datos_usuario != &#39;&#39; )<br>
&gt;    $mensaje = $datos_usuario;<br>
&gt; elseif ( $datos_usuario == &#39;&#39; )<br>
&gt;    $mensaje = &#39;USUARIO O CONTRASE&amp;Ntilde;A INCORRECTOS&#39;;<br>
&gt;         else {<br>
&gt;             $_SESSION[&#39;catalogo&#39;][&#39;dsn&#39;] = DSN_ADMIN;<br>
&gt;    $_SESSION[&#39;catalogo&#39;][&#39;usuario&#39;] = $datos_usuario; //id_usuario,<br>
&gt; nombre<br>
&gt;    header( &#39;location: abm_categorias.php&#39; );<br>
&gt; }<br>
&gt;     }<br>
&gt;<br>
&gt;<br>
&gt; __________________<br>
&gt;<br>
&gt;<br>
&gt; function dbLogin( $str_dsn, $str_usuario, $str_clave ) {<br>
&gt;         $cn =&amp; MDB2::connect( $str_dsn );<br>
&gt;         if ( !PEAR::isError( $cn ) ) {<br>
&gt;             $consulta = &#39;call &#39; . DB_DATABASE . &#39;.sp_login( &#39; .<br>
&gt; $cn-&gt;quote( $str_usuario, &#39;text&#39; ) . &#39;, &#39; . $cn-&gt;quote( $str_clave,<br>
&gt; &#39;text&#39; ) . &#39; );&#39;;<br>
&gt;             $res = $cn-&gt;query( $consulta );<br>
&gt;             if ( !PEAR::isError( $res ) )<br>
&gt;                 $salida = $res-&gt;fetchRow( MDB2_FETCHMODE_ASSOC );<br>
&gt;                 //$salida[&#39;id_user&#39;] y $salida[&#39;nombre&#39;]<br>
&gt;             else<br>
&gt;                 $salida = $res-&gt;getDebugInfo();<br>
&gt;             $cn-&gt;disconnect();<br>
&gt;         } else<br>
&gt;             $salida = $cn-&gt;getDebugInfo();<br>
&gt;<br>
&gt;         return $salida;<br>
&gt;     }<br>
&gt;<br>
&gt;<br>
&gt; ______________<br>
&gt;<br>
&gt;<br>
&gt; Desde MYSQL<br>
&gt;<br>
&gt;<br>
&gt; delimiter //<br>
&gt; create procedure sp_login( IN usuario VARCHAR(12), IN clave CHAR(32) )<br>
&gt; begin<br>
&gt;     select id_user, nombre<br>
&gt;     from TB_Usuarios<br>
&gt;     where login = usuario and pass = clave<br>
&gt;     limit 1;<br>
&gt; end; //<br>
&gt; delimiter ;<br>
&gt; grant execute on procedure sp_login to cata_admin@localhost;<br>
<br>
<br>
</div></div><div>--<br>
<br>
Leonardo Tadei<br>
<a href="mailto:leonardot@pegasusnet.com.ar" target="_blank">leonardot@pegasusnet.com.ar</a><br>
<a href="http://blog.pegasusnet.com.ar" target="_blank">http://blog.pegasusnet.com.ar</a><br>
Firma pública: <a href="http://www.pegasusnet.com.ar/LeonardoTadei-public.key" target="_blank">http://www.pegasusnet.com.ar/LeonardoTadei-public.key</a><br>
<br>
_______________________________________________<br>
</div><div><div></div><div>Php-avanzado mailing list<br>
<a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar" target="_blank">Php-avanzado@pato2.fi.mdp.edu.ar</a><br>
<a href="http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado" target="_blank">http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado</a><br>
</div></div></blockquote></div></div></div><br></div>
</blockquote></div><br></div>