PHP - Problemas con el formulario decontacto

 
Vista:
sin imagen de perfil

Problemas con el formulario decontacto

Publicado por c3po_081 (14 intervenciones) el 11/10/2015 03:10:15
Buenas tardes colegas.

Les comento que estoy teniendo un problema con el formulario de mi sitio, en primer lugar les digo que el formulario funciona, pero el tema es que si te pones el la pagina de contacto se dispara un email (obvio que vació).

Osea que por solo hacer click en contacto ya se dispara un email. Me podrán ayudar ya que e revisado el código vi vario foros y no encontré la solución.

ACLARACIÓN: Donde hay "xxxx", es simplemente datos que no suman a mi consulta


Gracias.-

Les adjunto el codigo:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?php
  session_start();
  error_reporting(E_ALL ^ E_NOTICE);
 
    $nombre= $_POST['nombre'];
    $tel= $_POST['tel'];
    $email= $_POST['email'];
    $msj= $_POST['msj'];
 
    if ($nombre==""){
         $_SESSION ['error1']="Debe colocar su nombre y apellido ";
            }
    if ($tel=="") {
         $_SESSION ['error2']="Debe colocar el nombre del telefono";
       }
    if ($email=="") {
         $_SESSION ['error3']="Debe colocar su email";
        }
    if ($msj=="") {
         $_SESSION ['error4']="Su consulta o sugerencia";
        }if ($_SESSION == true) {
            echo "";
         }
           else{
          echo "";
           }
 
    $mensaje='
      "Haz recibido un mensaje desde CONTACTO de www.xxxxxxxxx.com"
        Nonbre:'.$nombre.'.
        Telefono:'.$tel.'.
        Correo electronico:'.$email.'.
        Consulta:'.$msj.'.
        Datos para contactar al postulante.
        Email:'.$email.'.
        Telefono:'.$tel.'.
            ';
      $encabezado= "MINE-version: 1.0\r\n";
      $encabezado .= "Content_type: text/html; charset=UTF-8\r\n";
      $encabezado .= "From: Xxxxxxxxxxxx <xxxxxx@xxxxxxxx>\r\n";
      $encabezado .= "Reply-To: xxxxxxx@xxxxx\r\n";
      $encabezado .= "Cc: xxxxxx@xxxxx\r\n";
 
    $mensaje = wordwrap($mensaje, 70, "\r\n");
 
    if(mail('consultas@xxxxxxxxx.com', 'Contacto desde la web sector ventas', $mensaje, $encabezado)== false){
        echo ' Su mensaje se envió correctamente';
      } else {
        echo ' Revise su conexión o renitente nuevamente mas tarde';
      }
?>
<form name="formulario" method="post" action="" >
 
  <label>Nombre y apellido /Empresa</label>
  <input name="nombre" text="text" value="<?php echo $imprimir['nombre']; ?>"/>
 
  <?php
    if (isset($_SESSION['error1'])) {
      echo "<br><font color='red' size='2'>".$_SESSION['error1']."</font>";
    } else {
      echo "";
    }
    unset($_SESSION['error1']);
  ?>
 
  <label>Telefono</label>
  <input name="tel" text="text" value="<?php echo $imprimir['tel']; ?>"/>
 
  <?php
    if (isset($_SESSION['error2'])) {
      echo "<br><font color='red' size='2'>".$_SESSION['error2']."</font>";
    } else {
      echo "";
    }
    unset($_SESSION['error2']);
  ?>
 
  <label>Email</label>
  <input name="email" text="text" value="<?php echo $imprimir['email']; ?>"/>
 
  <?php
    if (isset($_SESSION['error3'])) {
      echo "<br><font color='red' size='2'>".$_SESSION['error3']."</font>";
    } else {
      echo "";
    }
    unset($_SESSION['error3']);
  ?>
 
  <label>Mensaje</label>
  <textarea name="msj" text="text" value="<?php echo $imprimir['msj']; ?>" /></textarea>
 
  <?php
    if (isset($_SESSION['error4'])) {
      echo "<br><font color='red' size='2'>".$_SESSION['error4']."</font>";
    } else {
      echo "";
    }
    unset($_SESSION['error4']);
  ?>
  <br>
  <input  type="submit" class="bot" value="ENVIAR">
  <input type="reset" class="bot" value="Reset">
 
</form>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problemas con el formulario decontacto

Publicado por xve (6935 intervenciones) el 11/10/2015 10:31:40
Antes de empezar el envio del correo, tienes que revisar que hayan datos...

Tienes que añadir en la linea 4 algo así:
1
2
if(isset($_POST['email']) && $_POST['email'])
{

De esta manera, únicamente te enviara el correo si el campo email tiene valor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Problemas con el formulario decontacto

Publicado por c3po_081 (14 intervenciones) el 11/10/2015 16:23:52
xve, no entendí tu comentario.

La validaciones están desde la linea 10 a la 26. Quizás no fui claro en la explicación je.

El formulario valida y funciona el tema es que si en el sitio el usuario hace click en contacto automáticamente se me envía un email por el solo echo de estar en esa pagina del sitio. A lo cual esto no debería de ser así.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problemas con el formulario decontacto

Publicado por xve (6935 intervenciones) el 11/10/2015 18:46:12
Si, si que te entendí... las validaciones, las tienes bien, pero siempre enviara el correo... tanto al acceder a la pagina, como si pones un nombre vacío.

Yo creo que el problema es que esta mal estructurado, si hay algún error, no debería de poder enviar el correo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Problemas con el formulario decontacto

Publicado por carlos Mario (18 intervenciones) el 13/10/2015 15:08:00
Hola, si haces seguimiento al código observas que al realizar las validaciones cualquiera que sea el resultado ejecutara el codigo de envío. lo que debes hacer es ingresar dicho código de envío dentro de la rutina en la que todo este correcto. Algo asi:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
$nombre= $_POST['nombre'];
    $tel= $_POST['tel'];
    $email= $_POST['email'];
    $msj= $_POST['msj'];
 
    if ($nombre==""){
         $_SESSION ['error1']="Debe colocar su nombre y apellido ";
            }
else   if ($tel=="") {
         $_SESSION ['error2']="Debe colocar el nombre del telefono";
       }
 else   if ($email=="") {
         $_SESSION ['error3']="Debe colocar su email";
        }
 else   if ($msj=="") {
         $_SESSION ['error4']="Su consulta o sugerencia";
        }else if ($_SESSION == true) {
           $mensaje='
      "Haz recibido un mensaje desde CONTACTO de www.xxxxxxxxx.com"
        Nonbre:'.$nombre.'.
        Telefono:'.$tel.'.
        Correo electronico:'.$email.'.
        Consulta:'.$msj.'.
        Datos para contactar al postulante.
        Email:'.$email.'.
        Telefono:'.$tel.'.
            ';
      $encabezado= "MINE-version: 1.0\r\n";
      $encabezado .= "Content_type: text/html; charset=UTF-8\r\n";
      $encabezado .= "From: Xxxxxxxxxxxx <xxxxxx@xxxxxxxx>\r\n";
      $encabezado .= "Reply-To: xxxxxxx@xxxxx\r\n";
      $encabezado .= "Cc: xxxxxx@xxxxx\r\n";
 
    $mensaje = wordwrap($mensaje, 70, "\r\n");
 
    if(mail('consultas@xxxxxxxxx.com', 'Contacto desde la web sector ventas', $mensaje, $encabezado)== false){
        echo ' Su mensaje se envió correctamente';
         }
           else{
            echo ' Revise su conexión o renitente nuevamente mas tarde';
           }


espero ayudar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Problemas con el formulario decontacto

Publicado por c3po_081 (14 intervenciones) el 22/10/2015 19:17:04
Muchas gracias por sus aportes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar