Я создаю сайт для друга, моего первого сайта. В настоящее время это тоже.
Создал базовую форму «Связаться со мной», где пользователь может заполнить информацию, затем он отправит электронное письмо.
Вопрос заключается в следующем: после нажатия кнопки «Отправить», как мне получить веб-страницу для перенаправления обратно в index.html после ответа «Ваша форма была отправлена» от php.
Вот раздел html-формы:
<div class="contactme" id="contactme"> <form class="form-horizontal" method="post" name="myemailform" action="form-to-email.php"> <fieldset> <h2>Let's Create Together</h2> <hr class="small"> <div class="form-group"> <label class="col-lg-2 control-label">Name</label> <div class="col-lg-10"> <input type="text" class="form-control" name="name" placeholder="Name"> </div> </div> <div class="form-group"> <label class="col-lg-2 control-label">E-Mail</label> <div class="col-lg-10"> <input type="email" class="form-control" name="visitor_email" placeholder="E-Mail"> </div> </div> <div class="form-group"> <label class="col-lg-2 control-label">Message</label> <div class="col-lg-10"> <textarea class="form-control" rows="8" name="message"></textarea> </div> </div> <div class="form-group"> <div class="col-lg-10 col-lg-offset-2"> <button type="reset" class="btn btn-default">Cancel</button> <button type="submit" name="submit" id="submitbutton" class="btn btn-primary mainButton">Submit</button> </div> </div> </fieldset> </form> </div>
И вот отдельный .php-код. Это находится в другом файле.
<?php if (!isset ($_POST ['submit'])) { //This page should not be accessed directly. Need to submist the form. echo "error, you need to submit the form!"; } $name = $_POST ['name']; $visitor_email = $_POST ['visitor_email']; $message = $_POST ['message']; //Validation if(empty ($name)||empty ($visitor_email)) { echo "Name and email are mandatory!"; exit(); } else { echo "Submit Successful!"; header("Location: index.html"); exit(); } $email_from = 'info@joshkelley.video'; //<== Put your email address here $email_subject = "New Form Submission"; $email_body = "You have received a new message from the user $name.\n". "E-mail Address: $visitor_email\n". "Here is the message: $message\n". $to = "brandontetrick@gmail.com"; // <==Put your email address here $headers = "From: $email_from \r\n"; //Send the email! mail($to,$email_subject,$email_body,$headers); //done ?>
Любая помощь или советы будут здоровыми. Благодаря!
Функция header () не будет работать, если вы выведете ЧЕРЕЗ любое пространство перед ним. Но вы можете сохранить сообщение о своем успехе для переменной сеанса.
Во-первых, вам придется переименовать index.html в index.php
Добавьте функцию session_start () в самую верхнюю часть (опять же, никогда не перетаскивайте что-либо раньше) в index.php и в скрипте формы (где бы вы ни работали с переменными $ _SESSION):
<?php session_start(); //....
Затем измените
echo "Submit Successful!"; header("Location: index.html"); exit();
для этого
$_SESSION['success_msg'] = "Submit Successful!"; header("Location: index.html"); exit();
И в вашем index.php
<?php session_start(); if(isset($_SESSION['success_msg'])) { echo $_SESSION['success_msg']; unset($_SESSION['success_msg']); // unset this after outputting, else it will keep showing }
с<?php session_start(); if(isset($_SESSION['success_msg'])) { echo $_SESSION['success_msg']; unset($_SESSION['success_msg']); // unset this after outputting, else it will keep showing }