Foros del Web » Programando para Internet » PHP »

Formulario HTML con PHP

Estas en el tema de Formulario HTML con PHP en el foro de PHP en Foros del Web. Buenos días a todos, Estoy usando un formulario html donde el method post es a un php, que incluye esto: Código PHP: <?php $sfrom = ...
  #1 (permalink)  
Antiguo 31/07/2009, 00:51
 
Fecha de Ingreso: agosto-2006
Mensajes: 19
Antigüedad: 17 años, 8 meses
Puntos: 0
Pregunta Formulario HTML con PHP

Buenos días a todos,

Estoy usando un formulario html donde el method post es a un php, que incluye esto:
Código PHP:
<?php
$sfrom
=""//cuenta que envia
$sdestinatario=""//cuenta destino
$ssubject=""//subject
$shtml="tu html"//mensaje
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n";
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";
$sheader=$sheader."Mime-Version: 1.0\n";
$sheader=$sheader."Content-Type: text/html";
mail($sdestinatario,$ssubject,$shtml,$sheader);
?>
Bien, funciona perfectamente incluso cuando en $shtml introduzco valores de negrita como <strong> por ejemplo.

El problema llega cuando quiero incluir un html un poco más avanzado (vamos, unas tablas o colores, tampoco es...) ya no llega el mail.

Tengo que sustituir $shtml="texto" por $shtml='texto', y así me llega el html entero, con sus colores, tablas y todo, pero las variables del formulario no llegan bien, llegan no interpretadas ($nombre, $apellidos, etc...) y las he seteado antes en el script ($nombre = $_POST['nombre'];)

Alguna idea?

Gracias
  #2 (permalink)  
Antiguo 31/07/2009, 01:22
 
Fecha de Ingreso: julio-2009
Mensajes: 22
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Formulario HTML con PHP

tefijaste si las concatenas también con las comillas ' ' ???
podrías pegar el código .. para ver como incluyes esas variables en el html
  #3 (permalink)  
Antiguo 31/07/2009, 03:03
 
Fecha de Ingreso: agosto-2006
Mensajes: 19
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Formulario HTML con PHP

Hola,

Gracias por la respuesta. Adjunto código:

Código PHP:
<?php
$dia
=date("d.m.Y");
$hora=date("H:i:s"); 

$material1 $_POST["material1"];
$material2 $_POST["material2"];
$material3 $_POST["material3"];
$material4 $_POST["material4"];
$thank="gracias.html";
$sfrom="[email protected]"//cuenta que envia
$sdestinatario="[email protected]"//cuenta destino
$ssubject="subject"//subject
$shtml"
<p>$material1 X $material2</p>
<p>$material3 X $material4</p>
<p>$material5 X $material6</p>
<p>$material7 X $material8</p>
<p>$material9 X $material10</p>
<p>$material11 X $material12<br>
</p>
"
//mensaje
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n";
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";
$sheader=$sheader."Mime-Version: 1.0\n";
$sheader=$sheader."Content-Type: text/html";
mail($sdestinatario,$ssubject,$shtml,$sheader);
Header ("Location: $thank");
?>
Así es como lo tengo, y así funciona perfectamente, pero cuando quiero por ejemplo poner esos materiales en una tabla con <table>, ya no envía el correo. Es más, si uso $shtml='$material1' con las comillas simples, me llega al correo la variable sin transformar, es decir $material1.

Gracias por tu tiempo.
  #4 (permalink)  
Antiguo 31/07/2009, 03:54
Avatar de mariogl84  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 433
Antigüedad: 21 años, 5 meses
Puntos: 20
Respuesta: Formulario HTML con PHP

Si usas comillas simples, te enviará el texto tal cual, las variables sólo las parsea si usas comillas dobles. El problema que tienes no es por usar html más complejo, sino probablemente porque al meter tablas usarás comillas en algún sitio, para añadirle parámetros a alguna etiqueta.

Usa comillas dobles, y cuando en el html haya alguna comilla, escápala con una barra \ , así:

Código PHP:
$shtml"
<table>
  <tr>
    <td class=\"nombre_clase\">xxx</td>
  </tr>
</table>
"

Otra opción es usar comillas dobles, y cuando dentro del html haya alguna comilla, usar las simples:

Código PHP:
$shtml"
<table>
  <tr>
    <td class='nombre_clase'>xxx</td>
  </tr>
</table>
"

Suerte.
  #5 (permalink)  
Antiguo 31/07/2009, 14:36
 
Fecha de Ingreso: agosto-2006
Mensajes: 19
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Formulario HTML con PHP

Magnifico, funciona!

Muchas gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:45.