#php #html #forms #email #post
#php #HTML #формы #Адрес электронной почты #Публикация
Вопрос:
Я пытаюсь получить HTML-код для совместной работы с PHP, чтобы создать форму для отправки почты, но после отправки формы файл PHP сообщает
Cannot POST /quotation.php
Вот мой HTML-код
<div id="quotation" class="reveal-modal" data-reveal>
<a class="close-reveal-modal">amp;#215;</a>
<h3>Request Quotation</h3>
<p>Please fill out this information and we will contact you as soon as possilble.</p>
<form method="post" name="" action="quotation.php">
<div class="row">
<div class="large-6 columns">
<label>Name
<input type="text" name="name" placeholder="Name" />
</label>
</div>
<div class="large-6 columns">
<label>Lastname
<input type="text" name="lastname" placeholder="Lastname" />
</label>
</div>
</div>
<div class="row">
<div class="large-6 columns">
<label>Company name
<input type="text" name="company" value="" placeholder="Your company">
</label>
</div>
<div class="large-6 columns">
<label>E-mail
<input type="text" name="email" value="" placeholder="E-mail">
</label>
</div>
</div>
<div class="row">
<div class="large-12 columns">
<label>Additional details
<textarea name="message" placeholder="Additional details here"></textarea>
</label>
</div>
</div>
<input class="button radius" type="submit" name='submit' value="submit">
</form>
</div>
И это PHP, который запускает форму
<?php
if(!isset($_POST['submit']))
{
//This page should not be accessed directly. Need to submit the form.
echo "error; you need to submit the form!";
}
$name = $_POST['name'];
$lastname = $_POST['lastname'];
$company = $_POST['company'];
$visitor_email = $_POST['email'];
$message = $_POST['message'];
$email_from = $visitor_email;//<== update the email address
$email_subject = "New Form submission";
$email_body = "You have received a new message from the user $name, $lastname.n".
"Here is the message:n $message".
$to = "email@gmail.com";
$headers = "From: $email_from rn";
$headers .= "Reply-To: $visitor_email rn";
//Send the email!
mail($to,$email_subject,$email_body,$headers);
echo "Mail Sent. Thank you " . $name . ", we will contact you shortly.";
alert("yo");
//done. redirect to thank-you page.
header('Location: index.html');
?>
Я добавил оповещение и эхо для кнопки отправки, но ни один из них не отображается, поэтому похоже, что PHP даже не запущен.
Было бы здорово, если бы кто-нибудь мог помочь мне решить эту проблему или указать, что я делаю не так.
Комментарии:
1. Вы запускаете это со своего компьютера или с размещенной службы?
2. оповещение не является встроенной функцией PHP.
3. @Fred-ii- Я запускаю это на локальном сервере. Попытаюсь загрузить его в Интернете и посмотреть, что произойдет.
4. Если PHP не установлен на вашем компьютере, он не будет работать, как и
mail()
. Попробуйте свой код на реальном сервере / размещенной службе, и я почти уверен, что он сработает. Также, как указано выше,alert()
не является встроенной функцией PHP, вам нужно будет включить синтаксис JS или просто удалить его полностью. Добавьте сообщение об ошибке в начало вашего файла (ов)error_reporting(E_ALL); ini_set('display_errors', 1);
посмотрите, дает ли это что-нибудь. Технически это должно сработать; Я не вижу ничего плохого в вашем коде, кромеalert()
5. @Fred-ii- Да, вы были правы насчет того, чтобы попробовать код вживую. Я все еще получал ошибку из-за этого
alert
, но почта была отправлена успешно.