Не удается ОПУБЛИКОВАТЬ файл /.php при отправке формы для электронной почты

#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 , но почта была отправлена успешно.