No puedo enviar formulario por PHP [Resuelto/Cerrado]

Denunciar
-
 zonng -
Hola,
Tengo problemas para enviar un formulario a través de PHP.
Tengo el archivo enviar.php con el siguiente código:
<?php
$usuario = $_POST['usuario'];
$mail = $_POST['mail'];
$mensaje = $_POST['mensaje'];

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

$descripcion = "Este mensaje fue enviado por " . $usuario . ", \r\n";
$descripcion .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
$descripcion .= "Enviado el " . date('d/m/Y', time());

$para = 'cvasquez@vmasesores.com.co';
$asunto = 'Contacto desde el Sitio de Marco de Trabajo de la VTI';

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

echo 'Mensaje enviado correctamente';

?>



y en HTML en la línea del formulario tengo la siguiente línea qe llama a enviar.php:
<form action="enviar.php" method="post" enctype="text/plain" name="form1" id="form1">

Cuando ejecuto la pagina html , al oprimir el botón Enviar que puse en el formulario me abre el archivo enviar.php y no me envía los datos del formulario.

Cuál puede ser el problema?
Gracias por la colaboración.
Consulta también:

54 respuestas

Gracias tucuta, no he probado el el código que has publicado, pero creo que en este sitio, esta tendría que ser la forma de funcionar y no pidiendo dinero. Gracias de nuevo
> tucuta
aqui esta mi mail, guruclef2005@gmail.com, espero me puedas ayudar, tengo instalado dreamweaver e hice dos archivos como lo especificas, ya le puse el correo y direccion el enviar.php, pero me aparece el siguiente error.

Mensaje de error cuando un usuario visita un sitio Web que está alojado en un servidor que se está ejecutando Internet Information Services 7.0: "HTTP Error 405.0 - método no permitido"

esto tiene que ver con lo que mensionabas de que en servidores prueba no se ejecuta adecuadamente, o es acaso algo que he hecho mal. espero me puedas dar una mano, por que no encuentro que pueda ser.
evasore22
Message postés
1
Date d'inscription
viernes, 27 de noviembre de 2009
Estatus
Miembro
Última intervención
viernes, 27 de noviembre de 2009
> tucuta
Hola, ya verifique todo creo pero aun asó no me envia el formulario al correo, si me podrias ayudar??? por fa, mi correo es evasore22(arroba)hotmail.com
> tucuta
tucuta, me enviarías los archivos??
te agradeceria mucho!!!
mi mail es mariarjaeschke@hotmail.com
> shina
Con mucho gusto maria...
> tucuta
hola TUCUCUTA

serias tan amable de enviarmen los archivos, he estado intentando hace rato hace un formularioa de esta forma y no he podido...

mil gracias didierye@hotmail.com
hola sabes si ahy problemas en hotmail de enviar corros porque no hay maneras hoy de que me funsione gracias
Muchas gracias! Funciona perfecto!
hola tucuta me gustaria me ayudaras a usar el codigo que publicaste necesito que los comentarios de una pagina informativa hecha en html me lleguen a mi correo en dianbeth@gamail.com pues es que no se casi de php y no se si tu codigo me funcione para una pagina exclusivamente informativa ojala me respondas pronto

gracias
Bueno beth, ya te envié los archivos al correo que dejaste, espero te sirva y sigue las instrucciones para que funcione.

Espero te sirva, un saludo y suerte...
Muchas gracias tucuta por tu pronto respuesta
hola
tucuta soy yo otra ves gracias por la respuesta pero al parecer escribi mal mi correo y no me llego tu correo a mi correo es cual dianbeth@gmail.com ojala puedas mandarmelo de nuevo bueno muchas gracias hasta luego.
Muchas gracias, me sirvio bastante el formulario.

Lo unico que me gustaria que en vez de pasar a otra hoja, solo muestre un mensaje...

Saludos
Carito, ponle las siguientes líneas al inicio de tu código:

ini_set('SMTP',"165.190.14.42");
ini_set('smtp_port','25');

... los dígitos "165.190.14.42" son por el servidor por donde saldrá tu correo, en este caso sería el servidor donde tienes alojada tu cuenta.

espero te sirva de algo, a mí me funciona a la perfección, esos números son ficticios, pon los tuyos, los reales a tu código
ESTA INFORMACION LA GRABAS EN EL ARCHIVO formulario.php

<body >

<form name='formulario' id='formulario' method='post' action='enviar.php' target='_self' enctype="multipart/form-data">
<p> </p>
<p align="center" class="style1">FAVOR DE PONER SUS DATOS COMPLETOS PARA RESPONDER ALGUNA PREGUNTA </p>
<p align="center"> </p>
<p> </p>
<table width="762" align="center">
<tr>
<td width="69"><div align="right"><em><strong>Nombre</strong></em></div></td>
<td width="148"><input name='Nombre' type='text' id='Nombre' maxlength="30" /></td>
<td width="85"><div align="right"><strong><em>E-mail</em></strong></div></td>
<td width="186"><input name='email' type='text' id='email' maxlength="40" /></td>
<td width="56"><div align="right"><em><strong>Asunto</strong></em></div></td>
<td width="190"><input name='asunto' type='text' id='asunto' maxlength="20" /></td>
</tr>
</table>
<p> </p>
<table width="761" height="73" align="center">
<tr>
<td width="205"><div align="right"><strong><em>Adjuntar archivo:</em></strong></div></td>
<td width="229"><input type='file' name='archivo1' id='archivo1' /></td>
<td width="54"><div align="right"><strong><em>Mensaje</em></strong></div></td>
<td width="197"><textarea name="mensaje" cols="30" rows="2" id="mensaje"></textarea></td>
<td width="52"><input type='submit' value='Enviar' /></td>
</tr>
</table>
<p> </p>
<p align="center"> </p>
</form>


</body>
LOS CAMPOS DEL FORMULARIO LOS PUEDES CAMBIAR OJO CAMBIA TAMBIEN LOS NOMBRES EN EL ARCHIVO

Y ESTA OTRA EN EL ARCHIVO enviar.php



<body>
<p>
<?php
function form_mail($sPara, $sAsunto, $sTexto, $sDe)
{
$bHayFicheros = 0;
$sCabeceraTexto = "";
$sAdjuntos = "";

if ($sDe)$sCabeceras = "From:".$sDe."\n";
else $sCabeceras = "";
$sCabeceras .= "MIME-version: 1.0\n";
foreach ($_POST as $sNombre => $sValor)
$sTexto = $sTexto."\n".$sNombre." = ".$sValor;

foreach ($_FILES as $vAdjunto)
{
if ($bHayFicheros == 0)
{
$bHayFicheros = 1;
$sCabeceras .= "Content-type: multipart/mixed;";
$sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";

$sCabeceraTexto = "----_Separador-de-mensajes_--\n";
$sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";
$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";

$sTexto = $sCabeceraTexto.$sTexto;
}
if ($vAdjunto["size"] > 0)
{
$sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n";
$sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";;
$sAdjuntos .= "Content-Transfer-Encoding: BASE64\n";
$sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";

$oFichero = fopen($vAdjunto["tmp_name"], 'r');
$sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"]));
$sAdjuntos .= chunk_split(base64_encode($sContenido));
fclose($oFichero);
}
}

if ($bHayFicheros)
$sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n";
return(mail($sPara, $sAsunto, $sTexto, $sCabeceras));
}

//cambiar aqui el email
if (form_mail("AQUI PONES TU MAIL O EL MAIL A DONDE LO QUIERAS ENVIAR", $_POST[asunto],
"Los datos introducidos en el formulario son:\n\n", $_POST[email]))

?>
</p>
<p align="center"><em><strong><span class="Estilo1">GRACIAS POR ENVIAR SUS COMENTARIOS</span></strong></em></p>
<p align="center"><a href="index.html" target="_parent">REGRESAR A LA PAGINA PRINCIPAL</a></p>
</body>
hola, porfa mandame los datos a:
davidpsilis@hotmail.com


gracias...
Message postés
3
Date d'inscription
jueves, 5 de febrero de 2009
Estatus
Miembro
Última intervención
jueves, 5 de febrero de 2009

http://es.ccm.net/forum/affich 97685 msn
entren i ayudenmee , porfavorr :S
Message postés
16
Date d'inscription
lunes, 16 de marzo de 2009
Estatus
Miembro
Última intervención
sábado, 5 de septiembre de 2009
20
deberia de funcionarte, yo elaboro un formulario, los dos son extension php, el primero contiene el formulario de la sig manera:

Bienvenido a esta pagina la hora actual es:<b>
<?PHP
include ("pag2.php");
?>
<br><br>
<form name="formulario" method="post" action="">
<span class="Estilo3">Nombre</span> <input type="text" name="nombre" size="20" maxlength="20">


como puedes ver: en include incluyo la libreria de mis funciones php que validan cada textfield del formulario el action="" para que regrese a la misma pag del formulario. si los datos son incorrectos en la misma pag del formulario imprimo los errores, estas usando XAMPP??
lo que pasa es que a los que tienen ese tipo de error, deben de usar el XAMPP, he instalarlo con apache para que puedan ver sus paginas en su equipo personal, ademas, este es un foro de ayuda, no esta mal cobrar por lo que se sabe, pero yo solo quiero ayudar y sin cobrar, ya que =mente yo podria necesitar ayuda de alguien mas. hise un formulario de lo mas sencillo, pero por falta de tiempo no lo he hecho mejor, instalate el xampp asi no tendras ese tipo de error.
Message postés
1
Date d'inscription
lunes, 6 de julio de 2009
Estatus
Miembro
Última intervención
lunes, 6 de julio de 2009

Tucuta: Mi cuenta MSN es jasamame@hotmail.com
Gracias

JULIO
hola buenas noches
tengo un problema para crear ye enviar un formulario de contacto muy basico
nombre telefono e-mail

pero siempre me sale algun error..
Message postés
16
Date d'inscription
lunes, 16 de marzo de 2009
Estatus
Miembro
Última intervención
sábado, 5 de septiembre de 2009
20
ya cierren este hilo, hombre.
Esperemos que nunca necesites de nadie y cuando le necesites el foro esté cerrado o nadie te responda.

LO QUE DE GRACIAS RECIBE DE GRACIAS SE DA

Nadie nace aprendido.
me puedes mandar el correo de los archivos los necesito urgen mi correo es luismessi1912@hotmail.com
Estimados y estimadas

Yo tenía un problema similar, ya que mi archivo php, me enviaba el correo, pero iba con el cuerpo de texto vacío, sin las variables y las constantes.

Copio a ustedes la ayuda generosa y desinteresada del compa Oscar para resolver este problema, yo no hago más que devolver la mano a aquellos que lo necesiten.

saludos fraternos
Makarenko



Peguen esto en su archivo html:



<form action="/send.php" method="post" id="contacto" onsubmit="MM_validateForm('nombre','','R','cargo','','R','empresa','','R','Fono','','RisNum','email','','RisEmail');return document.MM_returnValue">
<table width="498" border="0">
<tr>
<td width="114"><label>Nombre Completo: </label></td>
<td width="374"><input name="nombre" type="text" id="nombre" size="50" maxlength="50" /></td>
</tr>
<tr>
<td>Empresa:</td>
<td><input name="empresa" type="text" id="empresa" size="50" maxlength="30" /></td>
</tr>
<tr>
<td>Cargo:</td>
<td><input name="cargo" type="text" id="cargo" size="50" maxlength="50" /></td>
</tr>
<tr>
<td>Teléfono:</td>
<td><input name="Fono" type="text" id="Fono" size="50" maxlength="50" /></td>
</tr>
<tr>
<td>Email:</td>
<td><input name="email" type="text" id="email" size="50" maxlength="50" /></td>
</tr>
<tr>
<td valign="top">Comentarios:</td>
<td><textarea name="comentario" cols="50" rows="6" wrap="physical" id="comentario"></textarea></td>
</tr>
</table>
<p>
<label>
<input type="submit" name="Enviar" id="Enviar" value=" Enviar " />
</label>
<input type="reset" name="Limpiar" id="Limpiar" value=" Limpiar " />
</p>
<label></label>
</form>




Luego hagan un archivo php con el siguiente código:

<?php
$nombre = $_POST['nombre'];
$empresa = $_POST['empresa'];
$cargo = $_POST['cargo'];
$Fono = $_POST['Fono'];
$email = $_POST['email'];
$comentario = $_POST['comentario'];

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

$mensaje = "

Esta es la Información de Mi Sitio Web:

El nombre: ".$nombre."

Nombre de la Empresa: ".$empresa."

Cargo: ".$cargo."

Telefono: ".$Fono."

Email: ".$email."

Comentario de ".$nombre.": ".$email."


";


$para = "EMAIL DE DESTINO DEL FOMULARIO";
$asunto = 'Mensaje desde sitio WEB';


mail($para, $asunto, $mensaje, "From: ".$nombre);

?>



Espero les sirva

un abrazo fraterno
M.G.
Message postés
16
Date d'inscription
lunes, 16 de marzo de 2009
Estatus
Miembro
Última intervención
sábado, 5 de septiembre de 2009
20
que sentidos,
PRUEBA E CONSULTADO
1 2 3