Вот что я получил до сих пор. Где бы мне мой встроенный код? У меня также есть HTML-страница, на которой закодирована форма, но она связана с этой страницей php. Форма отлично работает, просто хотел добавить стиль для клиента.
<?php
// define variables and set to empty values
$name_error = $email_error = $phone_error = $subject_error = "";
$name = $email = $phone = $message = $subject = $success = "";
//form is submitted with POST method
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$name_error = "Name is required";
} else {
$name = test_input($_POST["name"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$name_error = "Only letters and white space allowed";
}
}
if (empty($_POST["email"])) {
$email_error = "Email is required";
} else {
$email = test_input($_POST["email"]);
// check if e-mail address is well-formed
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$email_error = "Invalid email format";
}
}
if (empty($_POST["phone"])) {
$phone_error = "Phone is required";
} else {
$phone = test_input($_POST["phone"]);
// check if phone number is well-formed
if (!preg_match("/^(\d[\s-]?)?[\(\[\s-]{0,2}?\d{3}[\)\]\s-]{0,2}?\d{3} [\s-]?\d{4}$/i",$phone)) {
$phone_error = "Invalid phone number";
}
}
if (empty($_POST["subject"])) {
$subject_error = "Subject is required";
} else {
$subject = test_input($_POST["subject"]);
// check if subject is proper text form
if (!preg_match("/^[a-zA-Z ]*$/",$subject)) {
$subject_error = "Invalid URL";
}
}
if (empty($_POST["message"])) {
$message = "";
} else {
$message = test_input($_POST["message"]);
}
if ($name_error == '' and $email_error == '' and $phone_error == '' and $subject_error == '' ){
$message_body = '';
unset($_POST['submit']);
foreach ($_POST as $key => $value){
$message_body .= "$key: $value\n";
}
// sends message to an email address specified.
$to = '[email protected]';
$subject = 'Contact Form Submit';
if (mail($to, $subject, $name, $message)){
$success = "Message sent, thank you for contacting us!";
$name = $email = $phone = $message = $subject = '';
}
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
любая помощь будет оценена!
Во-первых, я думаю, что у вас есть ошибка в вызове функции mail ().
Правильный способ отправить электронное письмо с помощью этой функции:
mail($to, $subject, $message, $headers);
Параметр $ headers является необязательным, но если вам нужно отправлять электронные письма стилей, он вам понадобится.
Пример этих заголовков:
$headers = "From: $name<$email>".PHP_EOL;
$headers .= "MIME-Version: 1.0".PHP_EOL;
$headers .= "X-Mailer:PHP/".phpversion()."".PHP_EOL;
$headers .= "Content-Type: text/html; charset=utf-8".PHP_EOL;
С помощью этих заголовков вы говорите почтовому клиенту, что отправляете html-контент, а затем в своем $ сообщении вы можете добавить несколько тегов, например:
$message = "<strong>Name:</strong> $name<br /><strong>Lorem ipsum</strong><br /><hr />Lorem ipsum";
Примечание: если вы хотите включить некоторые изображения, просто используйте тег, но используйте публичные URL в src, например так:
<img src="http://www.yoursite.com/emails/email-header.jpg" />
Других решений пока нет …