Я следую учебнику о том, как реализовать простую форму контакта Bootstrap с помощью сценария почтовой программы PhP.
Однако, когда я нажимаю «Отправить сообщение», моя контактная форма загружает скрипт PHP, а не отправляет электронное письмо. Что я делаю не так?
Бутстрап – HTML
<form name="contactform" method="post" action="http://location_of_my_web_app/php/mailer.php" class="form-horizontal" role="form"> <div class="form-group"> <label for="inputName" class="col-lg-2 control-label">Name</label> <div class="col-lg-10"> <input type="text" class="form-control" id="inputName" name="inputName" placeholder="Your Name"> </div> </div> <div class="form-group"> <label for="inputEmail1" class="col-lg-2 control-label">Email</label> <div class="col-lg-10"> <input type="text" class="form-control" id="inputEmail" name="inputEmail" placeholder="Your Email"> </div> </div> <div class="form-group"> <label for="inputSubject" class="col-lg-2 control-label">Subject</label> <div class="col-lg-10"> <input type="text" class="form-control" id="inputSubject" name="inputSubject" placeholder="Subject Message"> </div> </div> <div class="form-group"> <label for="inputPassword1" class="col-lg-2 control-label">Message</label> <div class="col-lg-10"> <textarea class="form-control" rows="4" id="inputMessage" name="inputMessage" placeholder="Your message..."></textarea> </div> </div> <div class="form-group"> <center> <div class="col-lg-offset-2 col-lg-10"> <button type="submit" class="btn btn-primary">Send Message</button> </div> </center> </div> </form>
PHP
<?php /* Set e-mail recipient */ $myemail = "my_address@gmail.com"; /* Check all form inputs using check_input function */ $name = check_input($_POST['inputName'], "Your Name"); $email = check_input($_POST['inputEmail'], "Your E-mail Address"); $subject = check_input($_POST['inputSubject'], "Message Subject"); $message = check_input($_POST['inputMessage'], "Your Message"); /* If e-mail is not valid show error message */ if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email)) { show_error("Invalid e-mail address"); } /* Let's prepare the message for the e-mail */ $subject = "Someone has sent you a message"; $message = " Someone has sent you a message using your contac form: Name: $name Email: $email Subject: $subject Message: $message "; /* Send the message using mail() function */ mail($myemail, $subject, $message); /* Redirect visitor to the thank you page */ header('Location: http://location_of_my_thank_you_page/Static/contact_thankyou.html'); exit(); /* Functions we used */ function check_input($data, $problem='') { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); if ($problem && strlen($data) == 0) { show_error($problem); } return $data; } function show_error($myError) { ?> <html> <body> <p>Please correct the following error:</p> <strong><?php echo $myError; ?></strong> <p>Hit the back button and try again</p> </body> </html> <?php exit(); } ?>
«моя контактная форма загружает скрипт PHP вместо отправки электронной почты»
Похоже, что PHP не установлен / работает или неправильно настроен.
Я предлагаю создать файл с именем test.php
с <?php echo "Hello world"; ?>
<?php echo "Hello world"; ?>
внутри него и посмотреть, делает ли он то же самое.
Если он все еще хочет выглядеть так, как он хочет скачать, тогда есть проблема; PHP не установлен или неправильно настроен и не анализирует PHP, как обычно.
Создайте еще один файл и поместите <?php phpinfo(); ?>
<?php phpinfo(); ?>
и он должен показать вам информацию о сервере.