Consulta sobre mensajes en PHP

Buenas! Les explico mi inconveniente, tengo un formulario de contacto hecho en php, al cual lo levanto dentro de un DIV con jquery, el formulario funciona a la perfección, el único inconveniente es que cuando necesita enviarme un mensaje ya sea porque el mensaje se envío correctamente o porque escribí mal algo, me lo envía en una página a parte con el formulario debajo lo cual queda horrible al diseño ya que como les mencione esta dentro de un DIV
Pueden ver el ejemplo en www.cabezabocha.host56.com  allí vallan a contacto y hagan algo para que el formulario les genere un mensaje por ejemplo pongan enviar sin rellenar los datos el formulario me avisa de ello peor en otra hoja
Lo que yo quisiera es saber como generar un mensaje pero sin que se valla de allí o bien un alert de window o algo así pero que no se mueva de esa pantalla
Les adjunto el contacto.php
Gracias
<?php         
@putenv("TZ=Europe/Paris");
$mail_destino='(xxxxxx)';
$titulo="Mensaje desde el formulario de contacto";
$msg="";
$email_form="";
$nombre_form="";
$mensaje_form="";
if(isset($_POST['nombre'])){
$email_form=$_POST['email'];
$nombre_form=$_POST['nombre'];
$mensaje_form=$_POST['mensaje'];
/*Aqui verificamos si nos estan haciendo spam */
function verificar_spam($verificar) {
 $msg="";
  $palabras_prohibidas = array(
                "content-type:"
                ,"mime-version:"
                ,"multipart/mixed"
              ,"Content-Transfer-Encoding:"
                ,"bcc:"
              ,"cc:"
              ,"to:"   );
  foreach($palabras_prohibidas as $palabra) {
    if(eregi($palabra, strtolower($verificar))) {
      $msg.= "Se encontro una palabra prohibida <b><u>$palabra</u></b> en el nombre o Email<br />";
    }
  }
   if(preg_match("/(%0A|%0D|\\n+|\\r+)/i", $verificar) != 0) {
     $msg.= "El nombre o Email no pude contener saltos de linea <br />";
   }
  return $msg;
}
$msg.=verificar_spam($email_form);
$msg.=verificar_spam($nombre_form);
/*Aqui termina la la verificacion de spam */
/*Aqui verificamos los campos del formulario */
if($email_form != "")
{
 $email_form=trim($email_form);
  if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$", $email_form))
  $msg.="Tu E-mail es invalido <br />";
}else
 $msg.="Tu e-mail es obligatorio <br />";
if($nombre_form != ""){
 $nombre_form=trim($nombre_form);
 if(!preg_match("/^[\w\s_]+$/",$nombre_form))
 $msg.="El nombre no es valido <br />";
}else
$msg.="Tu nombre es obligatorio <br />";
if($mensaje_form == "") $msg.="El mensaje es obligatorio <br />";
if($msg == ""){
 $headers  = "MIME-Version: 1.0\r\n";
 $headers .= "From: ".$email_form."\n";
 $headers .= "To: ".$mail_destino."\n";
 $headers .= "Reply-To: ".$email_form."\n";
 $headers .= "Return-Path: ".$email_form."\n";
 $headers .= "X-Priority: 1\n";
 $headers .= "X-Mailer:PHP ".phpversion()."\n";
 $headers .= "Content-Type: text/plain; charset=iso-8859-1";
 $contenido="Te han enviado un mensaje ".$nombre_form." desde el formulario de contacto de tu web \r\n";
 $contenido.="Nombre: ".$nombre_form."\r\n";
 $contenido.="Email: ".$email_form."\r\n";
 $contenido.="Mensaje: ".$mensaje_form."\r\n";
 if(mail($mail_destino, $titulo, $contenido, $headers))
 {
 header("location:".$_SERVER['PHP_SELF']."?ok=ok");
 }
 else
 $msg.="Ocurrio un error al enviar el mensaje";
}
}
// ESTOS SON LOS MENSAJES DE LOS PROBLEMAS
if(isset($_GET['ok'])) $msg.="Mensaje enviado correctamente";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Formulario Contacto </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />
<style type="text/css">
.texto{color:#42606C;font-weight:bold;font-family: Geneva, Arial, Helvetica, sans-serif;}
body td,form {font-family:verdana;font-size:12px;color:#535353;}
form input,textarea{margin-bottom:5px;font-size:12px;background-color:#F0F0F0;border:1px solid #C0C0C0;}
.boton {color:#FFFFFF;height:20px;width:55px;border:1px solid #698B9A;background-color:#8BA6B1;font-size:12px;font-weight:bold;}
body {
 background-image: url(images/im_selec.jpg);
}
</style>
</head>
<body>
<table cellspacing='2' cellpadding='2'>
<tr>
<td>
   <!-- Formulario de contacto creado por VictorCL , descargatelo en www.victorcl.com -->
   <span style='font-size:11px;font-weight:bold;color:#F20000;'><?php echo $msg; ?></span>
  </td>
</tr>
<tr>
<td>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method='post'>
<span class='texto'>* Tu Nombre:</span><br />
<input type='text' name='nombre' size='50' value="<?php echo $nombre_form;?>"/><br />
<span class='texto'>* Tu email:</span><br />
<input type='text' name='email' size='50' value="<?php echo $email_form;?>" /><br />
<span class='texto'>* Tu Consulta:</span><br />
<textarea name='mensaje' rows='15' cols='50'><?php echo $mensaje_form;?></textarea><br />
<input type='submit' value='Enviar' class='boton' />
</form>
</td>
</tr>
</table>
</body>
</html>

1 Respuesta

Respuesta
1
He probado tu página y los mensajes se muestran correctamente, sin saltar de página...¿?
¿Seguro qué la dirección que me diste es correcta?
Gracias ya cambie el formulario de contacto no se cuando la miraste vos anoche tipo 2:00hs AM cambie el formulario por uno hecho en jquery el otro era uno común con tablas, por ello quizás ahora te funciona bien, el anterior se ejecutaba dentro de un DIV este no se habré una pantalla tipo alert pero hecha con jquery
Gracias igual por tu tiempo y bueno me gustaría saber la resolución de lo anterior pero ya lo saque de la web

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas