Foros del Web » Programando para Internet » PHP »

Problema de envío de formulario html por php...

Estas en el tema de Problema de envío de formulario html por php... en el foro de PHP en Foros del Web. Hola amigos, quería hacerles una consulta. Diseñé un formulario en Html que llama a un php. El html dice: <form action="enviar.php" method="post" enctype="text/plain" name="contacto" target="_self" ...
  #1 (permalink)  
Antiguo 16/01/2010, 10:33
 
Fecha de Ingreso: enero-2010
Mensajes: 4
Antigüedad: 14 años, 3 meses
Puntos: 0
Problema de envío de formulario html por php...

Hola amigos, quería hacerles una consulta. Diseñé un formulario en Html que llama a un php. El html dice:

<form action="enviar.php" method="post" enctype="text/plain" name="contacto" target="_self" id="contacto">
<p>Si ten&eacute;s alguna duda o sugerencia, y quer&eacute;s compartirla con nosotros, ponete en contacto a trav&eacute;s del siguiente formulario o escribime a [email protected] </p>
<p>Recibir&aacute;s una respuesta a la brevedad... </p>
<table width="220" border="1" align="center" cellspacing="0" id="datos">
<tr>
<td nowrap="nowrap"><span class="FormStyle">Nombre</span></td>
<td><input name="Nombre" type="text" id="Nombre" onblur="MM_validateForm('Nombre','','R');return document.MM_returnValue" size="40" /></td>
</tr>
<tr>
<td nowrap="nowrap"><span class="FormStyle">Edad</span></td>
<td><input name="Edad" type="text" id="Edad" onblur="MM_validateForm('Edad','','RisNum');return document.MM_returnValue" size="2" /></td>
</tr>
<tr>
<td nowrap="nowrap"><span class="FormStyle">Pais</span></td>
<td><input name="Pais" type="text" id="Pais" onblur="MM_validateForm('Pais','','R');return document.MM_returnValue" size="40" /></td>
</tr>
<tr>
<td nowrap="nowrap"><span class="FormStyle">Ciudad</span></td>
<td><input name="Ciudad" type="text" id="Ciudad" onblur="MM_validateForm('Ciudad','','R');return document.MM_returnValue" size="40" /></td>
</tr>
<tr>
<td nowrap="nowrap"><span class="FormStyle">Correo electronico </span></td>
<td><input name="Correo" type="text" id="Correo" onblur="MM_validateForm('Correo','','RisEmail');re turn document.MM_returnValue" size="40" /></td>
</tr>
<tr>
<td nowrap="nowrap"><span class="FormStyle">Tipo de Consulta </span></td>
<td><select name="Lista" size="1" id="Lista">
<option>Permiso de descarga</option>
<option>A&ntilde;adir publicidad al Sitio</option>
<option>Otra</option>
</select>
</td>
</tr>
</table>
<p align="center" class="FormStyle">Mensaje</p>
<p align="center">
<label>
<textarea name="Mensaje" cols="49" rows="10" id="Mensaje" onblur="MM_validateForm('Mensaje','','R');return document.MM_returnValue">Ingresa tu texto...</textarea>
</label>
</p>
<p align="center">
<input name="Submit" type="submit" class="FormStyle" title="Presiona aqu&iacute; para confirmar el env&iacute;o" value="Enviar" />
</p>
</form>

************************************************** **********************************************
El PHP dice:

<!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>Documento sin título</title>
</head>

<body>

<?php

$nombre = $_POST['nombre'];
$edad = $_POST['edad'];
$pais = $_POST['pais'];
$ciudad = $_POST['ciudad'];
$correo = $_POST['correo'];
$lista = $_POST['lista'];
$mensaje = $_POST['mensaje'];

$header .= 'From: ' . $correo . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje .= "Este mensaje fue enviado por " . $nombre . ", de " . $pais . " \r\n";
$mensaje .= "Su e-mail es: " . $correo . " \r\n";
$mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());

$para = '[email protected]';
$asunto = 'Consulta desde la web';

mail($para, $asunto, utf8_decode($mensaje), $header);

echo 'Tu mensaje ha sido enviado satisfactoriamente.';

?>

</body>
</html>

************************************************** ********************************
El problema es que al hacer click en el botón de envío, me confirma el envío del mensaje, pero al revisar mi correo recibo un mail de 'nobody', y el contenido del mail dice:

Este mensaje fue enviado por , de
Su e-mail es:
Mensaje:
Enviado el 16/01/2010

Pero no me proporciona los datos cargados en el formulario web. Cuál podría ser el problema? El PHP lo descargué de la web, y si bien soy nuevo en esto del php, me pareció correcto. Podrían chequear cual es el problema? Desde ya, muchas gracias!!! Un gran abrazo a todos!!!
  #2 (permalink)  
Antiguo 16/01/2010, 10:39
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Problema de envío de formulario html por php...

Todos los nombres tienen la primera letra mayúscula pero tú las llamas con minúsculas:

Código HTML:
Ver original
  1. <textarea name="Mensaje" cols="49" rows="10" id="Mensaje" onblur="MM_validateForm('Mensaje','','R');return document.MM_returnValue">Ingresa tu texto...</textarea>

Código PHP:
Ver original
  1. $mensaje = $_POST['mensaje'];
Bien sería
Código PHP:
Ver original
  1. $mensaje = $_POST['Mensaje'];
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #3 (permalink)  
Antiguo 16/01/2010, 10:42
Avatar de jenusys  
Fecha de Ingreso: diciembre-2008
Ubicación: Ahí mismo.
Mensajes: 216
Antigüedad: 15 años, 3 meses
Puntos: 11
Respuesta: Problema de envío de formulario html por php...

Puedes empezar haciendo un "rastreo de variables" con el comando ECHO.

P. Ej.:

echo $nombre;

Así podrías ver si realmente estás recibiendo las variables desde el formulario. Si es así puede ser que tu servidor no está bien configurado para los correos.
  #4 (permalink)  
Antiguo 16/01/2010, 10:58
(Desactivado)
 
Fecha de Ingreso: enero-2010
Mensajes: 23
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problema de envío de formulario html por php...

Si te fijas bien el valor name de tus input los tienes todos con MAYUSCULA y en php los colocarte con minuscula

<input name="Nombre" type="text" size="15" value="Ingrese nombre">



php

1)
$_nombre = $_GET['nombre']; NOO

2)
$_nombre = $_GET['Nombre']; Yes


Mas o menos
  #5 (permalink)  
Antiguo 16/01/2010, 11:04
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Problema de envío de formulario html por php...

eso ya está dicho :P
Falta que el usuario responda. Que se olvidó ya.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #6 (permalink)  
Antiguo 17/01/2010, 13:26
 
Fecha de Ingreso: enero-2010
Mensajes: 4
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problema de envío de formulario html por php...

Hola amigos, muchas gracias a todos por sus contribuciones, pero el php sigue sin funcionar.
Las mayusculas y las minusculas ya las he corregido tanto en el php como en el html. Probé la función echo y las variables están vacías.
Probé dándole a cada variable un valor desde el código fuente y ha funcionado. Es evidente que algo sucede en la asignación de variables desde el formulario. Muchas gracias a todos!
  #7 (permalink)  
Antiguo 17/01/2010, 17:40
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años
Puntos: 7
Respuesta: Problema de envío de formulario html por php...

en tus nombres de input text y text area, estas colocandole con mayusculas, miestras cuando envias con post con la primera letra con minusculas.

he visto qye tu formulario le colocaste enctype="text/plain". en mi opinion cuando quiero enviar variables con post (ya sea utilizando un formulario), no lo veo en la necesidad de colocarle enctype="text/plain". alli le estas diciendo que estas enviando los parámetros y recibirá en forma de texto.

borra eso de enctype="text/plain".

saludos.

Etiquetas: html, formulario
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 00:25.