Cómo enviar datos de formulario HTML a un correo electrónico usando PHP
Enviar un formulario por correo electrónico es una forma importante y habitual de comunicarse con un usuario de un recurso web. Escribamos un formulario simple para enviar datos por correo electrónico utilizando la función PHP mail(). Nuestro formulario también escribirá datos en un archivo en el servidor. El código no está vinculado a ningún CMS y se puede utilizar en cualquier lugar. Es importante que la función mail() esté habilitada en su alojamiento.
<?php
if(isset($_POST['spam']) && isset($_POST['submit']) && !$_POST['spam']){
//departure date
$date = date('d-m-Y H:i');
//the value from the name field is limited to 100 characters
$field_name = substr(htmlspecialchars(trim($_POST['name'])), 0, 100);
//the value of the message field is limited to 1000 characters
$field_message = substr(htmlspecialchars(trim($_POST['message'])), 0, 1000);
$to = "user@example.com"; //to
$subject = "Data from the feedback form";
//text of the letter
$msg = "Name: $field_name
\nMessage: $field_message";
$headers = 'From: webmaster@example.com'; // from
mail($to, $subject, $msg, $headers);//send the letter
//create a string to write to the file on the server
$file_msg = "$date Name: $field_name; Message: $field_message;\n";
//write data to file
file_put_contents(__DIR__ . '/mail.txt', $file_msg, FILE_APPEND);
echo '<p>Thank you for your message</p>';
}
?>
<form method="post" action="">
<input type="text" name="name" placeholder="Name*" required>
<textarea name="message" placeholder="Message*" required></textarea>
<input type="hidden" name="spam" value="">
<input type="submit" value="Send" name="submit">
</form>
Enviamos un correo a user@example.com. En el valor “from”, es conveniente especificar un buzón de correo del dominio actual. Los datos se escriben en el archivo mail.txt. Los campos del formulario se han establecido como obligatorios mediante el atributo “required”. El campo “spam” proporcionará protección contra los robots de spam, pero mínima. El controlador del formulario se encuentra en la dirección actual. Mostramos un mensaje de agradecimiento después de enviarlo correctamente.
En su implementación, puede guardar los datos en la base de datos en lugar de escribirlos en el archivo. También puede mover el controlador de solicitudes a un archivo separado.
Publicaciones similares:
-
Cómo eliminar el script jQuery Migrate de WordPress
Si tu proyecto de WordPress usa jQuery, WordPress también carga el script jQuery Migrate por defecto. En el 99 % de los casos, no necesitas este script. jQuery Migrate re...
-
Cómo eliminar el campo "Sitio web" del formulario de comentarios de WordPress
Por defecto, WordPress incluye un campo "Sitio web" o "URL" en su formulario de comentarios. Si bien esto puede ser útil en algunos casos, suele atraer spammers que dejan...
-
Almacenamiento en caché de datos en un archivo mediante PHP
En ocasiones resulta necesario limitar el número de consultas a una fuente de datos externa, sobre todo si no cambian constantemente (por ejemplo, el tipo de cambio en el...
Leave a Reply