Formulario contacto PHP

X

Hola esto harto de probar formularios, codigos y demas y no funciona ninguno!

Busco un codigo en el cual al darle al boton submit lleve a otra pagina en la que ponga yo un mensaje "mensaje enviado correctamente" por ejemplo y no un mensaje en javascript.

Mi host esta en godaddy y problemas de php no hay y no se porque no me va nininguno!

si en el form action pongo el .php y los inputs le pongo el nombre de las variables del php pero NO VA!

help me pls

ke2g

#1 esto funciona:

formulario:

<html>
<body>

<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html> 

y el fichero welcome.php:

<html>
<body>

Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>

</body>
</html> 

pon tu código sino no podremos ayudarte.

1 respuesta
X

#2 este es el codigo del formulario, ahora en tu welcome.php no hay ninguna variable para mandar el mail ni el contenido de los campos.. :S

<form action="" method="post">
                        <div class="three floated" style="padding-left:0px">
                            <label for="name">Nombre: <span>*</span></label>
                            <input name="nombre" type="text"/>
                        </div>
                        <div class="four floated" style="padding-left:0px">
                            <label for="email">Email: <span>*</span></label>
                            <input name="email" type="text" pattern="^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$" />
                        </div>
                        
<div class="three floated" style="padding:0px"> <label for="subject">Asunto: <span>*</span></label> <input name="asunto" type="text"/> </div> <div class="clearfix" style="margin-bottom:5px"></div> <div> <label for="message">Mensaje: <span>*</span></label> <textarea name="mensaje" cols="40" rows="3" spellcheck="true"></textarea> </div> <div class="clearfix" style="margin-bottom:5px"></div> </fieldset> <input type="submit" class="submit" name="submit" value="Enviar Mensaje" /> <div class="clearfix"></div> </section> </section> </div> </form>
1 respuesta
ke2g

#3 ese código es simplemente un ejemplo que muestra dos mensajes con lo que ha escrito el usuario.

En tu código el formulario no tienen el atributo "action" (línea 60)

  <form action="" method="post">

Fíjate que en el ejemplo que he puesto yo hay el fichero "welcome.php". Este es el que se encarga de la petición del form, es decir de la respuesta que hay que mostrar al pulsar el botón de "enviar". Tendrás que hacer algo parecido, crear un fichero .php y este que se encargue de enviar la respuesta que quieras, enviarte un mail a tu dirección o lo que quieras.

EDIT:

Las variable que envia el usuario son $POST["name"] y $POST["email"]

En tu caso serian $POST["nombre"], $POST["email"] y $_POST["asunto"]

1 respuesta
X

#4 ya, pero esque de php no se... hago las cosas pillandolo de tutos y eso.. vamos que uso el php para hacer la web modular con includes y lo de la paginacion ?action=loquesea

ya se que el action del formulario eta vacio, esta vacio porque estoy esperando a ver un script.

Ya he pillado un codigo, lo he puesto en un "enviar.php" en el form action pongo el "enviar.php" pero no hace nada se queda la web en blanco y encima ni envia el email... :s

1 respuesta
ke2g

#5 a ver, si te he entendido bien lo que quieres es que: cuando el usuario envía el formulario, se envían los campos del formulario a tu mail y al usuario se le redirige a una página con algo del palo "mensaje enviado".

Tengo que decir que no estoy muy puesto con PHP ... pero siguiendo el ejemplo en #2, tu welcome.php sería algo del estilo:

<html>
<body>
<?php
$to = '[email protected]';
$subject = "Asunto'';
$message = $_POST["asunto"] ;
$headers = 'From: [email protected]' . "\r\n" .
    'Reply-To:' . $_POST["email"] . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

$result = mail($to, $subject, $message, $headers);
if(!$result) {   
echo "Error";
} else { echo "Mensaje enviado correctamente"; } ?> </body> </html>

Esta hecho rápidamente, quizás hay algún error el en código, pero la idea básica es esta.
Otra cosa, seguramente la función de mail no funcione sin un servicio de SMTP con el que enviar los mails a tu correo.

Usuarios habituales

  • ke2g
  • Xerezano