Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Obtener y enviar el valor del ID de un usuario recién creado

23 de mayo de 2015

Hola amigos! Espero que me podrías ayudar.

Bueno! Tengo un formulario donde los usuarios deberán introducir datos, y sus datos se registran en la base de datos, y se le envía un email con la información introducida. Allí todo va bien.

Una cosa que no consigo es además de mandarles los datos que hayan introducido, quiero mandarles su número de identificación (id). ¿Sería posible?

Gracias!!!


Respuestas

#1

Para poder ayudarte necesitaríamos conocer más detalles de la aplicación. Así de primeras, no deberías tener ningún problema para obtener el id del usuario. Simplemente haz una consulta en la base de datos después de guardar la información y ya podrás acceder al valor de la columna id.

No obstante, mi recomendación sería que no enviaras el id el usuario. En primer lugar porque es una información que no le sirve para nada. En segundo lugar, porque es uno de los datos que se considera "sensible" desde el punto de vista de la seguridad y se suele recomendar no hacerlo público (por ejemplo no lo incluyas tampoco como parte de la URL).

@javiereguiluz

25 mayo 2015, 8:40
#2

Gracias por su respuesta. Estoy usando ajax, javascript, php y mysql.

Es un concurso que estoy haciendo. Y lo que prentendo es asignar un número de identificación a cada concursante, mandándoles el id o generar un número automaticamente. Dicho número tendré que saberlo.

Gracias de nuevo por tu ayuda!

@KhalifaBoulbaye

25 mayo 2015, 14:11
#3

@KhalifaBoulbaye es muy cierto lo que te dice Javier. Yo te recomendaría crear un nuevo campo (con valor único) en el registro de tu usuario. Algo como: code - random:

$rand = random(0,99999);

En tu caso, para asegurarme que el valor random que voy a almacenar no existe registrado con otro usuario consulto todos los registros. Si no existe, lo almaceno en el nuevo usuario. Una vez terminado el registro lo envío al usuario.

Saludos!

@cristian_angulo

25 mayo 2015, 16:08
#4

@cristian_angulo aunque mi recomendación iba más por no mostrar el id al usuario pero seguir manteniendo los valores id secuenciales, es ciero que cada vez se escucha más la idea de no generar id secuenciales para cosas importantes como por ejemplo el registro de usuarios.

De hecho, últimamente he leído a algún programador PHP famoso proponer el uso de códigos UUID para identificar a cada usuario. Estos códigos UUID son como una versión avanzada de la solucuón random que propones, ya que consta de varias secuencias aleatorias generadas de la siguiente manera:

public static function uuid()
{
    return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
        mt_rand(0, 0xffff), mt_rand(0, 0xffff),
        mt_rand(0, 0xffff),
        mt_rand(0, 0x0fff) | 0x4000,
        mt_rand(0, 0x3fff) | 0x8000,
        mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
    );
}

En cualquier caso, esta solución parece un cambio demasiado drástico para el problema que nos planteaba @KhalifaBoulbaye.

@javiereguiluz

25 mayo 2015, 16:13
#5

Perdonad mi ignorancia, llevo poco tiempo en PHP y MySQL, y lo que has puesto Javier me suena a chino!!! Lo de random() que propones Cristian, me parece un poco más fácil. Pero al ahora de enviarlo por email ¿cómo sería? Imagino que habrá que hacer una consulta, no?

Lo que yo envío a los usuarios son los datos introducidos en el formulario, sin necesidad de hacer ningún consulta.

@KhalifaBoulbaye

25 mayo 2015, 17:07
#6

Para obtener el valor del id asociado al usuario que acabas de insertar en la base de datos puedes usar la función mysqli_insert_id() de PHP. Así te evitas tener que hacer una consulta adicional.

Aquí te explican la función y te muestran algunos ejemplos de cómo se usa: php.net/mysqli_insert_id

@javiereguiluz

25 mayo 2015, 17:18
#7

¡Gracias por vuestra ayuda!

He consiguido otra forma de hacerlo. Lo que he hecho que darle al usuario que introduzca su propio número identificación.

@KhalifaBoulbaye

2 junio 2015, 13:01
#8

Darle al usuario la posibilidad de elegir su propio identificador no parece una práctica muy segura. Si el código de identificación es un número, es muy probable que se produzcan colisiones (¿qué sucede cuando dos usuarios diferentes eligen el número 10 como identificador?). Y si el identificador no es un número y tiene un formato más avanzado, entonces será difícil que el usuario genere su propio identificador.

@javiereguiluz

2 junio 2015, 15:35
#9

Es la única forma que me pareció más fácil. Tienes razón que no es un forma segura. Es solo temporal, es un formulario de inscripción, y tiene un plazo de terminado. Respecto que al que se repita el mismo identificador, dos usuarios no pueden tener el mismo número. Lo he controlado con php.

@KhalifaBoulbaye

3 junio 2015, 19:31