Blog de diseño, tecnología, programación, internet y curiosidades
| Tweet | Compartir |
|
Este es la parte 5 de 6 del tutorial sobre "Registros de usuarios en Php y Mysql con validación de campos y activación por mail", y no está demás recordar lo que hemos visto hasta el momento:
Ya nos falta poco para terminar el tutorial, asi que ánimo.
En este tema vamos a aprender como insertar usuarios en nuestra base de datos desde php después de haber validado los datos introducidos por el usuario en el formulario.
Lo primero que tenemos que saber es ¿cómo se inserta un registro con MySQL?. Esta pregunta la podemos aclarar con el siguiente esquema:
Como podéis ver, en principio, hay dos maneras de hacerlo, una en la que informamos todos los campos que vamos a insertar (puede que nos lleve a menos confusiones) y otra en la que solo informamos los valores. Nosotros vamos a usar el primer caso.
Nombretabla: Pondremos la tabla en la que vayamos a insertar el registro. En el caso de este tutorial, utilizamos la tabla users_temp.
Values: Lo que va en el paréntesis de los valores o VALUES depende de los campos que tengamos en nuestra tabla. Si tenemos 3 campos, pondremos 3 valores, si tenemos 5 campos, pondremos 5 valores.
En el caso de nuestra tabla users_temp, tenemos los campos (id_usersTemp, nombre, usersTemp, password, email, fecAlta). Por lo tanto todos estos campos los tenemos que tener en cuenta a la hora de dar de alta con la sentencia INSERT, aunque bien es cierto, que el campo id_usersTemp se puede descartar de la sentencia puesto que lo declaramos "Autonumeric", y nos incluirá un número en el campo que insertemos (suma automáticamente 1 al último número introducido).
Bien, ahora ya sabemos como insertar un registro en nuestra base de datos con MySQL, pero le toca el turno a conectar nuestro archivo PHP con la base de datos.
Para hacer esta conexión tendremos que abrir de nuevo el archivo "formulario.php" y añadir una función que se llamará insertarReg. Vamos a ver el código y después lo paso a explicar:
Lo que primero podemos ver es que la función recoge una serie de parámetros: name_, username_, password1_, email_ . Estos parámetros son exactamente los que se van a introducir en la tabla users_temp.
Ya dentro de la función vemos como declaramos unas variables, estos son los datos de acceso a nuestra base de datos: servidor, usuario, password y base de datos a la que nos conectamos.
En vuestro caso, lo tendréis que modificar con los datos de acceso que hayáis configurado.
Lo siguiente que vemos es la conexión con la base de datos, de la siguiente forma:
Con esta línea ya hemos hecho la conexión entre PHP y MySql, ahora la función se va a encargar de ejecutar una sentencia (INSERT), que en nuestro caso se trata de insertar un registro, tal y como hemos visto al principio del tutorial.
Para hacerlo un poco más estructurado y limpio, guardamos la sentencia INSERT dentro de una variable.
En estas líenas de código lo único que tengo que destacar es que en la parte VALUES de la sentencia, hemos puesto los valores que nos pasan en la función y que no hace falta poner en dicha sentencia el campo id_usersTemp ya que como hemos comentado anteriormente, es autonumérico.
Para comprobar si se ha dado de alta un nuevo usuario correctamente, lo único que tendremos que hacer es validar la variable resultado3, como podemos ver en el siguiente código:
Ya tenemos la función creada, ahora ¿Qué falta?. Pues es sencillo, lo único que falta es hacer la llamada a esa función pasándole los parámetros nombre, usuario, password e email que previamente hemos validado (Ver tutorial Registro de usuarios en PHP y mySQL con validación y activación por mail).
Esta llamada a la función insertarReg la tendremos que posicionar justo después de que la validación de los datos introducidos por el usuario hayan sido satisfactorias.
Os voy a mostrar el código resumido para que veais mejor donde habría que colocar la función:
Recordar que la variable status es la que controla si los datos se han validado correctamente, estando vacía en caso de que haya algún error, y siendo valor 1 en caso de que no haya errores..
Así que donde tendríamos que poner la llamada a la función está bastante clara como seguramente habéis pensado. Por lo tanto el código resumido quedaría de la siguiente manera:
Llegados a este punto, aquí tenéis el código con todo lo que llevamos hasta ahora:
Si vamos al navegador y ponemos la URL donde se encuentra formulario.php, en mi caso sería, "http://localhost/PRUEBA1/formulario.php" nos aparecerá el formulario que rellenaremos con datos válidos.
Una vez todo correcto si le damos a "Enviar Formulario" y hemos puesto todos los datos sin errores de validación, veréis que hay algo que no cuadra y es que aunque los datos se hayan introducido correctamente (lo puedes comprobar en phpMyAdmin accediendo a nuestra tabla users_Temp de la base de datos PRUEBA1) el usuario no tiene ni idea de lo que ha pasado, es decir, tanto si ha ido bien como si ha ido mal, ahora mismo tal y como esta el código no obtiene información del estado de su petición.
Asi que vamos a modificar un poco el código para solucionar esto. Lo primero que tenemos que tener claro es que las funciones pueden devolver valores, y como bien hemos codificado ya en ella, hemos puesto 2 returns (true y false).
Estos valores que devuelve la función nos servirán para verificar si se ha insertado el registro en la base de datos o no. Si es true, significa que se ha insertado y si es false ha habido algún problema. Así que jugaremos con este valor añadiendo una condición en la llamada a insertarReg.
El código quedaría de la siguiente manera:
Hemos incluido en un if la función para insertar el Registro en la base de datos. Si la función devuelve true entrará en el IF, por el contrario si devuelve false irá por el else. Así que lo que hemos hecho es, si todo ha ido bien, informar al usuario que el registro se ha introducido correctamente y si ha ido mal, informar con color rojo que no se ha podido insertar el registro en la base de datos.

Ahora ya tenemos completo el registro, informando al usuario tanto si se ha realizado correctamente como si no, como podéis ver en la imagen arriba.
El código completo lo tenéis en el siguiente enlace:
En este tutorial, hemos aprendido a realizar altas de usuarios en MySql desde PHP gracias a un formulario.
En el siguiente tutorial que publicaremos en breve, veremos como mandar un mail desde PHP para activar usuario con el método GET.
| Tweet | Compartir |
|
Colordeu creado a partir de la ambicion de gente joven, esta constituido por personal con experiencia, creativa y motivada, Respaldado por un equipo competente y colaboradores con proyectos importantes en el sector, ofrecemos a nuestros clientes un abanico de posibilidades en cuanto a las nuevas tecnologias. Este blog sobre de diseño, tecnologia, programacion, internet y curiosidades es nuestro caramelito y queremos compartirlo con todos vosotros.

Registros de usuario en Php y Mysql con validación de campos y activación por mail | colorate
febrero 21st, 2011 at 11:23 am
[...] En el siguiente tutorial veremos el tema como insertar usuarios en MySql desde un formulario PHP. [...]
Registros de usuario en Php y Mysql con validación de campos y activación por mail | colorate
febrero 21st, 2011 at 11:30 am
[...] Registrar Usuarios [...]
Registros de usuario en Php y Mysql con validación de campos y activación por mail | colorate
marzo 2nd, 2011 at 2:04 pm
[...] Tema 5: Registrar Usuarios en PHP [...]
ViCtorA
marzo 4th, 2011 at 2:37 am
Interesante y buen tutorial, hasta ahora me funciona todo correctamente aunque e tenido que inicializar las variables:
$existeE = 0; y $existeU = 0; para que no salieran avisos al mandar correctamente el formulario:
Notice: Undefined variable: existeU in C:\wamp\www\usuarios_ebro\formulario.php on line 207
Notice: Undefined variable: existeE in C:\wamp\www\usuarios_ebro\formulario.php on line 207
Espero continuar con la siguiente parte 6/8.
Saludos
P.D el CAPCHA no saca imagen con CROME
admin
marzo 4th, 2011 at 9:07 am
Tienes razón Victor .. gracias.
Un saludo.
andres
abril 17th, 2011 at 12:20 am
disculpa donde esta el siguiente tuto
admin
abril 18th, 2011 at 9:44 am
en los enlaces que hay al final del tutorial, dale al Tema 6, es este enlace: http://www.colordeu.es/BLOG/registros-de-usuarios-en-php-y-mysql-con-validacion-de-campos-y-activacion-por-mail-68
pablo quezada
junio 13th, 2011 at 9:09 pm
Hola, recien me inicio con ph y mysql, bueno, la verdad es que ha ido todo bien lo del tutorial, sin embargo en esta parte me envia los siguientes errores:
Notice: Undefined variable: existeU in C:\xampp\htdocs\registros\registro.php on line 204
Notice: Undefined variable: existeE in C:\xampp\htdocs\registros\registro.php on line 204
Unknown column 'nombre' in 'field list'
ojala me pudieras explicar
admin
junio 13th, 2011 at 9:26 pm
te invito a que veas la última parte del tutorial (parte
y descargues los archivos completos. Una vez los tenga comparalo con los tuyos.
http://www.colordeu.es/BLOG/registros-de-usuarios-en-php-y-mysql-con-validacion-de-campos-y-activacion-por-mail-88
Saludos.
Juan
septiembre 8th, 2011 at 12:08 am
Le puse una cortaseña a mi usuario de phpmyadmin, encendí hoy de nuevo el ordenador, y me pide que la ponga, pero no sé dónde se hace. Si podrías resolver mi problema (me está funcionando todo de maravilla, pero veo que ya te informaron sobre las variables no inicializadas).
Muchisimas gracias, está todo muy bien explicado, no como otros tutoriales de internet donde no entiendes nada, y estás 30 pasos para hacer un echo "Hola mundo".
Saludos.
admin
septiembre 14th, 2011 at 10:28 am
hola Juan, muchas gracias por tu comentario. En cuanto a tu duda, ¿podrías concretarme un poquito más, creo que no la he entendido muy bien?.
Juan
septiembre 19th, 2011 at 11:41 pm
Muchas gracias pero ya logré solucionarlo, error de principiante.
andree
febrero 23rd, 2012 at 6:39 pm
Me gustaria saber como podria capturar las variables del formulario para pasarlas a otra pagina !urgente
admin
febrero 24th, 2012 at 2:49 pm
Eso lo puedes hacer con GET de PHP pasados por URL.
Cristian
agosto 21st, 2012 at 11:42 am
hola, e probado varias veces hacer los pasos y no hay manera de que me salga, hay errores de variables, me podrias ayudar? mi correo es el torres_bcn_1990@hotmail.com, muchas gracias
Kevin
febrero 21st, 2013 at 7:29 am
tengo este error al momento de enviar el formulario
Access denied for user 'root'@'localhost' (using password: NO)
como le puedo resolver
admin
febrero 21st, 2013 at 4:09 pm
Hola Kevin,
échale un ojo a este enlace:
http://www.solusan.com/error-access-denied-for-user-rootlocalhost-using-password-no.html
Saludos.