Formulario contacto PHP redireccionamiento

Resuelto/Cerrado
fmunita Mensajes enviados 3 Fecha de inscripción viernes, 31 de mayo de 2013 Estatus Miembro Última intervención lunes, 3 de junio de 2013 - Modificado por ibero.modo el 5/06/2013, 21:16
 ariel1515 - 14 dic 2014 a las 19:24
Amigos por favor, necesito su ayuda, tengo un problema hace un par de dias que no logro resolver. Tengo un formulario php de contacto, que cuando se envia me indica un mensaje que ya defini, lo que necesito, es que luego de enviar el formulario, me indique que fue enviado y me redireccione a la pagina de inicio de mi web y NO PUEDOOOO, !!! por favor AYUDENMEEEEEEE

pego las lineas para ver si me pueden guiar por favor

<title>Contacto | GHELS</title>

<?php

if(!$_POST) exit;

// Email address verification, do not edit.
function isEmail($email) {
return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i",$email));
}

if (!defined("PHP_EOL")) define("PHP_EOL", "\r\n");

$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$subject = $_POST['subject'];
$comments = $_POST['comments'];
$verify = $_POST['verify'];

if(trim($name) == '') {
echo '<div class="error_message">Por favor, ingrese su nombre.</div>';
exit();
} else if(trim($email) == '') {
echo '<div class="error_message">Por favor, ingrese un correo valido.</div>';
exit();
} else if(trim($phone) == '') {
echo '<div class="error_message">Por favor ingrese un numero valido .</div>';
exit();
} else if(!is_numeric($phone)) {
echo '<div class="error_message">Los numeros telefonicos solo pueden contener numeros.</div>';
exit();
} else if(!isEmail($email)) {
echo '<div class="error_message">Ha ingresado un correo electronico invalido, por favor, intentelo denuevo.</div>';
exit();
}

if(trim($subject) == '') {
echo '<div class="error_message">Por favor, seleccione un asunto.</div>';
exit();
} else if(trim($comments) == '') {
echo '<div class="error_message">Ingrese su mensaje.</div>';
exit();

}

if(get_magic_quotes_gpc()) {
$comments = stripslashes($comments);
}


// Configuration option.
// Enter the email address that you want to emails to be sent to.
// Example $address = "joe.doe@yourdomain.com";

//$address = "example@themeforest.net";
$address = "contacto@ghels.cl";


// Configuration option.
// i.e. The standard subject will appear as, "You've been contacted by John Doe."

// Example, $e_subject = '$name . ' has contacted you via Your Website.';

$e_subject = 'Nuevo mensaje web desde ghels.cl ' . $name . '.';


// Configuration option.
// You can change this if you feel that you need to.
// Developers, you may wish to add more fields to the form, in which case you must be sure to add them here.

$e_body = "You have been contacted by $name with regards to $subject, their additional message is as follows." . PHP_EOL . PHP_EOL;
$e_content = "\"$comments\"" . PHP_EOL . PHP_EOL;
$e_reply = "You can contact $name via email, $email or via phone $phone";

$msg = wordwrap( $e_body . $e_content . $e_reply, 70 );

$headers = "From: $email" . PHP_EOL;
$headers .= "Reply-To: $email" . PHP_EOL;
$headers .= "MIME-Version: 1.0" . PHP_EOL;
$headers .= "Content-type: text/plain; charset=utf-8" . PHP_EOL;
$headers .= "Content-Transfer-Encoding: quoted-printable" . PHP_EOL;

if(mail($address, $e_subject, $msg, $headers)) {

// Email has sent successfully, echo a success page.

echo "<fieldset>";
echo "<div id='success_page'>";
echo "<h1>Mensaje enviado correctamente.</h1>";
echo "<p>Muchas gracias,<strong>$name</strong>, su mensaje ha sido enviado, pronto tendra noticias nuestras. http://ghels.cl/ </p>";
echo "</div>";
echo "</fieldset>";



} else {
}

6 respuestas

fmunita Mensajes enviados 3 Fecha de inscripción viernes, 31 de mayo de 2013 Estatus Miembro Última intervención lunes, 3 de junio de 2013 8
3 jun 2013 a las 02:22
Pablo, lo resolvi. Tenias razon. Muchas gracias por tu ayuda.

Al final, quedo asi:


$e_body = "You have been contacted by $name with regards to $subject, their additional message is as follows." . PHP_EOL . PHP_EOL;
$e_content = "\"$comments\"" . PHP_EOL . PHP_EOL;
$e_reply = "You can contact $name via email, $email or via phone $phone";

$msg = wordwrap( $e_body . $e_content . $e_reply, 70 );

$headers = "From: $email" . PHP_EOL;
$headers .= "Reply-To: $email" . PHP_EOL;
$headers .= "MIME-Version: 1.0" . PHP_EOL;
$headers .= "Content-type: text/plain; charset=utf-8" . PHP_EOL;
$headers .= "Content-Transfer-Encoding: quoted-printable" . PHP_EOL;

if(mail($address, $e_subject, $msg, $headers)) {

// Email has sent successfully, echo a success page.

header('Location: http://www.ghels.cl/contactoenviado.html');




} else {
}



Nuevamente, muchas gracias por tu valiosa ayuda,.
8
pablojorgesanguinetti1 Mensajes enviados 265 Fecha de inscripción viernes, 22 de febrero de 2013 Estatus Contribuidor Última intervención sábado, 28 de noviembre de 2020 1.446
31 may 2013 a las 23:15
Hola, proba sacar del inicio del script la línea:

<title>Contacto | GHELS</title>

y asegurate que comience con:

<?php

y al final del script agregá:

header('Location: http://www.example.com/?mailsent');

inmediatamente después de:

// Email has sent successfully, echo a success page.

y el mensaje de email enviado mostralo al inicio de tu index.php si la variable "mailsent" esta establecida usando por ejemplo, TinyBox 2

Queda super profesional ;-)
3
fmunita Mensajes enviados 3 Fecha de inscripción viernes, 31 de mayo de 2013 Estatus Miembro Última intervención lunes, 3 de junio de 2013 8
31 may 2013 a las 23:17
Gracias Pablo, ahora voy saliendo, lo reviso luego y te comento.

Muchas gracias por tu ayuda
0
pablojorgesanguinetti1 Mensajes enviados 265 Fecha de inscripción viernes, 22 de febrero de 2013 Estatus Contribuidor Última intervención sábado, 28 de noviembre de 2020 1.446
11 jun 2013 a las 20:55
Para eso estamos! ;-)
0

¿No encontraste la respuesta que buscabas?

Haz una pregunta
liber7y Mensajes enviados 2 Fecha de inscripción miércoles, 27 de noviembre de 2013 Estatus Miembro Última intervención miércoles, 27 de noviembre de 2013
27 nov 2013 a las 11:27
hola! he encontrado este hilo por google buscando una solución a mi problema que es algo parecido.. no sé si pueden ayudarme por favor..

necesito hacer un formulario que al escribir una palabra y darle a enviar te lleve a la página que coincida con la palabra que has escrito, voy a intentar hacer un boceto de las funciones:


<?php


if (el texto del formulario = "texto_1")

header('Location: http://www.example.com/texto_1.html');


else if (el texto del formulario = "texto_2")

header('Location: http://www.example.com/texto_2.html');


else {echo 'el texto no es correcto'}


?>
0
muchas gracias !! EXELENTE!!
0