Videoblogs

Mapa del sitio Mapa
      Feeds RSS

Todos los articulostU MuSicA
Ultimos Agregados      |      Mas Vistos      |      Solo videos      |      Solo textos      |      Tags      |      Chat

 

¿Como enviar un formulario con PHP?



Visto: 3710 veces - Enviado por: Rhosting
Conversa sobre este tema
Volver a Rhosting

Ahora te vamos a explicar el codigo PHP que debes usar para enviar un formulario y como interactuara con el mismo.

Actualizate via RSS
Agendalo a tus Favoritos Favoritos 
Recomendalo Recomendalo

 





RH

 
Para saber más...

Manual de PHP Webstilo 
Otro manual de php
Manual de PHP de Programacion.net
Funcion Mail() en PHP

 

Si no sabes PHP, no te preocupes, al final del articulo podras descargar el programa, solo debes subirlo a tu sitio web via FTP y configurar el form de la manera que te mostramos y eso sera todo.


 ANTES DE EMPEZAR


Si solo queres adaptar tu formulario, te sugerimos que descargues el codigo desde nuestra seccion de ayuda, incluye un formulario de muestra, y sigas leyendo aqui.


Si deseas continuar y aprender, es necesario que tengas conocimientos sobre PHP, como enviar emails con PHP y conocimientos minimos de programacion, mas que nada sentencias y condicionales.


 COMENZANDO...


Bien, un archivo PHP que envie los resultados de un formulario básicamente necesita capturar estos resultados, separarlos en resultados normales y especiales ( por especiales entendemos algunos campos de formulario mediante los cuales queramos darle instrucciones al archivo PHP. Los verás mas adelante, son campos como redirect, subject, etc) y luego realizar operaciones con los resultados especiales, tabular, o sea, darle apariencia a los que no lo son y luego enviarte el email.


Debido a que el programador conoce cuales son las variables especiales y desconoce las otras variables, o campos que usara el usuario, comienza realizando un while, que capture todos los campos enviados por el formulario, el cual lo hará por el metodo POST y vea si son especiales o no. Si son especiales, los asigne a ciertas variables reservadas. Si no lo son, los muestre tabulados.


 Esto lo logra con este codigo:


if (count(stripslashes($_POST))!=0){

$cuerpodelmensaje="";

while (list($key, $val) = each ($_POST)){

        switch ($key){

            case "recipient":

                $enviaraemail=$val;

                break;

            case "email":

                $emaildelqueenvia=$val;

                break;

            case "subject":

                $asunto=$val;

                break;

            case "redirect":

                $fgwreturnurl=$val;

    if($fgwreturnurl!=""){$haygracias=true;}

                break;

            case "plantilla":

                $plantilla=$val;

    if($plantilla!=""){$hayplantilla=true;}

    break;


      default:

      $keysinguionesbajos=ereg_replace("_"," ",$key);

    if($hayplantilla==true){

    $reemplazar.=",{{".$key."}}";

    $cadenanueva.=",".$val;

    } else {

    $cuerpodelmensajefinal.=$keysinguionesbajos.": ".$val."<br>";

    }

}


Donde, como vemos, pregunta si se envio alguna variable mediante POST con la linea if (count(stripslashes($_POST))!=0){

y, si se envio,  luego ejecuta un while para revisar cada variable enviada en busca de nombres especiales mediante la sentencia case'':


Case significa "en caso de que" o sea, en caso de que la variable POST se llame de una determinada manera.


Luego de esta verificacion viene el codigo que se encarga de verificar si se envio el email, mediante esta linea:


if (!$emaildelqueenvia){

echo "No se ha indicado una dirección de E-Mail. Presiona el boton del navegador para volver atras al formulario y colocarlo.";

die;}


Podes comentarlo, o sea, ponerle // adelante para que no lo interprete, si no queres llamar a alguno de tus campos email, que es lo que se necesita para que verifique el email ingresado.


Finalmente enviamos todo con esta instruccion:


@mail ($enviaraemail, $asunto, $cuerpodelmensajefinal, $headers)


Recuerda, la instruccion mail() es la que usa php para enviar los emails. Tiene una forma particular de escribirse, sobre la que encontrarás mas informacion en los enlaces.


Bien, ahora que te hemos dado un panorama sobre como funciona el php que envia el email, te dejamos con el codigo completo de nuestro PHP que envia los emails con formato. Recuerda que podrás descargarlo desde http://www.rhosting.com.ar/descargas/sendmail.zip :


function ValidarDatos($campo){

//Array con las posibles cabeceras a utilizar por un spammer

$badHeads = array("Content-Type:",

                  "MIME-Version:",

                  "Content-Transfer-Encoding:",

                  "Return-path:",

                  "Subject:",

                  "From:",

                  "Envelope-to:",

                  "To:",

                  "bcc:",

                  "cc:");

//Comprobamos que entre los datos no se encuentre alguna de

//las cadenas del array. Si se encuentra alguna cadena se

//dirige a una página de Forbidden

   foreach($badHeads as $valor){

    if(strpos(strtolower($campo), strtolower($valor)) !== false){

        header("HTTP/1.0 403 Forbidden");

        exit;

    }

   }

}

// Declaro como falsa la variable de plantillas para dejar que el programa la evalue

$hayplantilla=false;

// Declaro como falsa la variable de la pagina de agradecimiento para dejar que el programa la evalue

$haygracias=false;

// Declaro las variables de acumulacion de variables

$reemplazar.="";

$cadenanueva.="";


// Evalua si se pasaron variables. Si es asi separa variables especificas y compila las otras.

if (count(stripslashes($_POST))!=0){

$cuerpodelmensaje="";

while (list($key, $val) = each ($_POST)){

        switch ($key){

            case "recipient":

                $enviaraemail=$val;

                break;

            case "email":

                $emaildelqueenvia=$val;

                break;

            case "subject":

                $asunto=$val;

                break;

            case "redirect":

                $fgwreturnurl=$val;

    if($fgwreturnurl!=""){$haygracias=true;}

                break;

            case "plantilla":

                $plantilla=$val;

    if($plantilla!=""){$hayplantilla=true;}

    break;


      default:

      $keysinguionesbajos=ereg_replace("_"," ",$key);

    if($hayplantilla==true){

    $reemplazar.=",{{".$key."}}";

    $cadenanueva.=",".$val;

    } else {

    $cuerpodelmensajefinal.=$keysinguionesbajos.": ".$val."<br>";

    }

       }

}


//if (!$emaildelqueenvia){

//echo "No se ha indicado una dirección de E-Mail. Presiona el boton del navegador para volver atras al formulario y colocarlo.";

//die;}

if($hayplantilla==true){

$reemplazados=explode(",",$reemplazar);

$cadenanuevaencadena=explode(",",$cadenanueva);

$archivo = file($plantilla);

$lineasdecadena = count($cadenanuevaencadena);

$lineas = count($archivo);

for($i=0; $i < $lineas; $i++){

$Cadena=$archivo[$i];

for( $j = 0; $j <=  $lineasdecadena; $j++ ){

if(($reemplazados[$j]!="")&&($cadenanuevaencadena[$j]!="")){$Cadena=ereg_replace($reemplazados[$j],$cadenanuevaencadena[$j],$Cadena); }

}

$cuerpodelmensajefinal.=$Cadena;

}

}


$headers  = 'MIME-Version: 1.0' . "\r\n";

$headers .= "Content-Type:text/html; charset=iso-8859-1\r\n";

$headers .= 'To: '.$enviaraemail.'' . "\r\n";

$headers .= 'From: '.$emaildelqueenvia.' <'.$emaildelqueenvia.'>' . "\r\n";

if(@mail ($enviaraemail, $asunto, $cuerpodelmensajefinal, $headers)){if($haygracias==true){header("Location:".$fgwreturnurl);} else { echo "Muchas gracias por ponerte en contacto con nosotros! Tu mensaje fue enviado. Una persona de nuestra empresa se pondrá en contacto contigo a la brevedad.<p>&nbsp;</p>Continuá disfrutando nuestro sitio!";}} else { echo "No se ha podido enviar tu email. Por favor vuelve atras e intentalo nuevamente.";}}else{echo "Error: no se ha transferido ningún dato";die;

}


Enlaces relacionados

 

Tags relacionados

 

mapa, del, sitio,

Conversaciones



Alberto


16-08-2008
HOLA HOLA




14-08-2008
No entiendo nada


ljlj


29-07-2008


jkljklkjlj


fsdfa


26-07-2008
asfdaf


qweqwe


10-07-2008
qweqweqwe




10-07-2008
qwe




19-06-2008
jjjj


fdfzdf


22-04-2008
hola


Sin Nick


Sin Fecha
Gracias por el codigo


Sin Nick


2007-10-01
Hola primero que nada es excelente su trabajo, me sirvio de mucho. Ahora necesito saber como se podrian incorporar los checkbox ya que hice un formulario con preguntas de multiples respuestas, y me he puesto a probar como puedo hacer y no me sale.
Le mando un saludo Grande y desde ya Muchas Gracias.
Federico

Nick (sin espacios, ni acentos)

Tu Email:
Permitir que otros usuarios me contacten

Tu Contraseña:

Tus comentarios:

 

 

Los mas buscados

 

Canales
Aikido
Brazilian
Defensa Personal
Tai chi chuan
Valetodo
Ipod Iphone
Telefonos
Administracion
Empleo
Emprendedores
Gurues
Mercadeo
Motivacion
Temas Legales
Sony Vegas
Playstation
Trucos
PHP
Dreamweaver
Excel
Flash
Photoshop
PowerPoint
varios
Dietas
Enfermedades
Area de Usuarios
Bases de Datos
Buscadores
Compras
Correo Electronico
Evitando el Spam
Panel CPanel
Panel Plesk
Revendedores
Sobre mi dominio
Solucion de problemas
Subiendo mi sitio
Utilidades
Videos Rhosting

Ultimas 5 personas buscando Amor!

sergioperu (27)
Perú

"busco mayores"
Buscando: Hombre
josesito (24)
Bosnia-Herzegovina

"soy jose"
Buscando: Mujer
uverdai (24)
Costa Rica

"busco mujer que dese ser amada de verdad"
Buscando: Mujer
danisolo (30)
Argentina

"soy alegre y busco alguien que quiera divertise"
Buscando: Mujer
timido24 (24)
España

"hola"
Buscando: Mujer

[+] Ver más

Registrate Gratis y conocé el tuyo!

 

Este contenido es útil para..

Quienes deseen tener nociones sobre el envio de formularios mediante PHP

Recibe nuestras novedades

Si deseas recibir nuestro boletin con informaciones útiles y sorprendentes dejanos tu email aqui



Herramientas Utiles

 


 

 

 

 

Terminos del Servicio - Politica de Privacidad - Ayuda a tus amigos, recomiendanos! - Contactanos
Todos los articulos de la seccion de Ayuda son Copyleft. Podes reproducirlos citando la fuente.
Producto Rhosting.com.ar- 1999 al 2008 - Resistencia - Chaco Las Malvinas son Argentinas