En el siguiente aporte explicaré cómo crear un formulario de registro con PHP, enviando los datos del formulario hacia una base de datos MySQL. El formulario es sencillo, cuenta con apenas 3 campos (nombre, apellido, email) pero se presta para modificarlo y adaptarlo a una mayor cantidad de campos de captura de información.
Recientemente he estado incursionando un poco en programación web. Me ha llegado la necesidad de programar un formulario de inscripción que envíe los datos a una base de datos MySQL alojada en un servidor.
Antes hemos tenido la oportunidad de presentar para ustedes algunos tutoriales sobre MySQL:
En esta ocasión les mostraré como crear un formulario de registro con PHP. La información se enviará a una base de datos.
Esta demostración no es perfecta. No soy programador web, no pretendo serlo y no creo que llegue a serlo alguna vez, más allá de un nivel aficionado. Sin embargo me ha tocado trabajar con este tipo de programación y aprovecho este espacio para documentar y compartir los conocimientos que he adquirido.
Nuestro formulario debe verse así:
Para lograr esto se necesitarán 5 archivos.
A continuación explico brevemente que hace cada uno.
- index.html: Es el archivo que contiene el formulario en sí. Debe llamarse index para que cuando se coloque en un servidor web y sea accedido por medio de un navegador de internet, este sea el primer archivo en cargarse. A partir de este se redirige hacia cualquier otro formulario.
- Success.html: Este archivo contiene la pantalla que se muestra si el registro del formulario ha sido exitoso.
- Fail.html: muestra un mensaje de error, en caso de que no se pueda completar la inscripción en la base d datos.
- estilos.css: contiene las instrucciones para el estilo de la interfaz gráfica. Los colores, degradados, tamaño de texto, justificación, etc, se establecen en este fichero.
- registro.php: contiene la programación que captura los datos y los envía a la base de datos MySQL.
A continuación publicaré el código que contiene cada fichero.
index
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<!doctype html> <html> <head> <meta charset="utf-8"> <title>Formulario de Registro SCIII</title> <link href="estilos.css" rel="stylesheet" type="text/css"> </head> <body> <div class="group"> <form action="registro.php" method="POST"> <h2><em>Formulario de Registro</em></h2> <label for="nombre">Nombre <span><em>(requerido)</em></span></label> <input type="text" name="nombre" class="form-input" required/> <label for="apellido">Apellido <span><em>(requerido)</em></span></label> <input type="text" name="apellido" class="form-input" required/> <label for="email">Email <span><em>(requerido)</em></span></label> <input type="email" name="email" class="form-input" /> <center> <input class="form-btn" name="submit" type="submit" value="Suscribirse" /></center> </p> </form> </div> </body> </html> |
registro
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<?php $db_host="localhost"; $db_user="nombre_de_usuario"; $db_password="contraseña"; $db_name="nombre_de_base_de_datos"; $db_table_name="nombre_de_tabla"; $db_connection = mysql_connect($db_host, $db_user, $db_password); if (!$db_connection) { die('No se ha podido conectar a la base de datos'); } $subs_name = utf8_decode($_POST['nombre']); $subs_last = utf8_decode($_POST['apellido']); $subs_email = utf8_decode($_POST['email']); $resultado=mysql_query("SELECT * FROM ".$db_table_name." WHERE Email = '".$subs_email."'", $db_connection); if (mysql_num_rows($resultado)>0) { header('Location: Fail.html'); } else { $insert_value = 'INSERT INTO `' . $db_name . '`.`'.$db_table_name.'` (`Nombre` , `Apellido` , `Email`) VALUES ("' . $subs_name . '", "' . $subs_last . '", "' . $subs_email . '")'; mysql_select_db($db_name, $db_connection); $retry_value = mysql_query($insert_value, $db_connection); if (!$retry_value) { die('Error: ' . mysql_error()); } header('Location: Success.html'); } mysql_close($db_connection); ?> |
Cuando se presiona el botón de suscribirse en el formulario HTML se ejecuta el código de registro.php
Es necesario establecer el nombre de una base de datos en MySQL con su respectivo usuario y contraseña. Se debe proporcionar el nombre de la tabla, la cual debe contener al menos las columnas nombre, apellido y email.
Si se da el registro de forma exitosa se redirige a Success. De lo contrario se redirige a Fail.
Los demás archivos, incluyendo los estilos se encuentran disponibles para ser descargados desde el siguiente enlace:
Esperamos que la información suministrada sea de utilidad para todos y todas. Saludos.
Estimado que buena explicacion, quiero saber donde validas el correo electronico que vaya acompañado de @, se puede validar un nro. celular o telefono.
saludos desde Peru que existe una universidad tecnologica del Peru
man he agregado dos campos mas telefono y consultas como text area, lo subi a mi hosting, me esta saliendo error mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/rchjchdf/public_html/registro.php on line 20
Amigo subi la pagina a mi sitio le coloque la base de datos pero cada vez que hago click en suscribirse me sale el dialogo de descarga para el registro.php
que puede estar mal? gracias
me pasa exactamente lo mismo como se arregla?
piensenle tantito,
Me pasaba lo mismo tienes que habilitar el servidor web en tu equipo, si usas windows, puede ser wampp, o instalarlo independiente, el hecho es que tiene s que guardar los documentos php en el directorio del servidor
Xampp es buena opción
y ahora que hago con mi base de datos, como la hago o que D:
la repuesta esta tu corazon
[…] un formulario y Validarlo, usando HTML, PHP, JavaScript y CSS. Crear formulario de registro con PHP y MySQL | Panama Hitek. En el siguiente aporte explicaré cómo crear un formulario de registro con PHP, enviando los […]
Hola!! podrias hacer uno de login??
Buen aporte (y) +100
gracias saludos desde el salvador
cuando lo conecto con mi base de datos, me sale error en la línea Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp\htdocs\proyecto4cu\Suscribe\registro.php:7 Stack trace: #0 {main} thrown in C:\xampp\htdocs\proyecto4cu\Suscribe\registro.php on line 7
y toda los datos están bien
Comprueba tu versión de PHP, con la version 7 este código ya no funcion
Eso es correcto
Con la nueva versión del php, ahora al final de cada (mysql_) que tengas, debes agregarle i al final; así (mysqli_)
Eso es correcto
ya agregue mysqli_ y no me conecta me manda el msj de no hay conexion con la base de datos. Que hice mal ???
excelente
ahora yo quiero un formulario para eliminar los datos de una base de datos
Hermano gracias me sirvio caleta, vi un monton de mierda en youtube y ni uno funcionaba pero el tuyo si gracias compa se agradece mucho
Gracias hermano, que Dios te bendiga y te de mucha sabiduria para que sigas compartiendo… Mi caso es similar, estudio por mi cuenta y lo que voy aprendiendo lo comparto con todos los que me rodean
Hola, estoy usando tu codigo y me sale este error, espero me puedas dar una ayuda, soy nueva 🙂
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home1/mario/public_html/register.php on line 19
Error: No database selected
Busca la línea 19 del archivo register.php
hola, estoy usando el codigo para una tarea pero me marca este error «Notice: Undefined variable: db_connection in C:\xampp\htdocs\banco\registro.php on line 9», podria ayudarme por favor.
Creo que hay que actualizar la instruccion
por favor podrias actualizar las instrucciones ya que la manera en como me enseñaron es mas corta pero no se me registran los datos en la base de datos y por eso estoy buacando respuestas del porque no se me da. gracias
una pregunta con cualversion php estas trabajando para mila version con la que estamos trabajando y los parametros no son adecuados para nuestro php7 la version solo pide parametros para mysqli
Creo que era PHP5
Gracias.
Buenas tardes
Tengo ese erorr en esa linea y no encuentro que pueda ser
Parse error: syntax error, unexpected ‘;’ in C:\xampp\htdocs\Bucaramotriz\registro.php on line 21
Me puedes dar una orientacion
Hola German. Ahi dice que en la linea 21 del registro.php te olvidaste una coma(;) en una sentencia