Re: [PHP-ES] Verificar un campo antes de insertar
[email protected] (Martin Iberico)
| Newsgroups | php.general.es |
|---|---|
| Message-ID | <[email protected]> |
Hay un problema con eso de generar la clave y verificar si existe para luego insertarla o volverla a generar. Podrias entrar en un buckle infinito. No estoy seguro que funcione siempre, pero la funcion unique_id() podria ayudar. Cuestion de revisar la documentacion para ver exactamente como funciona. Saludos Martín Iberico El día 12 de diciembre de 2010 17:39, Ricardo Vila <[email protected]> escribió: > Hola Irantzu > > Como dicen los amigos de la lista, por cuestiones de seguridad no deberias > permitir validar la contraseña en ese caso, la solución que plantean es > buena, porque no le generas un una clave mejor, o usas la funcion que puso > Juan Manuel, y si deseas que no se repita, entonces lo que podrías hacer es > primero generas la clave, luego revisas si existe, si existe vuelves a > generar otra clave, sino existe entonces recien insertas y si la insercion > fue exitosa entonces le muestras la clave para dicha promocion, otra cosa, > la clave la estas guardando encriptada? o solo como texto? > > Saludos, > > 2010/12/7 Juan Manuel Acuña Barrera <[email protected]> > >> Estimada Irantzu: >> >> Coincido completamente con los comentarios que han hecho los demás >> compañeros del foro. >> >> Aquí me surge una duda: ¿es necesario que permitas al usuario que escriba >> su contraseña? >> >> En caso que no sea estrictamente necesario, yo te recomendaría usar un >> generador aleatorio de contraseñas y que al final del procedimiento se la >> des al usuario. Te pongo el código de un generadorcito de contraseñas que yo >> uso mucho: >> >> <?php >> >> function cadenaRandom($largoCadena) { >> $arreglo = >> array("A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","S","T","U","V","W","X","Y","Z","1","2","3","4","5","6","7","8","9"); >> >> $llaves = array(); >> >> while(count($llaves) < $largoCadena) { >> $x = mt_rand(0, count($arreglo)-1); >> if(!in_array($x, $llaves)) { >> $llaves[] = $x; >> } >> } >> >> foreach($llaves as $llave){ >> $random .= $arreglo[$llave]; >> } >> return $random; >> }//cadenaRandom >> >> >> >> echo "Ejemplo de uso: <br><br>"; >> >> $cadena=cadenaRandom(3); >> echo "Generando una cadena de 3 caracteres: $cadena <br>"; >> >> $cadena=cadenaRandom(5); >> echo "Generando una cadena de 5 caracteres: $cadena <br>"; >> >> $cadena=cadenaRandom(9); >> echo "Generando una cadena de 9 caracteres: $cadena <br>"; >> >> ?> >> >> Espero que esto te sirva. >> >> Saludos! >> >> >> El 07/12/2010, a las 15:46, Ivan Rico escribió: >> >> > Estimado irantzu >> > >> > Lo que comenta Martin Iberico es totalmente correcto, yo te recomiendo >> que vuelvas a analizar la situación y busques otra solución ya que la hacer >> la contraseña unica es mala práctica, si gustas comenta la situación aquí y >> le damos una solución elegante y profesional. >> > >> > Fomenetemos la buena práctica en PHP >> > >> > >> > saludos >> > >> > >> > ----- Mensaje original ----- >> > De: "Martin Iberico" <[email protected]> >> > Para: [email protected] >> > Enviados: Martes, 7 de Diciembre 2010 15:22:53 GMT -06:00 Guadalajara / >> Ciudad de México / Monterrey >> > Asunto: Re: [PHP-ES] Verificar un campo antes de insertar >> > >> > Hola Irantzu, >> > >> > Estas insertando un gran problema de seguridad en tu aplicacion. >> > Cualquiera podria saber que la contraseña ya existe y simplemente >> > probar con todos los usuarios de tu sistema a ver a cual le hace. >> > >> > Saludos >> > >> > Martín Iberico >> > >> > El día 7 de diciembre de 2010 16:10, Irantzu Leunda Biskarret >> > <[email protected]> escribió: >> >> Hola amigos, se me presenta una duda que seguro es fácil pero no la veo. >> >> >> >> Tengo un formulario de inserción de unas promociones en una tabla. Uno >> de >> >> los campos es la contraseña, el caso es que la contraseña no debe >> repetirse >> >> en más de una promoción, aqui mi duda. >> >> ¿como hago para verificar que la contraseña que me están poniendo en el >> >> formulario no exista en la base de datos? y si existe ¿como le digo al >> >> usuario que esa contraseña ya existe y que me regrese al formulario con >> los >> >> campos que ya ha rellenado? >> >> >> >> Si alguien quiere mi código que me lo haga saber para que se lo envíe. >> >> >> >> Muchas gracias >> >> >> >> -- >> >> PHP Spanish Localization Talk Mailing List (http://www.php.net/) >> >> To unsubscribe, visit: http://www.php.net/unsub.php >> >> >> >> >> > >> > -- >> > PHP Spanish Localization Talk Mailing List (http://www.php.net/) >> > To unsubscribe, visit: http://www.php.net/unsub.php >> > >> > >> > -- >> > PHP Spanish Localization Talk Mailing List (http://www.php.net/) >> > To unsubscribe, visit: http://www.php.net/unsub.php >> > >> >> >> -- >> PHP Spanish Localization Talk Mailing List (http://www.php.net/) >> To unsubscribe, visit: http://www.php.net/unsub.php >> >> >