ah me olvidaba para verificar hago esto:<div><br></div><div>Desde PHP</div><div><br></div><div><div>if ( isset( $_POST['txtUsuario'] ) && ( preg_match( '/^[a-zA-Z0-9]{4,12}$/', $_POST['txtUsuario'] ) > 0 ) ) {</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>$usuario = trim( $_POST['txtUsuario'] );</div><div> } elseif ( isset( $_POST['txtUsuario'] ) ) {</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>$mensaje = 'El usuario debe tener enre 4 y 12 caracters';</div>
<div> }</div><div> </div><div> if ( isset( $_POST['txtClave'] ) && ( preg_match( '/^[a-zA-Z0-9]{4,12}$/', $_POST['txtUsuario'] ) > 0 ) ) {</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>$password = md5( $_POST['txtClave'] );</div>
<div> } elseif ( isset( $_POST['txtClave'] ) ) {</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>$mensaje = 'La clave debe tener entre 4 y 12 caracteres';</div><div> }</div><div>
</div><div> if ( $usuario != '' && $password != '' ) {</div><div> $datos_usuario = dbLogin( DSN_ADMIN, $usuario, $password );</div><div> </div><div>//<span class="Apple-tab-span" style="white-space:pre">        </span>print_r( $datos_usuario );</div>
<div> </div><div><span class="Apple-tab-span" style="white-space:pre">        </span>if ( !is_array( $datos_usuario ) && $datos_usuario != '' )</div><div><span class="Apple-tab-span" style="white-space:pre">        </span> $mensaje = $datos_usuario;</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>elseif ( $datos_usuario == '' )</div><div><span class="Apple-tab-span" style="white-space:pre">        </span> $mensaje = 'USUARIO O CONTRASE&Ntilde;A INCORRECTOS';</div>
<div> else {</div><div> $_SESSION['catalogo']['dsn'] = DSN_ADMIN;</div><div><span class="Apple-tab-span" style="white-space:pre">        </span> $_SESSION['catalogo']['usuario'] = $datos_usuario; //id_usuario, nombre</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span> header( 'location: abm_categorias.php' );</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div> } </div><div><br>
</div><div>__________________</div><div><br></div><div><div>function dbLogin( $str_dsn, $str_usuario, $str_clave ) {</div><div> $cn =& MDB2::connect( $str_dsn );</div><div> if ( !PEAR::isError( $cn ) ) {</div>
<div> $consulta = 'call ' . DB_DATABASE . '.sp_login( ' . $cn->quote( $str_usuario, 'text' ) . ', ' . $cn->quote( $str_clave, 'text' ) . ' );';</div><div> $res = $cn->query( $consulta );</div>
<div> if ( !PEAR::isError( $res ) )</div><div> $salida = $res->fetchRow( MDB2_FETCHMODE_ASSOC );</div><div> //$salida['id_user'] y $salida['nombre']</div><div> else</div>
<div> $salida = $res->getDebugInfo();</div><div> $cn->disconnect();</div><div> } else</div><div> $salida = $cn->getDebugInfo();</div><div> </div><div> return $salida;</div>
<div> }</div></div><div><br></div><div>______________</div><div><br></div><div>Desde MYSQL</div><div><br></div><div><div>delimiter //</div><div>create procedure sp_login( IN usuario VARCHAR(12), IN clave CHAR(32) )</div>
<div>begin</div><div> select id_user, nombre</div><div> from TB_Usuarios</div><div> where login = usuario and pass = clave</div><div> limit 1;</div><div>end; //</div><div>delimiter ;</div><div>grant execute on procedure sp_login to cata_admin@localhost;</div>
</div><div><br></div><div><br></div><div><b>Yo trabajo usando stores y perl. Pero perfectamente podes hacerlo ejecuntando la query desde php con mysql_query</b></div><br><div class="gmail_quote">El 9 de septiembre de 2010 14:30, Maia Cordero <span dir="ltr"><<a href="mailto:maiacordero@gmail.com">maiacordero@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div>Mmmm no se porque usaras una funcion de encriptación :S Yo uso MD5 a mi criterio es mas fácil de usar.</div><div>
<br></div><div>Desde PHP hago esto:</div><div><br></div>md5(trim($_POST['txtClave']))<div><br></div>
<div>y en la BD tengo un campo de este tipo:</div><div><br></div><div>clave char(32) not null</div><div><br></div><div>No contesto tu pregunta pero quizás una solución alternativa no te viene mal ;)<br><br><div class="gmail_quote">
El 9 de septiembre de 2010 14:15, Juan Pablo <span dir="ltr"><<a href="mailto:jbarreto_92@hotmail.com" target="_blank">jbarreto_92@hotmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div></div><div class="h5">
<div style="padding-left:10px;padding-right:10px;padding-top:15px" name="Compose message area">
<div><font face="Calibri">Hola.<br>Les aclaro mi problema:<br><br>Tengo un sistema
de usuarios q encripta la contraseña con la función crypt(string
$str [, string $salt ] )<br><br>Acá hice un script de prueba para
probar todas las posibilidades.<br><br></font><font color="#339966" face="Calibri">$password = crypt("ASDASDASD10","mardelmusic"); // let the salt be
automatically generated<br>$usuario="ASDASDASD100";</font></div>
<div><font face="Calibri"></font> </div>
<div><font color="#339966" face="Calibri">if (crypt($usuario,"mardelmusic") ==
$password) {<br> echo "Password verified!:<br>$password
<br>".crypt($usuario,$password);<br>}else{echo"Password
falsa:<br>$password <br>".crypt($usuario,$password);}</font></div>
<div><font color="#339966" face="Calibri"></font> </div>
<div><font color="#339966" face="Calibri"></font> </div>
<div><font color="#000000" face="Calibri">Esto da verdadero. A pesar de que la
contraseña q el usuario puso tenga un cero demás. Y cuando imprime las
contraseñas, ambas coinciden. O sea q genera la misma contraseña con un 0 más...
o varios (tambien probe con muchos y pasa lo mismo)</font></div>
<div><font face="Calibri"></font> </div>
<div><font face="Calibri">Entonces lo q decidí es sacarle la semilla.</font></div>
<div><font face="Calibri">En la prueba paso todo bien, pero cuando voy a mi
script, falla, aunque las pass coincidan:</font></div>
<div><font face="Calibri"></font> </div>
<div><font color="#339966" face="Calibri">$pass_db=$data["usuario_pass"]; //De
la base de datos, que el usuario cargo cuando se registro.
$usuario_pass=$_POST["pass"];</font></div>
<div><font color="#339966" face="Calibri"></font> </div>
<div><font color="#339966" face="Calibri">f(crypt($usuario_pass,$pass_db) !=
$pass_db){</font></div>
<div><font color="#339966" face="Calibri"> ERROR!</font></div>
<div><font color="#339966" face="Calibri">}else{</font></div>
<div><font color="#339966" face="Calibri"> BIEN!</font></div>
<div><font color="#339966" face="Calibri">}</font></div>
<div><font face="Calibri"></font> </div>
<div><font face="Calibri">Lo más comico de todo, es que en el error pongo imprimir
ambas contraseñas (base de datos y la encriptada del post) y son las dos
iguales, pero son de la siguiente estructura:</font></div>
<div><font face="Calibri"></font> </div>
<div><font face="Calibri"><font color="#ff0000">$1$eM2.Pk3.$pDsUodej3nwxAkOVVQ0M21</font> </font></div>
<div><font color="#ff0000" face="Calibri"></font> </div>
<div><font color="#000000" face="Calibri">Entonces no se si el error lo ocasionan
los $ $ o . . no se...</font></div>
<div><font face="Calibri"></font> </div>
<div><font face="Calibri">Gracias y nos vemos el miercoles!</font></div>
<div><font face="Calibri"></font> </div></div>
<br></div></div>_______________________________________________<br>
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></blockquote></div><br></div>
</blockquote></div><br></div>