Vídeo: Paso de variables por formularios, POST en PHP

  • Por
Videotutorial sobre envío de variables a través de formularios en PHP, lo que se conoce como POST en PHP.
Seguimos tratando en vídeo temas básicos de PHP, el lenguaje de programación de páginas del lado del servidor más popular. En esta ocasión vamos a dedicar media hora para una clase práctica sobre la creación de formularios y el envío y procesamiento de los datos escritos en páginas PHP. Este es uno de los vídeos que se encuentran en el Videotutorial de PHP.

Como decimos, el paso de variables es una de las tareas más comunes que tendremos que enfrentar en el desarrollo de aplicaciones web y merece la pena dedicarle un tiempo razonable para aprender estas técnicas. Hasta el momento en DesarrolloWeb.com ya hemos explicado acerca del envío de variables por POST en diversos capítulos de manuales y talleres de PHP. Así que este vídeo viene a complementar las explicaciones ya existentes en esta web, siendo recomendable leer al menos el artículo Procesar variables de formularios.

En este videotutorial abordamos el tema desde la práctica y podremos ver cómo se programan tres ejemplos de páginas que envían y reciben datos a través de formularios. El material está dividido en tres vídeos de 10 minutos cada uno.

Vídeo 1.- Formulario sencillo y recepción de variables por Post

En este primer vídeo veremos un primer ejemplo de envío de variables por Post, donde haremos dos páginas. Una de ellas contendrá un formulario HTML sencillo, donde veremos cómo construirlo para indicar a qué página tenemos que enviar los datos para procesarlos. Luego haremos la página PHP que contiene el código para recibir los datos enviados por Post.

Videotutorial 2.- Ejemplo de formulario reentrante

Así llamamos a los formularios que se llaman a si mismos. En este vídeo haremos un ejemplo similar de formulario y envío de variables por Post, con la particularidad que la misma página servirá para mostrar el formulario y procesar los datos que se escriban. Es decir, al enviarse el formulario, la página se llamará a si misma para procesar los datos. Es una técnica bastante habitual que ayuda a mantener menos archivos con código y que éste se encuentre más ordenado. Para ello tenemos que aprender a averiguar cuándo se están enviando datos por un formulario a la página. Si no se reciben datos, se deberá mostrar el formulario y en el caso que se reciban, pues se procesen y se presenten los resultados.

Si se desea, para complementar las explicaciones de este vídeo sobre formularios en PHP que se llaman a si mismos, se puede leer el artículo Autollamada de páginas.

Vídeo 3.- Formulario fijo y procesamiento condicionado a recibir datos

En este tercer vídeo hacemos un nuevo ejemplo que tiene interés para reforzar los conocimientos anteriores. En realidad es una pequeña variación del ejemplo anterior, de formulario reentrante, pero lo que hacemos en este caso es que el formulario permanezca siempre fijo y que la página, en el caso que reciba datos, los procese. Además, veremos un ejemplo de consumo de los datos del formulario, pues hasta ahora sólo los habíamos mostrado por pantalla, haciendo que se muestre la tabla de multiplicar del número enviado en el formulario.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

Alejandro Lima

14/5/2010
salto de linea
Hola he hecho un formulario en php pero cuando recibo los datos en mi correo me llegan todos en una sola linea, ejemplo: Nombre: Alejandro Apellido: Lima Telefono: 04244332210
Yo quisiera que me llegaran con salto de linea asi:
Nombre: Alejandro
Apellido: Lima
Telefono: 04244332210

el codigo del mensaje es este:

$mensaje='
DATOS DE PAGO Y DIRECCIÓN DE ENVÍO
Email: '.$email.'
Su Seudonimo: '.$seudonimo_ml.'
Producto ofertado: '.$producto_ofertado.'
Nombre o razón social: '.$razon_social.'
C.I o Rif: '.$cedula_o_rif.'
Monto depositado o transferido: '.$monto_deposito.'
No. Depósito o Transferencia: '.$numero_deposito.'
Banco por donde pagó: '.$Banco.'
Dia: '.$dia_deposito.'
Mes: '.$mes_deposito.'
Año: '.$anno_deposito.'
Teléfono móvil de contacto: '.$telefono.'
Estado: '.$estado.'
Ciudad: '.$ciudad.'
Dirección de envío: '.$direccion.'
--------------------------------------------
DATOS PARA LA FACTURA
Nombre o razón social: '.$razon_social_factura.'
Teléfono: '.$telefono_factura.'
Estado: '.$estado_factura.'
Ciudad: '.$ciudad_factura.'
Dirección: '.$direccion_factura.'
-------------------------------------------
DATOS PARA EL REGISTRO DE LICENCIAS
Nombre o razón social: '.$razon_social_licencia.'
C.I o Rif: '.$cedula_o_rif_licencia.'
Estado: '.$estado_licencia.'
Ciudad: '.$ciudad_licencia.'
Código Postal: '.$codigo_postal.'
Dirección: '.$direccion_licencia.'
Telefonos del personal soporte: '.$telefono_contacto_licencia.'
Telefono(s) de algún directivo: '.$telefono_directivo_licencia.'
Persona de contacto: '.$especialista_tecnico.'
Correo electrónico soporte: '.$email_soporte.'
Correo electrónico entidad: '.$email_empresa.'
Comentarios: '.$comentarios.'
';


Muchas gracias

jose antonio

08/7/2010
ayuda
como puedo aser un formulario para q cuando envie por metodo post lleguen las variables al correo en una tabla horizontal ¿se puede aser eso?

versace123mx_versace

27/10/2010
Help
Como hacer, para cuando se envien los datos del formulario, solo aparesca en nmbre de la tabla y la tabla, osea desaparecer el campo de seleccion y el botton, a lo he intentado de varias formas anteponiendo la negacio if (!$_POS) si no se ha enviado nada mostrar el formulario }esel{ de lo contrario es por que ya se envio algun dato, y a un no lo he podido hacer, no se donde radique mi error.

versace123mx_versace

27/10/2010
Ia lo pude hacer
Solo para comentar que ia lo pude hacer, solo hera un error de sintaxis, no me avia fijado que la comparacion la estava asiendo dentro del form, por ello no dava, y la comparacion tiene que ser fuera del for.

<html lang="es">
<head>
<title>Formularios reentrantes</title>
</head>
<body>
<?php
if (!$_POST){
?>
<div align="center">Tabla de multiplicar:
<form action="24_formulario_inteligente_tablas_de_multiplicar_post_B.php" method="post">
<select name="tabla">
<?php

for ($i=1; $i<=10; $i++){

echo '<option value="' . $i . '">' . $i . '</option>';
}
?>
</select>
<br>
<input type="submit" value="calcular">
</form>
</div>

<?php
} else {

//es que recibo algo del formulario
echo "<h1 align=center>Tabla de multiplicar del " . $_POST["tabla"] . "</h1>";
echo '<table align=center border=0>';
for($t=1; $t<=10; $t++){
$tabla = $_POST["tabla"];
$multi = ($tabla*$t);
echo "<tr>";
echo "<td>" . $tabla . " X " . $t . " = " . $multi . "<td>";
echo "</tr>";
}
echo "<td>" . "<a href='24_formulario_inteligente_tablas_de_multiplicar_post_B.php'>" . "Regresar" . "</a><td>" ;
'</table>';
}
?>
</body>
</html>

versace123mx_versace

27/10/2010
Para Jose
Claro que se puede hacer jose, lo que mencionas, de que aparescan en forma horizontal, solo elimina las etiquetas <tr> y listo. asi:

for($t=1; $t<=10; $t++){
$tabla = $_POST["tabla"];
$multi = ($tabla*$t);
//echo "<tr>"; Elimina esta linea, o comentala como yo lo he hecho
echo "<td>" . $tabla . " X " . $t . " = " . $multi . "</td>";
//echo "</tr>";Elimina esta linea, o comentala como yo lo he hecho
}

Ahora lo de enviar por correo, no entiendo, enviar las tablas por e-mail, si es por e-mail tienes que tener un servidor de correos SMTP, o si entu citio web de paga tienes servicio de SMTP. pues sol tienes que hacer el formulario tipo html, con la funcion mail() de php y listo. puedes enviar las tablas por e-mail............

see you ;)

EruWvccQffguSec

05/11/2011
WmLsSmzc
Ab fab my golody man.

moxita

23/10/2013
Ayuda!!! No me sale!!
Hola Miguel, primero darte la enhorabuena por la matada de hacer vídeos tutoriales tan bien explicados, gracias!!

Bien, he estado practicando tu código pero no me sale, copio y pego mi código a ver que posible error hay, en html tengo el siguiente:

<body>

<div align=center>Tabla de Multiplicar:
<form method="post" action="multiplicar.php">
<select name="tabla">
</select>
<input type=submit value="ver">
</form>
</div>



</body>

En php tengo el siguiente:

<?php
for ($i=1; $i<= 10; $i++){
echo'<option value="' . $i . '">' . $i . '</option>';
}
?>

<?php
if($_POST){
echo"<h1 align=center>tabla de multiplicar del " . $_POST["tabla"] . "</h1>";
$tabla = $_POST["tabla"];
echo'<table align=center border=1 cellpadding=4>;
for ($i=0; $i<=10; $i++){
echo '<tr>';
echo '<td>' . $tabla . ' X ' . $i . '</td>';
echo '<td>' . ($tabla * $i) . '</td>';
echo '<tr>';
}
echo '<table>';
}
?>

Los 5 últimos echos me salen como erróneos en dreamweaver...

Espero puedas resolverme esta duda!!

Gracias con antelación

moxita

23/10/2013
Otra duda
Tengo otra duda, y es que me gustaría hacer un formulario, con nombre, apellido y mensaje por ejemplo, y quiero hacer que con php parte de ese formulario me llegue a mi email y la otra parte se quede almacenada en una base de datos en Wampserver, por ejemplo en MySQL es una tabla llamada x con una columna llamada x y que ahí se quedara almacenada el nombre y a mi email me llegara apellido y mensaje.

Cómo es esto posible?

Gracias!!

MARIA SANTOS

11/11/2013
como hacer tablas?
esto es lo que estuvimos trabajando con el profesor
pero no utilizamos post sinó request ahora quiero hacer una pagina modificar datos cuales son los comandos?
estaré muy agradecida por la respuesta.

<form action="formularioinsercion.php" method="get">
codigo de titulacion:<input type="text" name="codtitulacion"><br>
codigo del centro:<input type="text" name="codcentro"><br>
nombre de la titulacion:<input type="text" name="nombretitulacion"><br>
boe publicado:<input type="text" name="codboe"><br>
campus:<input type="text" name="campus"><br>
<input type="submit" name="orden" value="insertar">
<input type="submit" name="limpiar" value="limpiar">
</form>


<?php
function ConectarBD()
{
mysql_connect("localhost","usercentro","passcentro");
mysql_select_db("titulaciones");
}
ConectarBD();
$codtitulacion = _REQUEST['codtitulacion'];
$codcentro = $_REQUEST['codcentro'];
$nombretitulacion=$_REQUEST['nombretitulacion'];
$codboe = $_REQUEST['codboe'];
$campus = $_REQUEST['campus'];
$sql = "insert into titulaciones (codtitulacion, codcentro, nombretitulacion, codboe, campus) values ('$codtitulacion','$codcentro','$nombretitulacion','$codboe','$campus')";
echo $sql;
mysql_query($sql);
echo "Inserci&oacute;n realizada correctamente";
break;
?>

faustinomr

26/7/2016
Felicitaciones
Gracias por vuestro esfuerzo y la buena calidad de los videos,. Superútiles.