Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Mensaje validación de formulario

Estas en el tema de Mensaje validación de formulario en el foro de PHP en Foros del Web. Ola a todos, he creado la página web de mi empresa www.itruiz.com pero tengo un problema con el formulario de contacto. El caso es que ...
  #1 (permalink)  
Antiguo 12/08/2014, 03:27
Avatar de ruizinho  
Fecha de Ingreso: noviembre-2012
Ubicación: Granada
Mensajes: 68
Antigüedad: 11 años, 5 meses
Puntos: 2
Pregunta Mensaje validación de formulario

Ola a todos, he creado la página web de mi empresa www.itruiz.com pero tengo un problema con el formulario de contacto. El caso es que funciona bien, me valida primero con código sencillo de javascript y si todo esta correcto me lo valida otra vez por php, me envía la información y me devuelve de nuevo a la página de contacto con los campos vacíos.

El problema viene aquí justo al final, no sé como hacer que me aparezca un mensaje en esa pagina de contacto diciendo que el envió se ha realizado correctamente.

Bueno gracias de antemano.

Un saludo
  #2 (permalink)  
Antiguo 12/08/2014, 03:39
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Mensaje validación de formulario

¿Por un casual no seras el mismo de este post no? Por que tenéis exactamente el mismo formulario y el mismo diseño jeje.

Porque no le pasas un "controlador" por una sesión, por ejemplo, en la página que procesa el envío del formulario después de mandarlo le guardas en $_SESSION['Enviado'] = 1, después en el formulario de contacto compruebas si $_SESSION['Enviado'] == 1, y si es asi le pones un echo 'Mensaje enviado'.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #3 (permalink)  
Antiguo 12/08/2014, 03:57
Avatar de ruizinho  
Fecha de Ingreso: noviembre-2012
Ubicación: Granada
Mensajes: 68
Antigüedad: 11 años, 5 meses
Puntos: 2
Respuesta: Mensaje validación de formulario

Hola, la verdad es que no tengo nada ver con el jejeje pero el formulario lo he hecho a partir de codigos que he encontrado por la web asique abremos coincidido.


Aver, el codigo que utilizo para la validación es este, ¿donde deberia meter el $_SESSION['Enviado'] = 1? ¿después del echo del final que me envia a la página de contacto?

Código:
 <?php

 if(!empty($_POST['nombre']) AND !empty($_POST['email']) AND    !empty($_POST['telefono'])  AND !empty($_POST['asunto'])  AND   !empty($_POST['mensaje'])){

$to ="[email protected]";
$headers = "Content-Type: text/html; charset=iso-8859-1\n"; 
$headers .= "From:".$_POST['nombre']."\r\n";			
$tema="Contacto desde ITRUIZ";
$mensaje="
<table border='0' cellspacing='2' cellpadding='2'>
  <tr>
    <td width='20%' align='center' bgcolor='#FFFFCC'><strong>Nombre:</strong></td>
    <td width='80%' align='left'>$_POST[nombre]</td>
  </tr>
  <tr>
    <td align='center' bgcolor='#FFFFCC'><strong>E-mail:</strong></td>
    <td align='left'>$_POST[email]</td>
  </tr>
  <tr>
    <td align='center' bgcolor='#FFFFCC'><strong>Teléfono:</strong></td>
    <td align='left'>$_POST[telefono]</td>
  </tr>
   <tr>
    <td width='20%' align='center' bgcolor='#FFFFCC'><strong>Asunto:</strong></td>
    <td width='80%' align='left'>$_POST[asunto]</td>
  </tr>
  <tr>
    <td align='center' bgcolor='#FFFFCC'><strong>Mensaje:</strong></td>
    <td align='left'>$_POST[mensaje]</td>
  </tr>
</table>
";
@mail($to,$tema,$mensaje,$headers); 
echo    "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=http://http://www.itruiz.com/contacto.html\">";

} else {
	echo "No se puede enviar el formulario, verifica los campos";
}
?>
  #4 (permalink)  
Antiguo 12/08/2014, 04:01
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Mensaje validación de formulario

Justo después de esta línea:
Código PHP:
Ver original
  1. @mail($to,$tema,$mensaje,$headers);
Para que que quede así
Código PHP:
Ver original
  1. @mail($to,$tema,$mensaje,$headers);
  2. $_SESSION['Enviado'] = 1;

Acuérdate que tienes que poner session_start al inicio de los archivos implicados para que te funcione.

Pd.: Cuando pongas un código de este tipo, trata de no poner el e-mail para evitar que te hagan spam, pon uno inventado tipo [email protected]
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #5 (permalink)  
Antiguo 12/08/2014, 04:05
Avatar de ruizinho  
Fecha de Ingreso: noviembre-2012
Ubicación: Granada
Mensajes: 68
Antigüedad: 11 años, 5 meses
Puntos: 2
Respuesta: Mensaje validación de formulario

Vale, y en archivo de contacto.html donde pongo la comparación?
  #6 (permalink)  
Antiguo 12/08/2014, 04:09
 
Fecha de Ingreso: octubre-2012
Mensajes: 135
Antigüedad: 11 años, 7 meses
Puntos: 8
Lo puedes poner en cualquier lado, pero al tener código php, tendrás que cambiar la extensión del archivo de html a php. En el inicio del archivo( la primera línea, tienes que poner la sentencia para iniciar la sesión, y donde quieras que aparezca mensaje, pones la comparación.
  #7 (permalink)  
Antiguo 12/08/2014, 04:12
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Mensaje validación de formulario

Pues donde quieras mostrar el mensaje, el tema es que si tiene la extensión .html y el servidor no esta preparado para ejecutar PHP dentro de esa extensión no te va a funcionar de esta manera y tendrías que ver de hacerlo con cookies, o cambiar la extensión del archivo.

Por cierto yo no soy botxii aunque hayamos puesto lo mismo, y el mio no salio antes porque se me quedo pillado al darle a guardar.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #8 (permalink)  
Antiguo 12/08/2014, 04:20
Avatar de ruizinho  
Fecha de Ingreso: noviembre-2012
Ubicación: Granada
Mensajes: 68
Antigüedad: 11 años, 5 meses
Puntos: 2
Respuesta: Mensaje validación de formulario

valee! ya me avia dado cuenta de que era otro compañero jejeje gracias a los dos!, esta tarde lo pruebo aver si me funciona que ahora mismo no estoy en la oficina.

Un saludo!
  #9 (permalink)  
Antiguo 12/08/2014, 05:35
Avatar de ruizinho  
Fecha de Ingreso: noviembre-2012
Ubicación: Granada
Mensajes: 68
Antigüedad: 11 años, 5 meses
Puntos: 2
Respuesta: Mensaje validación de formulario

Ei, hay algo que no estoy haciendo bien, aver si vosotros lo veis.

En el archivo contacto.php e escrito justo al principio el session_start y luego donde yo quiero que me inserte el mensaje he escrito lo siguiente:

Código:
<?php
if$_SESSION['Enviado'] == 1;{
    echo "El mensaje a sido enviado correctamente";
}

?>
pero me dice que hay un error justo en la línea del if, como si no reconociera la variable o algo.
  #10 (permalink)  
Antiguo 12/08/2014, 05:37
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Mensaje validación de formulario

Código PHP:
Ver original
  1. if ($_SESSION['Enviado'] == 1){
  2. echo "El mensaje a sido enviado correctamente";
  3. }

No as echo bien la sintaxis.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #11 (permalink)  
Antiguo 12/08/2014, 05:59
Avatar de ruizinho  
Fecha de Ingreso: noviembre-2012
Ubicación: Granada
Mensajes: 68
Antigüedad: 11 años, 5 meses
Puntos: 2
Respuesta: Mensaje validación de formulario

Pos me parece a mi que soy un poco torpe... porque no me funciona.

Ahora cuando cargo la página de contacto.php me sale directamente la frase de "El mensaje a sido enviado" en vez de esperarse a que se cumpla la condición. Y después cuando mando el mensaje no me vuelve a la página de contacto.php, dice que esta página web no esta disponible...

Aver en la página de contacto.php he puesto justo cuando empieza el body esto:


Código:
<body>
    <?php
    session_start();
    ?>

Después donde quiero que me aparezca el mensaje he puesto esto:


Código:
<?php
if ($_SESSION['Enviado'] == 1){
echo "El mensaje a sido enviado correctamente";
}

?>
Y por ultimo el archivo que me valida el formulario queda asi:


Código:

 <?php

session_start();

 if(!empty($_POST['nombre']) AND !empty($_POST['email']) AND    !empty($_POST['telefono'])  AND !empty($_POST['asunto'])  AND   !empty($_POST['mensaje'])){

$to ="[email protected]";
$headers = "Content-Type: text/html; charset=iso-8859-1\n"; 
$headers .= "From:".$_POST['nombre']."\r\n";			
$tema="Contacto desde ITRUIZ";
$mensaje="
<table border='0' cellspacing='2' cellpadding='2'>
  <tr>
    <td width='20%' align='center' bgcolor='#FFFFCC'><strong>Nombre:</strong></td>
    <td width='80%' align='left'>$_POST[nombre]</td>
  </tr>
  <tr>
    <td align='center' bgcolor='#FFFFCC'><strong>E-mail:</strong></td>
    <td align='left'>$_POST[email]</td>
  </tr>
  <tr>
    <td align='center' bgcolor='#FFFFCC'><strong>Teléfono:</strong></td>
    <td align='left'>$_POST[telefono]</td>
  </tr>
   <tr>
    <td width='20%' align='center' bgcolor='#FFFFCC'><strong>Asunto:</strong></td>
    <td width='80%' align='left'>$_POST[asunto]</td>
  </tr>
  <tr>
    <td align='center' bgcolor='#FFFFCC'><strong>Mensaje:</strong></td>
    <td align='left'>$_POST[mensaje]</td>
  </tr>
</table>
";
@mail($to,$tema,$mensaje,$headers); 
$_SESSION['Enviado'] = 1;
echo    "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=http://http://www.itruiz.com/contacto.php\">";

} else {
	echo "No se puede enviar el formulario, verifica los campos";
}
?>
  #12 (permalink)  
Antiguo 12/08/2014, 06:09
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Mensaje validación de formulario

Esto tiene que estar al principio del archivo, sino no te funcionara bien, y tienes que tenerlo tanto en el archivo que te procesa el formulario como donde quieres mostrar el mensaje.
Código PHP:
Ver original
  1. <?php
  2.     session_start();
  3. ?>
Aparte recuerda que la extensión del archivo tiene que ser .php
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #13 (permalink)  
Antiguo 12/08/2014, 06:45
Avatar de ruizinho  
Fecha de Ingreso: noviembre-2012
Ubicación: Granada
Mensajes: 68
Antigüedad: 11 años, 5 meses
Puntos: 2
Respuesta: Mensaje validación de formulario

Ola, al final he tirado por el camino facil porque la verdad es que no me funciona.

He creado una pagina de exito y otra de error y con la validación de php hago que me mande a una u otra.

Podeis ver como ha quedado aqui [URL="http://www.itruiz.com/contacto.html"]http://www.itruiz.com/contacto.html[/URL]

De todas formas muchisimas gracias por vuestro tiempo.
__________________
Instalaciones Técnicas Ruiz
  #14 (permalink)  
Antiguo 12/08/2014, 07:14
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Mensaje validación de formulario

Por cierto mira que aquí:
Código HTML:
Ver original
  1. URL=http://http://www.itruiz.com/contacto.php\">";

Tienes puesto 2 veces http://
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net

Etiquetas: formularios, javascript, mensaje
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:27.