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
>
>
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.