Re: [PHP-ES] Verificar un campo antes de insertar
[email protected] (Ricardo Vila)
| Newsgroups | php.general.es |
|---|---|
| Message-ID | <[email protected]> |
BUeno si tienes razon, pero el bucle infinito tambien dependera de cual sea la extension de la clave y de que tanto movimiento tenga con las promociones, en todo caso si unique_id no funciona, tendría que generar su propia clave, para así evitar entrar en un bucle como menciona Martin. 2010/12/12 Martin Iberico <[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 > >> > >> > > > > -- > PHP Spanish Localization Talk Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > >