Duda con mensaje de aviso en formulario php

Snorky

Buenas gente!

Veréis, tengo un problema con un formulario que estoy haciendo para mi web, el caso es que no tengo idea de programación así que busqué un código en internet que os dejo a continuación. El tema es que cuando pulso enviar me sale el mensaje de confirmación en una página en blanco y me gustaría que dicho aviso saliese en la misma página. Como dato informativo decir que tengo dicho código php y el html en el mismo sitio (he visto en algunas páginas que puede estar de varias formas, pero no doy con la tecla).

<? //Recepcion de datos  $apellido=$_POST['apellido'];  $nombre=$_POST['nombre'];  $empresa=$_POST['empresa'];  $correo=$_POST['correo']; $asunto=$_POST['asunto'];  $consulta=$_POST['consulta'];   
// Fin de recpcion de datos
// Accion de envio
//---------//
$para='AQUI EL MAIL!'; $mensaje='
Mensaje de: '.$apellido.', '.$nombre.'
Correo: '.$correo.'
Asunto: '.$asunto.'
Consulta: '.$consulta.' '; $desde='From: '.$correo.' <AQUI TU MAIL>'; ini_set(sendmail_from,'AQUI TU MAIL'); mail($para,$asunto,$mensaje,$desde); echo'Mensaje envido con exito, muchas gracias'; ?>

Si alguien puede decirme cómo cambiarlo se lo agradeceré enormemente!

Merkury

Pues básicamente, deberías meter un campo oculto en el html y al enviar el formulario hacer un redirect con un parámetro y mostrarlo.

Otra opción es que hagas el submit con jquery usando ajax y lo controles ahi.

De todas formas si vas a poner ese formulario de contacto en una web, igual deberías buscar algo para evitar spam un recaptcha o lo que sea.

1 respuesta
Snorky

#2 lo del recaptcha es una buena idea, no se me había ocurrido meterlo. Las opciones que planteas he leído algunas parecidas, pero ya te digo que poca idea tengo sobre programación para llevarlo a cabo. A ver si encuentro algún tutorial.

Gracias de todas formas!

Merkury

Va venga, pegame el HTML y te lo hago, por las veces que te has currado avatares navideños.

1 respuesta
Snorky

#4 joder, te quiero.

<body>
<form id="form1" method="post" action="enviarcorreoCAS.php"> 
    <table width="400" border="0"> 
      <tr>
        <td colspan="2" align="center">¿Qué puedo hacer por ti?</td>
        </tr>
      <tr>
        <td colspan="2" align="center">&nbsp;</td>
      </tr>
      <tr> 
<td width="75" align="left">Nombre:</td> 
<td width="315"><label> <input name="nombre" type="text" id="nombre" size=25 /> </label></td> </tr> 
<tr> 
<td align="left">Mail:</td> 
<td><label> <input name="correo" type="text" id="correo" size=25 /> </label></td> </tr>
<tr>
  <td align="left">&nbsp;</td>
  <td>&nbsp;</td>
</tr> 
<tr>  
</tr> <tr><td height="51" colspan="2"><textarea name="asunto" cols="35" rows="5" id="consulta"></textarea></td> </tr> <tr>
<td height="41" colspan="2"><label></label> <div align="center"> <input type="submit" name="Submit" value="Enviar" /> <label> <input type="reset" name="Submit2" value="Cancelar" /> </label> </div></td> </tr> </table> </form> </body>

Te debo un avatar veraniego o lo que te plazca.

1 respuesta
Merkury

#5 Bueno te he hecho una ñapa (me van a linchar por pegar este código xD, pero bueno)

HTML

<body>
<form id="form1" name="frmcontact" method="post" action="enviarcorreoCAS.php"> 
    <table width="400" border="0"> 
      <tr>
        <td colspan="2" align="center">¿Qué puedo hacer por ti?</td>
        </tr>
      <tr>
        <td colspan="2" align="center">&nbsp;</td>
      </tr>
      <tr>
<td width="75" align="left">Nombre:</td> 
<td width="315"><label> <input name="nombre" type="text" id="nombre" size=25 /> </label></td> </tr> 
<tr> 
<td align="left">Mail:</td> 
<td><label> <input name="correo" type="text" id="correo" size=25 /> </label></td> </tr>
<tr>
  <td align="left">&nbsp;</td>
  <td>&nbsp;</td>
</tr>
<tr>
</tr> <tr><td height="51" colspan="2"><textarea name="asunto" cols="35" rows="5" id="consulta"></textarea></td> </tr> <tr>  
<td height="41" colspan="2"><label></label> <div align="center"> <input type="submit" name="Submit" value="Enviar" onclick="Validar()" /> <label> <input type="reset" name="Submit2" value="Cancelar" /> </label> </div></td> </tr> </table> </form> <script type="text/javascript"> function Validar() { var regMail = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/; if (document.frmcontact.nombre.value=="") { alert("Por favor escriba su Nombre completo"); document.frmcontact.nombre.focus(); return false; } if (document.frmcontact.correo.value=="") { alert("Por favor escriba su direcci\xF3n de correo electr\xF3nico"); document.frmcontact.correo.focus(); return false; } if(!regMail.test(document.frmcontact.correo.value)) { alert("Email erroneo"); return false; } if (document.frmcontact.asunto.value=="") { alert("Por favor escriba su Mensaje."); document.frmcontact.asunto.focus(); return false; } alert("Mensaje enviado."); document.frmcontact.submit(); } </script> </script> </body>

PHP

<? //Recepcion de datos  $apellido=$_POST['apellido'];  $nombre=$_POST['nombre'];  $empresa=$_POST['empresa'];  $correo=$_POST['correo']; $asunto=$_POST['asunto'];  $consulta=$_POST['consulta'];   
// Fin de recpcion de datos // Accion de envio //---------// $para='AQUI EL MAIL!'; $mensaje=' Mensaje de: '.$apellido.', '.$nombre.' Correo: '.$correo.' Asunto: '.$asunto.' Consulta: '.$consulta.' '; $desde='From: '.$correo.' <AQUI TU MAIL>'; ini_set(sendmail_from,'AQUI TU MAIL'); if (mail($para,$asunto,$mensaje,$desde)) { //Si el mensaje se envía muestra una confirmación header("Location: contact.php"); //contact.php cambialo por el nombre del archivo que contiene el HTML. }else{ //Si el mensaje no se envía muestra el mensaje de error die("Error: Su mensaje no pudo ser enviado, intente más tarde"); } ?>
1 2 respuestas
Snorky

#6 sí, te lo había pasado tal cual venía en el tutorial que pillé para no liarte de más, pero aquí está todo el asunto que tengo ahora mismo:

spoiler
1 respuesta
Merkury

#7 Bueno lo he escrito en javascript chustero y plano XD
Y con alerts para los mensajes de error y demas. XD

Esta tarde en casa te lo hare bien, con un campo oculto para mostrar los mensajes y con una llamada jquery ajax, que ahora en la oficina no me da tiempo a más y así evitare el linchamiento público.

1 1 respuesta
Snorky

#8 mientras tire yo encantado haha

edit. okey!

eXtreM3

#6 y tienes el valor de meterte conmigo y con mi portfolio...

1
E

hahaha como se la tenía guardada extrem3 XD

3 2 respuestas
Merkury

#11 Si eso ya lo sabia yo xD

DarkSoldier

#11 está esperando nuestros gazapazos para criticarnos xDDD

1 2 respuestas
Merkury

#13 Solo dire que el código este lo escribí en 10 minutos, para que Snorky pudiese tirar para alante.

eXtreM3

#13 imagino que lo dirás de broma, pero aún así te ofrezco la posibilidad de que si me enseñas un solo post en el que yo me haya metido con vosotros o con vuestros conocimientos de programación, no posteo en dev hasta dentro de un año. Y que me pongan "exiliado" de CT.

1 respuesta
DarkSoldier

#15 imaginas bien xD

Usuarios habituales

  • DarkSoldier
  • eXtreM3
  • Merkury
  • Ekisu
  • Snorky