Hola marie_florido:
Buscando encontre este tema y quisiera saber como resolviste porque tengo un problema similar. Tengo un formulario PHP de contacto que solo envia tres campos (Nombre, Email y Fecha). Todos los demas llegan en blanco. Al principio pense que el error era que no mandaba llamar los datos ($_post), pero al hacerl con cada uno de los campos me manda error de página y no funciona. Ya lo compare con un formulario mas pequeño con lamisma estructura y no encuentro la falla. Es mas, al formulario pequeño solo le agregue los campos y tampoco funciona. Dejo aqui los codigos por si alguien se apiada de mi cabeza..gracias de antemano.
**Este es el archivo FORMA.PHP. Que no envia los campos.**
Código PHP:
Ver original<?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
<!-- COMIENZA EL FORMULARIO -->
</p>
</hl>
<form method="post" name="formulario1" action="envio.php"
onsubmit="return Valida(this)">
<!-- CAMBIE ESTE VALOR Y PONGA LA DIRECCION A LA QUE QUIERE QUE LE LLEGUEN LOS EMAILS -->
<input type="hidden" name="direccionenvio"
<!--CAMBIE ESTE VALOR Y EL URL DE LA PÁGINA DE CONFIRMACION-->
<input type="hidden" name="paginaconfirmacion"
value="confirmacion.php" id="Hidden2" />
<!-- COLOQUE AQUI LOS CAMPOS E INFORMACION QUE NECESITE -->
<p align="left"><span class="Estilo1">________________________________</span>Nombre*
<input name="nombre" type="text" id="nombre" size="40" />
</p>
<p align="left"><span class="Estilo1">______________________________</span>Apellido*
<input name="apellido" type="text" size="40" />
</p>
<p align="left"><span class="Estilo1">______________________</span>N&mero de cliente
<input name="numcliente" type="text" id="numcliente" size="40" />
</p>
<p align="left"><span class="Estilo1">____________________</span>Correo Electrónico*
<input type="text" name="email" size="40" /></p>
<p align="left"><span class="Estilo1">______________________</span>Tel. de Contacto*
<input type="text" size="40" />
</p>
<p align="left"><span class="Estilo1">_______________________</span>Tel. Monitoreado
<input type="text" size="40" />
</p>
<p align="left"><span class="Estilo1">_________________________</span>C"digo Postal*
<input type="text" size="40" />
</p>
<p align="left"><span class="Estilo1">_____________________________</span>Direcci"n*
<input type="text" size="40" />
</p>
<p align="left"><span class="Estilo1">_______________________________</span>Colonia*
<input type="text" size="40" />
</p>
<p align="left"><span class="Estilo1">________________________________</span>Ciudad*
<input type="text" size="40" />
</p>
<p align="left"><span class="Estilo1">________________________________</span>Estado*
<select name="select" size="1" id="select">
<option selected="selected">AGUASCALIENTES </option>
<option>BAJA CALIFORNIA NORTE</option>
<option>BAJA CALIFORNIA SUR</option>
</select>
</p>
<p align="left" class="Estilo2">CLASIFICACION DE CONTACTO
</p>
<p align="left" class="Estilo1">_______________________________</span>Producto
<select name="select2">
<option>TODOS</option>
<option>MONITOREO DE ALARMAS</option>
<option>CCTV</option>
</select>
</p>
<p align="left" class="Estilo1">_____________________</span>Motivo de Contacto
<select name="select3">
<option>AGRADECIMIENTOS</option>
<option>QUEJA/RECLAMO</option>
</select>
</p>
<p align="left" class="Estilo2">DETALLE DE SU CONULTA </p>
<p align="left" class="Estilo1">_________________________</span>Detalle
<textarea name="textfield" cols="50" rows="5"></textarea>
</p>
<p><input type="submit" value="Enviar" name="B1"
id="Submit1" />
<input type="reset" value="Restablecer" name="B2"
id="Reset1" /></p>
</form>
</body>
</html>
**Este es el archivo ENVIO.PHP que solo envia los campos Nombre, Email y Fecha**
Código PHP:
Ver original<?php
//************************* ENVIO DE EMAIL **********************************************************
include("mandaemail.inc");
if ( isset($_POST['direccionenvio']) && isset($_POST['paginaconfirmacion']) ) { $mailTo = $_POST['direccionenvio'];
$mailFrom = $_POST['email'];
$mailSubject = "Forma de correo";
$name = $_POST['nombre'];
/** MODIFIQUE AQUI EL CODIGO, INCLUYA UNA LINEA COMO LA DE Nombre: $nombre Y
'** DESPUES \n
'** PARA CADA CAMPO QUE HAYA AGREGADO SIN BORRAR <<<EOT y EOT; E INDIQUE EL
FORMATO DEL CORREO */
$mailFormat = 1; // 0 para correo HTML o 1 para correo de texto
$mailBody = <<<EOT
Fecha: $now\n
Nombre: $name\n
Apellido: $apellido\n
Número de Cliente: $numcliente\n
Email: $mailFrom\n
Tel. de Contacto: $telcontacto\n
Tel. Monitoreado: $telmonitoreado\n
Codigo Postal: $cp\n
Direccion: $direccion\n
Colonia: $colonia\n
Ciudad: $ciudad\n
Estado: $select\n
Producto: $select2\n
Motivo: $select3\n
Descripcion: $textfield\n
Fin del email
EOT;
MandaEmail($mailTo,$mailFrom,$mailSubject,$mailBody,$mailFormat);
//***MANDA A LA PÁGINA DE CONFIRMACION Y LE PASA LO QUE TRAEN LOS CAMPOS nombre y email
Header("Location:". $_POST['paginaconfirmacion'] . "?nombre=" . $_POST['nombre'] . "&email=" . $_POST['email']);
//*** FIN MANDA A LA PÁGINA DE CONFIRMACION Y LE PASA LO QUE TRAEN LOS CAMPOS nombre y email
} else {
$head = '<?xml version="1.0" encoding="UTF-8"?>';
$head .= <<<EOT
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>CONTACTENOS</title>
<style type="text/css">
<!--
body {
font-family:"Lucida Grande","Lucida Console",sans-serif;
}
#content {
font-size:0.8em;
position:absolute;
width:750px;
left:50%;
margin-left:-392px;
margin-top:3em;
padding:15px;
border:2px solid gray;
}
#content h4 {
font-family:"georgia",serif;
font-size:1.5em;
color:brown;
font-variant:small-caps;
margin-top:0;
}
-->
</style>
</head>
<body>
<div id="content">
<h4>Se han generado los siguientes errores</h4>
EOT;
echo $head;
if(!isset($_POST['direccionenvio'])) { echo '<p>No se puede enviar el formulario porque el campo "direccionenvio" está vacío</p>';
}
if(!isset($_POST['paginaconfirmacion'])) { echo '<p>No se puede enviar el formulario porque el campo "paginaconfirmacion" está vacío</p>';
}
$bott =<<<EOT
</div>
</body>
</html>
EOT;
echo $bott;
}
//**********************FIN ENVIO DE EMAIL **********************************************************
?>
Perdon por poner todo el codigo, pero como dije. No encuentro la falla por mas que revise y compare, con este otro que SI funciona y que envia toooodos los campos.
Código PHP:
Ver original<?php
//************************* ENVIO DE EMAIL **********************************************************
include("mandaemail.inc");
if ( isset($_POST['direccionenvio']) && isset($_POST['paginaconfirmacion']) ) { $mailTo = $_POST['direccionenvio'];
$mailFrom = $_POST['email'];
$mailSubject = "Forma de correo";
$name = $_POST['nombre'];
/** MODIFIQUE AQUI EL CODIGO, INCLUYA UNA LINEA COMO LA DE Nombre: $nombre Y
'** DESPUES \n
'** PARA CADA CAMPO QUE HAYA AGREGADO SIN BORRAR <<<EOT y EOT; E INDIQUE EL
FORMATO DEL CORREO */
$mailFormat = 1; // 0 para correo HTML o 1 para correo de texto
$mailBody = <<<EOT
Fecha: $now\n
Nombre: $name\n
Email: $mailFrom\n
Telefono: $textfield\n
coment: $coment\n
Fin del email
EOT;
MandaEmail($mailTo,$mailFrom,$mailSubject,$mailBody,$mailFormat);
//***MANDA A LA PÁGINA DE CONFIRMACION Y LE PASA LO QUE TRAEN LOS CAMPOS nombre y email
Header("Location:". $_POST['paginaconfirmacion'] . "?nombre=" . $_POST['nombre'] . "&email=" . $_POST['email']);
//*** FIN MANDA A LA PÁGINA DE CONFIRMACION Y LE PASA LO QUE TRAEN LOS CAMPOS nombre y email
} else {
$head = '<?xml version="1.0" encoding="UTF-8"?>';
$head .= <<<EOT
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>CONTACTENOS</title>
<style type="text/css">
<!--
body {
font-family:"Lucida Grande","Lucida Console",sans-serif;
}
#content {
font-size:0.8em;
position:absolute;
width:750px;
left:50%;
margin-left:-392px;
margin-top:3em;
padding:15px;
border:2px solid gray;
}
#content h4 {
font-family:"georgia",serif;
font-size:1.5em;
color:brown;
font-variant:small-caps;
margin-top:0;
}
-->
</style>
</head>
<body>
<div id="content">
<h4>Se han generado los siguientes errores</h4>
EOT;
echo $head;
if(!isset($_POST['direccionenvio'])) { echo '<p>No se puede enviar el formulario porque el campo "direccionenvio" está vacío</p>';
}
if(!isset($_POST['paginaconfirmacion'])) { echo '<p>No se puede enviar el formulario porque el campo "paginaconfirmacion" está vacío</p>';
}
$bott =<<<EOT
</div>
</body>
</html>
EOT;
echo $bott;
}
//**********************FIN ENVIO DE EMAIL **********************************************************
?>