Marcofbb Noticias y Artículos Webmasters



Publicidad marcored

Envío de datos de un formulario con PHP

  • 15/02/2011
  • 1:09 am
  • marcofbb

En esta clase vamos a hablar del envío de datos de un formulario.

El proceso que se lleva a cabo para el manejo de formularios requiere 2 etapas, una es donde esta el formulario y la otra donde esta lo que procesa los datos del formulario. Esto se puede hacer en 2 páginas o hacer las 2 etapas en una sola.

En el ejemplo que vamos a usar se van a procesar los datos en 2 páginas diferentes así no se confunden.

Suponemos que tenemos un formulario que nos pide ingresar nuestro nombre algo bien simple

<html> 
  <head> 
  <title>Formulario de entrada del dato</title> 
  </head> 
  <body>
<form method="post" action="pagina2.php"> 
  Ingrese su nombre: 
  <input type="text" name="nombre"> 
  <br> 
  <input type="submit" value="confirmar"> 
  </form>
</body> 
</html>

Los tags <form> y </form> nos permiten definir el formulario en la página. Dentro de <form> obligatoriamente hay que ingresar 2 propiedades que son action y method. La primera, action, indica el nombre del archivo que procesara los datos enviados del form al apretar el boton (submit). La propiedad method es como se codifican estos datos para enviarlos, pueden ser mediante POST y GET (Normalmente los datos de un formulario se envían vía POST). Mediante POST se envía la información en forma oculta. En cambio con el metodo GET la información nos va a aparecer en la url del sitio.

Para crear un cuadro de texto para el ingreso del nombre debemos definir un objeto de tipo "text" y darle un nombre:

<input type="text" name="nombre">

La propiedad type nos permite definir el tipo de control y con la propiedad name indicamos el nombre del control.
Por último todo formulario tiene un botón de tipo submit:

<input type="submit" value="confirmar">

También utilizamos la marca input pero en la propiedad type indicamos que se trata de un botón de envio de datos. En la propiedad value indicamos el texto que queremos que aparezca en el botón.

Ahora necesitamos una página para procesar los datos del formulario que se tiene que llamar de la misma manera que pusimos la propiedad action del fomulario, en este ejemplo pagina2.php.

<html> 
  <head> 
  <title>Captura de datos del form</title> 
  </head> 
  <body>
<?php 
  echo "El nombre ingresado es:"; 
  echo $_POST['nombre']; 
  ?>
</body> 
</html>

Para acceder al dato del formulario mediante PHP utilizamos $_POST o $_GET, en este caso $_POST y entre corchetes y comillas ['Acá nombre del input'] ponemos le nombre del input que deseamos tomar los datos (dicho nombre es sensible a mayúsculas y minúsculas).

Esta clase no termine acá, pero para no hacer la clase tan larga prosigo mañana. Quiero agradecer a PHPYA por guiarme de alguna manera a las palabras correctas para explicar esta clase.

Hilo donde están todos los artículos para aprender PHP

Share

¿Necesitas ayuda? o ¿Asesoramiento webmaster? Registrate en nuestro foro de consultas

Posts Relacionados

Total de Comentarios: 22

Avatar
15/02/2011
1:11 am

[...] condicional (if/elseif/else) Clase 4: Tipos de bucles (while, Do while, for y foreach) Clase 5: Envío de datos de un formulario MeneameBitacorasRedditDeliciousGoogle [...]

Avatar
15/02/2011
5:36 pm

[...] This post was mentioned on Twitter by djmixseba, Marco Fernando. Marco Fernando said: Envío de datos de un formulario con PHP http://goo.gl/fb/ySprT [...]

Avatar
21/02/2011
4:14 pm

😀

Avatar
Edwin
22/02/2011
8:02 pm

Excelente marco, gracias por estar haciendo esto para la gente que visita tu web 😉

Avatar
manuel luna
17/03/2011
9:37 pm

men andube poniendo el codigo que me pasaste para el formulario el que me dijiste que remplazara el echo por local y la pagina a donde te dijire al enviar el formulario

aki pongo para ver si me puedes ayudar 🙂 mira el codigo:

<?php
// Para que ande este código php tienen que tener el hosting activado la funcion mail() activada
$mail='starwebservice@hotmail.com'; // Ingresa tu correo electronico
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$mensaje = $_POST['mensaje'];
# Esto es lo que va a aparecer en el mail cuando te llega
$message = "
nombre: ".$nombre."
email: ".$email."
mensaje: ".$mensaje."";
# Cambiar Formulario de Consulta por el asunto del mail, ejemplo: contacto desde mi web
if (mail($mail,"Mensaje desde Mi Web",$message, "From: ".$nombre." ")){
echo "Email enviado correctamente"; }
else {
echo "Se produjo un error y no se pudo enviar el mail"; }

/* validacion con php */

function valida_email($email){
if(eregi("^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email))
return true;
else
return false;
}
$mail = "mail@example.com";
if(valida_email($mail))
{
echo "";
} else {
echo "El mail NO es valido";
}
?>

    Avatar
    17/03/2011
    11:59 pm

    <?php
    function valida_email($email){
    if(eregi("^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email))
    return true;
    else
    return false;
    }
    // Para que ande este código php tienen que tener el hosting activado la funcion mail() activada
    $mail='starwebservice@hotmail.com'; // Ingresa tu correo electronico
    $nombre = $_POST['nombre'];
    $email = $_POST['email'];
    $mensaje = $_POST['mensaje'];
    if(valida_email($email))
    {
    # Esto es lo que va a aparecer en el mail cuando te llega
    $message = "
    nombre: ".$nombre."
    email: ".$email."
    mensaje: ".$mensaje."";
    # Cambiar Formulario de Consulta por el asunto del mail, ejemplo: contacto desde mi web
    if (mail($mail,"Mensaje desde Mi Web",$message, "From: ".$nombre." ")){
    header("Location: enviado-correctamente.html"); }
    else {
    header("Location: mail-novalido.html"); }
    } else {
    echo "El mail NO es valido";
    }
    ?>

    Tenes que crear 3 archivos, enviado-correctamente.html, error-mail.html, mail-novalido.html, para que dependiendo del resultado que te de tu script te redirecciona a unas de esas 3 URL. En enviado-correctamente.html podes poner Gracias por contactarse, en error-mail.html podes poner Error al enviar el mail, y en mail-novalido.html podes poner El mail ingresado, no es valido

Avatar
Manuel Luna
18/03/2011
1:06 am

orale muchas gracias por ayudarme 🙂
ahorita me pruebo el codigo

Avatar
20/07/2011
12:55 pm

Hola, muy bueno el tuto, solo que todos los datos me llegan en el asunto del mail, y no encuentro como arreglarlo

muchas gracias

    Avatar
    20/07/2011
    5:51 pm

    déjame el código que usas, el error esta en la linea mail(

Avatar
21/07/2011
9:36 am

comparto el PHP para q sirva a otros, ya lo arregle...

Avatar
21/07/2011
9:38 am

Avatar
21/07/2011
2:04 pm

Por favor Ramiro, parsea el código en

http://www.blogcrowds.com/resources/parse_html.php

y luego publica lo gracias

Saludos

Avatar
21/07/2011
2:15 pm

codigo HTML

<form method="post" action="envia.php" id="form" name="form">
<table width="90%">
<tr>
<td align="right" width="25%"><label>Apellido-Nombre:</label></td>
<td width="70%"><input type="text" id="apel" name="apel" size="50" maxlength="50" /></td>
</tr>
<tr>
<td align="right" width="20%"><label>Email :</label></td>
<td width="70%"><input type="text" id="email" name="email" size="50" maxlength="50" /></td>
</tr>
<tr>
<td align="right" width="20%"><label>Teléfono :</label></td>
<td width="70%"><input type="text" id="telefono" name="telefono" size="30" maxlength="40" /></td>
</tr>
<tr>
<td align="right" width="20%" align="top"><label>Comentarios :</label></td>
<td width="70%"><textarea name="comentario" id="comentario" rows="8" cols="38"></textarea></td>
</tr>
<tr>
<td width="20%">&nbsp;</td>
<td width="70%"><input type="submit" name="submit" value="Enviar Formulario" />&nbsp;&nbsp;&nbsp;
<input type="reset" name="submit" value="Borrar" /></td>
</tr>
</table>
</form>

Avatar
21/07/2011
2:17 pm

envia php - solo falta agregar las validaciones

<?php

$email = $_POST['email'];
$apel = $_POST['apel'];
$telefono = $_POST['telefono'];
$comentario = $_POST['comentario'];
$thank = "gracias.html";

$to = "tumail@tumail.com";

$message = "Nuevo Mensaje: ".$apel.", ".$email.",Tel:".$telefono."nn";
$message .= "$comentario";
$headers = "MIME-Version: 1.0rn";
$headers .= "Content-type: text/html; charset=iso-8859-1rn";
$headers = "From: ".$email."";

if(mail($to,"Mensaje desde Mi Web",$message, $headers)) Header ("Location: $thank");

?>

Avatar
30/08/2012
1:39 pm

[...] condicional (if/elseif/else) Clase 4: Tipos de bucles (while, Do while, for y foreach) Clase 5: Envío de datos de un formulario Clase 6: Vectores, Array, Arreglos en PHP Clase 7: Funciones en PHP Clase 8: Base de Datos Clase [...]

Avatar
04/11/2012
9:40 am

jo probo muchos codicos para un formulario de contacto y no me functiona por nada me da un eror de linea 29
mira jo pongo ai el codico

i no me fucctiona
puede me podeis ayudar
gracias

    Avatar
    04/11/2012
    2:53 pm

    Luigi,
    ¿Cual es el hosting que utilizas para tu web? ¿Soporta la funcion mail(); ?

    Saludos

Avatar
21/01/2013
8:16 am

feliz año nuevo

Avatar
Dario
08/03/2013
2:13 pm

Y si en el action pusiera index.php y quisiera recibir los datos? Cómo sería?

Avatar
01/05/2013
1:17 pm

hola

Avatar
freddy lopez
03/05/2013
5:30 pm

te felicito por altisima capacidad deexplicar nunca me detengo ha hacer comentario pero esta vez que gusto comode foma metodica y facil hicites tus explicaciones

Avatar
12/09/2013
6:41 pm

hola tengo dias leyendo todo tipo de informacion y sorpresa para mi esta SI la entendi casi nunca cumplen lo que prometen YA HICE MI PRIMER PROGRAMA CON TU SUPER BLOG.Felicitaciones para ti y para mi.Gracias.


Enviar Comentario

(*)

(*)