Re: [PHP-ES] Verificar un campo antes de insertar

[email protected] (Ricardo Vila)
Newsgroups php.general.es
Message-ID <[email protected]>
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
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.