Formulario contacto PHP redireccionamiento [Resuelto/Cerrado]

Denunciar
Message postés
3
Date d'inscription
viernes, 31 de mayo de 2013
Estatus
Miembro
Última intervención
lunes, 3 de junio de 2013
-
 ariel1515 -
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

Message postés
3
Date d'inscription
viernes, 31 de mayo de 2013
Estatus
Miembro
Última intervención
lunes, 3 de junio de 2013
8
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
Gracias

Unas palabras de agradecimiento nunca están de más. Deja tu comentario

CCM 27368 usuarios nos han dicho gracias este mes

Message postés
263
Date d'inscription
viernes, 22 de febrero de 2013
Estatus
Contribuidor
Última intervención
lunes, 18 de mayo de 2020
1.304
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 ;-)
Message postés
3
Date d'inscription
viernes, 31 de mayo de 2013
Estatus
Miembro
Última intervención
lunes, 3 de junio de 2013
8
Gracias Pablo, ahora voy saliendo, lo reviso luego y te comento.

Muchas gracias por tu ayuda
Message postés
263
Date d'inscription
viernes, 22 de febrero de 2013
Estatus
Contribuidor
Última intervención
lunes, 18 de mayo de 2020
1.304
Para eso estamos! ;-)
Message postés
2
Date d'inscription
miércoles, 27 de noviembre de 2013
Estatus
Miembro
Última intervención
miércoles, 27 de noviembre de 2013

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'}


?>
muchas gracias !! EXELENTE!!