Я создаю веб-сайт, и я хочу настроить контактную форму электронной почты. Что-то вроде этого: контактный формуляр электронной почты
Мне кажется, что этот код будет делать это? Но когда я нажимаю кнопку "Отправить", ничего не происходит. Я никогда не использовал php, поэтому я понятия не имею, что я делаю неправильно.
<?php
if(isset($_POST['submit'])){
$to = "[email protected]"; // this is your Email address
$from = $_POST['email']; // this is the sender Email address
$first_name = $_POST['first_name'];
$subject = "Form submission";
$subject2 = "Copy of your form submission";
$message = $first_name . " " . $last_name . " wrote the following:" . "\n\n" . $_POST['message'];
$message2 = "Here is a copy of your message " . $first_name . "\n\n" . $_POST['message'];
$headers = "From:" . $from;
$headers2 = "From:" . $to;
mail($to,$subject,$message,$headers);
mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender
}
?>
<!DOCTYPE html>
<head>
<title>Form submission</title>
</head>
<style>
#from{
font-weight: bold;
font-family: Trajan Pro;
font-size: 14px;
color: #66441c;
}
.input{
outline: none;
margin: 5px 0 10px 0;
padding-left: 10px;
width: 230px;
height: 35px;
font-family: Adobe Garamond Pro;
font-size: 14px;
color: #A4A4A4;
border-radius: 5px;
border: 1px solid #a37f4f;
}
textarea {
padding-top: 10px;
}
#message{
outline: none;
margin: 5px 0 10px 0;
padding-left: 10px;
width: 230px;
height: 60px;
font-family: Adobe Garamond Pro;
font-size: 14px;
color: #A4A4A4;
border-radius: 5px;
border: 1px solid #a37f4f;
}
#button{
margin-top: -10px;
border: none;
outline: none;
border-radius: 5px;
width: 230px;
height: 35px;
font-family: Trajan Pro;
font-size: 14px;
color: #fff;
background-color: #a37f4f;
}
#button:hover {
background-color: #401b0f;
color: #a37f4f;
}
</style>
<body>
<form id="from" action="" method="post">
Name <input class="input" type="text" name="first_name"><br>
Email <input class="input" type="text" name="email"><br>
Message <br><textarea id="message" rows="5" name="message" cols="30"></textarea><br>
<input id="button" type="submit" name="submit" value="Submit">
</form>
</body>
</html>
Почему вы используете $last_name
? Удалите его или добавьте новое текстовое поле для фамилии.
Попробуйте проверить, отправлено ли электронное письмо или нет.
<? php
if (isset($_POST['submit'])) {
$to = "[email protected]"; // this is your Email address
$from = $_POST['email']; // this is the sender Email address
$first_name = $_POST['first_name'];
$subject = "Form submission";
$subject2 = "Copy of your form submission";
$message = $first_name.
" ".$last_name.
" wrote the following:".
"\n\n".$_POST['message'];
$message2 = "Here is a copy of your message ".$first_name.
"\n\n".$_POST['message'];
$headers = "From:".$from;
$headers2 = "From:".$to;
$email1 = mail($to, $subject, $message, $headers);
$email2 = mail($from, $subject2, $message2, $headers2); // sends a copy of the message to the sender
}
if ($email1) {// checking if email 1 is sent
echo "Email 1 is sent";
} else {
echo "Email 1 is not sent";
}
if ($email2) {//checking if email 2 is sent
echo "Email 2 is sent";
} else {
echo "Email 2 is not sent";
} ?>
добавьте это в свой атрибут формы. action="<?php echo $_SERVER['PHP_SELF'];?>"
example: <form method="POST" action="<?php echo $_SERVER['PHP_SELF'];?>">
Ваша форма action
и onsubmit
атрибуты являются пустыми, поэтому информация формы никогда не представляется в любом месте. Вам нужно либо указать, какую страницу отправить содержимое формы (с помощью action="..."
), либо указать функцию javascript для выполнения (используя onsubmit="..."
), иначе ничего не произойдет, когда вы нажмете " Submit
кнопка.
У меня была аналогичная проблема
Я использовал в form Tag
action="<?php echo $_SERVER['PHP_SELF']; ?>"