Foros del Web » Programando para Internet » PHP »

Problema con envío de formulario

Estas en el tema de Problema con envío de formulario en el foro de PHP en Foros del Web. Buenas noches Ante todo, quisiera pedir disculpas por la pregunta que voy a realizar ya que soy consciente de que en el foro ha habido ...
  #1 (permalink)  
Antiguo 12/08/2012, 14:07
 
Fecha de Ingreso: agosto-2012
Mensajes: 2
Antigüedad: 11 años, 8 meses
Puntos: 0
Pregunta Problema con envío de formulario

Buenas noches

Ante todo, quisiera pedir disculpas por la pregunta que voy a realizar ya que soy consciente de que en el foro ha habido problemas muy semejantes al mío. Sin embargo, son semejantes, pero no el mismo, por lo que no consigo resolverlo con la ayuda que habéis dispuesto en otras ocasiones y por esa razón me he decidido a registrarme y escribiros para plantear la cuestión.

El problema es sencillo: quiero enviar por medio de un .php los datos recolectados en un formulario web a un correo electrónico dado. El .php realiza el envío correctamente pero en el correo solamente aparecen los nombres de las variables definidas, es decir, sin los datos que el usuario completa en el formulario.

Os adjunto el .php en cuestión para ver si podéis resolverlo a partir de ahí. Intuyo que la solución es sencilla pero no la vislumbro.

Muchas gracias de antemano.

Un saludo.

Código PHP:
<?php


/* Email Variables */
$emailSubject 'Formulario de contacto'/*Choose your  own Email Subject */
$webMaster '[email protected]';/* change this to match your email address*/



/* Data Variables */
$correo $_POST['Correo electrónico'];
$telefono $_POST['Teléfono'];
$nombre $_POST['Nombre'];
$apellidos $_POST['Apellidos'];
$mensaje $_POST['Mensaje'];
$cliente $_POST['Cliente'];
$servicio $_POST['Servicio'];



$body = <<<EOD
<br><hr><br>
Nombre: $nombre <br>
Apellidos: $apellidos <br>
Correo electrónico: $correo <br>
Teléfono: $telefono <br>
Cliente: $cliente <br>
Servicio: $servicio <br>
Mensaje: $mensaje <br>

EOD;
$headers "From: $correo\r\n";
$headers .= "Content-type: text/html\r\n";
$success mail($webMaster$emailSubject$body,
$headers);


/* Results rendered as HTML */
$theResults = <<<EOD
<html>
<head>
<title> ¡Mensaje enviado!</title>
<meta http-equiv="refresh" content="3;URL=http://adonderegresar.com">
<style type="text/css">
<!--
body {
background-color: #444; /* You can edit this CSS to match your website*/
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 20px;
font-style: normal;
line-height: normal;
font-weight: normal;
color: #fec001;
text-decoration: none;
padding-top: 200px;
margin-left: 150px;
width: 800px;
}
-->
</style>
</head>
<div align="center"> Su mensaje se ha enviado correctamente. Está siendo redirigido a la página inicial...</div>
</body>
</html>
EOD;
echo 
"$theResults";
?>

Última edición por Peisithanatos; 12/08/2012 a las 14:15
  #2 (permalink)  
Antiguo 12/08/2012, 15:35
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema con envío de formulario

Y dónde está el código de tu formulario?, es posible que el error sea por el nombre de los campos, pero no podemos saberlo sin verlo.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 12/08/2012, 18:26
 
Fecha de Ingreso: agosto-2012
Mensajes: 2
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema con envío de formulario

Tienes razón. Fallo técnico. Ahí va:

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Formulario de contacto</title>
<script type="text/javascript">
function MM_validateForm() { //v4.0
  if (document.getElementById){
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
      if (val) { nm=val.name; if ((val=val.value)!="") {
        if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
          if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
        } else if (test!='R') { num = parseFloat(val);
          if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
          if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
            min=test.substring(8,p); max=test.substring(p+1);
            if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
      } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
    } if (errors) alert('The following error(s) occurred:\n'+errors);
    document.MM_returnValue = (errors == '');
} }
</script>
</head>

<body>
<form action="php.php" method="post" name="form1" id="form1" onsubmit="MM_validateForm('nombre','','R','correo','','RisEmail','telefono','','NisNum','mensaje','','R');return document.MM_returnValue">
  <table width="500" border="0" cellspacing="5">
    <caption>
      Formulario de contacto
    </caption>
    <tr>
      <td align="right"><label for="nombre">Nombre*:</label></td>
      <td align="left"><input type="text" name="nombre" id="nombre" /></td>
    </tr>
    <tr>
      <td align="right"><label for="apellidos">Apellidos:</label></td>
      <td align="left"><input type="text" name="apellidos" id="apellidos" /></td>
    </tr>
    <tr>
      <td align="right"><label for="correo">Correo electrónico*:</label></td>
      <td align="left"><input type="text" name="correo" id="correo" /></td>
    </tr>
    <tr>
      <td align="right"><label for="telefono">Teléfono:</label></td>
      <td align="left"><input name="telefono" type="text" id="telefono" maxlength="9" /></td>
    </tr>
    <tr>
      <td align="right"><label for="cliente">Cliente:</label></td>
      <td align="left"><input name="radio" type="radio" id="cliente" value="particular" checked="checked" />
        Particular 
        <input type="radio" name="radio" id="radio" value="ed" />
        Ed 
        <input type="radio" name="radio2" id="radio2" value="empresa" /> 
        Empresa</td>
    </tr>
    <tr>
      <td align="right"><label for="servicio">Tipo de servicio*:</label></td>
      <td align="left"><select name="servicio" id="servicio">
        <option value="i" selected="selected">I</option>
        <option value="r">R</option>
        <option value="o">O</option>
        <option value="e">C</option>
        <option value="a">A</option>
        <option value="otro">Otro</option>
      </select></td>
    </tr>
    <tr>
      <td align="right"><label for="mensaje">Mensaje*:</label></td>
      <td align="left"><textarea name="mensaje" id="mensaje" cols="45" rows="5"></textarea></td>
    </tr>
    <tr>
      <td align="right"><input type="reset" name="restablecer" id="restablecer" value="Restablecer" /></td>
      <td align="left"><input type="submit" name="enviar" id="enviar" value="Enviar" /></td>
    </tr>
  </table>
</form>
<a href="http://www.000webhost.com/" target="_blank">http://www.000webhost.com/</a>
</body>
</html> 
Un saludo!
  #4 (permalink)  
Antiguo 12/08/2012, 18:38
 
Fecha de Ingreso: agosto-2012
Ubicación: Santiago
Mensajes: 124
Antigüedad: 11 años, 8 meses
Puntos: 60
Respuesta: Problema con envío de formulario

Fijate en los name de los input en donde recibes los nombres.

Cuando lo recibas, tienen que ser iguales.

Si el nombre es tu input es "correo", no lo puedes recibir como "correo electrónico".
Lo mismo con el mensaje, si tiene nombre "mensaje", no lo puedes recibir como "Mensaje"
__________________
~~Aprendiendo.
Become a Programmer, Moth*rf*cker

Etiquetas: formulario, html, variables, usuarios
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 12:19.