PHP - Validar Formulario php en la misma pagina

 
Vista:

Validar Formulario php en la misma pagina

Publicado por Cesar (2 intervenciones) el 18/07/2019 19:50:01
Buenas, necesito ayuda...

Tengo el siguiente codigo, buscando por internet y en algunos tutoriales, logre armar esto. La ide es tener un formulario de contacto que mande un mail y que muestre un mensaje de envio exitoso.

Logre hacerlo (dar el mensaje de exito) pero abriendolo desde una pagina externa.

Al intentar desde el mismo php. me da un error de envio. Warning : mail() [ function.mail ]: SMTP server response: 530 SMTP authentication is required.

No se mucho de php. Quisiera alguna ayuda. Muchas gracias

ESTE ES 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
<section class="section2" style="background-image: url('fondo_form.jpg');">
    <h3 class="center-align deep-orange-text text-darken-4">Haga su consulta</h3>
    <div class="w3ls-login">
        <!-- form starts here -->
        <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>" method="post">
            <div class="agile-field-txt">
                <label>
                    Nombre :</label>
                <input type="text" id="names" name="nombre" placeholder="Ingrese su nombre" required>
            </div>
            <div class="agile-field-txt">
                <label>
                    Email :</label>
 
                <input type="email" name="correo" placeholder="Ingrese su correo" required />
            </div>
            <div class="agile-field-txt">
                <label>
                    Mensaje :</label>
                <textarea name="mensaje" placeholder="Escribe tu consulta" required></textarea>
            </div>
 
            <!-- //script for show password -->
            <div class="w3ls-login  w3l-sub">
                <input type="submit" value="ENVIAR" name="submit">
            </div>
            <?php echo $result; ?>
 
            <?php
    if(isset($_POST['submit'])){
        if($_POST['nombre'] == ''){
            $errors[1] = '<span class="error">Ingrese su nombre</span>';
        }else if($_POST['correo'] == '' or !preg_match("/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/",$_POST['correo'])){
            $errors[2] = '<span class="error">Ingrese un correo correcto</span>';
        }else if($_POST['mensaje'] == ''){
            $errors[4] = '<span class="error">Ingrese un mensaje</span>';
        }else{
            $dest = "rodriguezcfh@gmail.com"; //Email de destino
            $nombre = $_POST['nombre'];
            $correo = $_POST['correo'];
            $asunto = "Contacto desde nuestra web";
            $cuerpo = $_POST['mensaje']; //Cuerpo del mensaje
            //Cabeceras del correo
            $headers = "From: $nombre <$correo>\r\n"; //Quien envia?
            $headers .= "X-Mailer: PHP5\n";
            $headers .= 'MIME-Version: 1.0' . "\n";
            $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; //
            header("location: index_ski_week_2.php?mailsend");
 
            if(mail($dest,$asunto,$cuerpo,$headers)){
                $result = '<div class="result_ok">Email enviado correctamente </div>';
                // si el envio fue exitoso reseteamos lo que el usuario escribio:
                $_POST['nombre'] = '';
                $_POST['correo'] = '';
                $_POST['asunto'] = '';
                $_POST['mensaje'] = '';
            }else{
                $result = '<div class="result_fail">Hubo un error al enviar el mensaje </div>';
            }
        }
    }
?>
        </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 Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Validar Formulario php en la misma pagina

Publicado por Alejandro (840 intervenciones) el 18/07/2019 22:21:48
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
No has configurado el servidor SMTP para Mail()
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 Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Validar Formulario php en la misma pagina

Publicado por Mauro (1037 intervenciones) el 19/07/2019 15:14:56
La configuración del SMTP la debes hacer en el php.ini si usas la función mail (Cosa que no te recomiendo).

Más vale usar alguna otra librería. Puedes ver más info aquí.

Y ya que estamos, si quieres aprender un poco más de PHP te puede servir este programa de estudio
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