No puedo con un Formulario PHP Ayuda!! :(

690 visitas 1 respuestas

Hola, de antemano muchas gracias! Llevo 2 días tratando de resolver esto y nada, así que acudo a ustedes en busca de ayuda. No se que mas hacer jajaja

Ojo, no tengo casi idea alguna de php, solo lo poco que he leido, hasta ahora empiezo con esto u.u

El tema es el siguiente: Tengo un formulario (que conseguí en Internet xD) el cual me ENVIABA los datos al correo, ahora ya ni eso, (creo que ni siquiera le tengo base de datos porque no recuerdo haberla creado) pero no puedo hacer que muestre la pagina de gracias. El formulario esta en: http://viewtower.com.do/contacto.html y la pagina de gracias es: http://viewtower.com.do/gracias.php.

El codigo php del formulario (enviar.php)

{

<?php
mb_internal_encoding('UTF-8');
$mail = 'jonas@digitalcompass.consulting';
$mail_nombre = $nombre;
$mail_mime = mb_encode_mimeheader($mail_nombre) . " <$mail>";
$email = $_POST['E-mail'];
$email_texto = htmlspecialchars($email);
if (filter_var($email, FILTER_VALIDATE_EMAIL) === true) {
    $email = "mailto:ifpinchemailto@gmail.com";
} else {
    $email = 'mailto:elsepinchemailto@gmail.com';
}
$nombre = htmlspecialchars($_POST['Nombre']);
$telefono = htmlspecialchars($_POST['Teléfono']);
$mensaje = htmlspecialchars($_POST['Mensaje']);
$thank = 'gracias.html';
$message = "<h2>Envío de datos de formulario</h2>
<p>Nombre: $nombre</p>
<p>E-mail: <a href=\"$email\">$email_texto</a></p>
<p>Teléfono: $telefono</p>
<p>Mensaje:</p><blockquote>$mensaje</blockquote>";
$cabeceras = "Return-Path: $mail\nFrom: $mail_mime\nMIME-Version: 1.0\nContent-    type: text/html; charset=utf-8\n";
$asunto = mb_encode_mimeheader('¡Contacto a traves de pagina web!');
if (mail($mail, $asunto, $message, $cabeceras, "-f$mail")) {
var_dump($_POST);
die('FIN');
header("location: $thank");
die();
}
echo 'Correo Enviado';
?>

}

Después de llenar el formulario me sale lo siguiente: {

array(5) { ["Nombre"]=> string(11) "pedro perez" ["E-mail"]=> string(21) "pedroperez@mimail.com" ["Teléfono"]=> string(8) "51241234" ["Mensaje"]=> string(17) "Mensaaaaaaaaje xd" ["Enviar"]=> string(6) "Enviar" } FIN

}

Honestamente no se que campos modificar, estoy practimanete en 0 con PHP.

Muchas gracias, saludos.

por

Registrado desde: 19 Nov 15

Respuestas

0 0

EL problema viene aqui

if (mail($mail, $asunto, $message, $cabeceras, "-f$mail")) {
var_dump($_POST);
die('FIN');
header("location: $thank");
die();

Si te fijas, tienes un IF(....) con la funcion de enviar email, la cual deuvelve true si el email es enviado correctamente, si te dijas nada mas entrar en el IF, tienes un var_dump (por eso te aparecen los datos imprimidos en pantalla) y un DIE('FIN') ... no hay que ser un guru de PHP para saber que un DIE mata la ejecucion del script, por lo cual nunca va a llegar a la orden de header que es la que hace redireccionar el navegador hacia $thank.

Elimina / Comenta las dos lineas de var_dump y DIE('FIN'), manteniendo header y el ultimo die, asi ...

if (mail($mail, $asunto, $message, $cabeceras, "-f$mail")) {
//var_dump($_POST);
//die('FIN');
header("location: $thank");
die();
}

salu2

por desde España

Registrado desde: 20 Apr 03