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='';
$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>
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='';
$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 de Jorge Vila
1
