Foros del Web » Programando para Internet » PHP »

Script de php no realiza su función correctamente. 'Enviar formulario a un correo'.

Estas en el tema de Script de php no realiza su función correctamente. 'Enviar formulario a un correo'. en el foro de PHP en Foros del Web. Este Script de PHP no está enviando los datos de un formulario en HTML a el correo electrónico que he definido. ¿Alguna idea?: <?php if(isset($_POST['SendEmail'])) ...
  #1 (permalink)  
Antiguo 04/07/2014, 06:13
Avatar de AngelMarine  
Fecha de Ingreso: enero-2014
Ubicación: Madrid
Mensajes: 79
Antigüedad: 10 años, 3 meses
Puntos: 0
Pregunta Script de php no realiza su función correctamente. 'Enviar formulario a un correo'.

Este Script de PHP no está enviando los datos de un formulario en HTML a el correo electrónico que he definido. ¿Alguna idea?:

<?php
if(isset($_POST['SendEmail'])) {

$email_to = "[email protected]";
$email_subject = "Contacto con Misión Gnóstica";

function died($error) {

echo "We are very sorry, but there were error(s) found with the form you submitted. ";
echo "These errors appear below.<br /><br />";
echo $error."<br /><br />";
echo "Please go back and fix these errors.<br /><br />";
die();

}

if(!isset($_POST['SendName']) ||
!isset($_POST['SendLastname']) ||
!isset($_POST['SendEmail']) ||
!isset($_POST['SendSex']) ||
!isset($_POST['SendMessage'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');

}

$first_name = $_POST['SendName'];
$last_name = $_POST['SendLastname'];
$email_from = $_POST['SendEmail'];
$sex = $_POST['SendSex'];
$message = $_POST['SendMessage'];
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';

if(!preg_match($email_exp,$email_from)) {

$error_message .= 'The Email Address you entered does not appear to be valid.<br />';

}

$string_exp = "/^[A-Za-z .'-]+$/";

if(!preg_match($string_exp,$first_name)) {
$error_message .= 'The First Name you entered does not appear to be valid.<br />';

}

if(!preg_match($string_exp,$last_name)) {
$error_message .= 'The Last Name you entered does not appear to be valid.<br />';

}

if(strlen($message) < 2) {
$error_message .= 'The Comments you entered do not appear to be valid.<br />';

}

if(strlen($error_message) > 0) {
died($error_message);

}

$email_message = "Detalles del Remitente.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);

}

$email_message .= "Nombre: " . $_POST['SendName'] . "\n";
$email_message .= "Apellido: " . $_POST['SendLastname'] . "\n";
$email_message .= "Email: " . $_POST['SendEmail'] . "\n";
$email_message .= "Género: " . $_POST['SendSex'] . "\n";
$email_message .= "Mensaje: " . $_POST['SendMessage'] . "\n\n";


$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);

?>
  #2 (permalink)  
Antiguo 04/07/2014, 06:30
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Script de php no realiza su función correctamente. 'Enviar formulario a un

Quitale la @ a mail() para ver que error te arroja.

Leete la documentacion de mail()

Recuerda que para que mail funcione debes configurar php.ini

Igualmente ten encuenta que algunos servidores de correo no permiten el uso de SMTP, creo que microsoft es uno de ellos.

Te recomiendo que busques sobre PHPmailer
  #3 (permalink)  
Antiguo 04/07/2014, 12:12
Avatar de AngelMarine  
Fecha de Ingreso: enero-2014
Ubicación: Madrid
Mensajes: 79
Antigüedad: 10 años, 3 meses
Puntos: 0
Exclamación Respuesta: Script de php no realiza su función correctamente. 'Enviar formulario a un

Bueno, ya funciona lo simplifique a esto:

Pero ahora tengo un nuevo problema, ¿Cómo incluyo ahora las variables nombre, apellido, género en el mensaje?

<?php
$remitente = $_POST['SendEmail'];
$nombre = $_POST['SendName'];
$apellido = $_POST['SendLastname'];
$genero = $_POST['SendSex'];

$destino = "[email protected]";
$asunto = "Contactar con Misioneros";
$mensaje = $_POST['SendMessage'];
$encabezados = "From: $remitente\nReply-To: $remitente\nContent-Type: text/html; charset=iso-8859-1";
mail($destino, $asunto, $mensaje, $encabezados) or die ("No se ha podido enviar tu mensaje. Ha ocurrido un error");
echo "<p>Tu mensaje a sido enviado con este contenido:</p>";
echo "<strong><b>$mensaje</b></strong>";
?>
  #4 (permalink)  
Antiguo 04/07/2014, 12:16
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 3 meses
Puntos: 61
Respuesta: Script de php no realiza su función correctamente. 'Enviar formulario a un

Concatena los valores al mensaje http://www.php.net/manual/es/languag...ors.string.php

Saludos

Etiquetas: html, html5, php+
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 06:15.