Formulario contacto PHP redireccionamiento [Resuelto/Cerrado]

Publicaciones
3
Fecha de inscripción
viernes, 31 de mayo de 2013
Estatus
Miembro
Última intervención
lunes, 3 de junio de 2013
-
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 {
}
Ver más 

6 respuestas

Mejor respuesta
Publicaciones
3
Fecha de inscripción
viernes, 31 de mayo de 2013
Estatus
Miembro
Última intervención
lunes, 3 de junio de 2013
7
7
Gracias
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,.

Deja un "Gracias" 7

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

CCM 34182 usuarios nos han dicho gracias este mes

Publicaciones
263
Fecha de inscripción
viernes, 22 de febrero de 2013
Estatus
Contribuidor
Última intervención
miércoles, 3 de julio de 2013
1178
2
Gracias
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 ;-)
Publicaciones
3
Fecha de inscripción
viernes, 31 de mayo de 2013
Estatus
Miembro
Última intervención
lunes, 3 de junio de 2013
7
0
Gracias
Gracias Pablo, ahora voy saliendo, lo reviso luego y te comento.

Muchas gracias por tu ayuda
Publicaciones
263
Fecha de inscripción
viernes, 22 de febrero de 2013
Estatus
Contribuidor
Última intervención
miércoles, 3 de julio de 2013
1178
0
Gracias
Para eso estamos! ;-)
Publicaciones
2
Fecha de inscripción
miércoles, 27 de noviembre de 2013
Estatus
Miembro
Última intervención
miércoles, 27 de noviembre de 2013
0
Gracias
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
Gracias
muchas gracias !! EXELENTE!!