如何使用PHP

时间:2017-03-04 05:22:31

标签: php html

我在html中有一个联系我们页面,其中包含一个表单,用户可以使用该表单发送消息。我想用PHP邮件程序函数发送消息。但问题是在我发送消息后我想重定向到带有消息的页面。但不是加载它在新页面中显示响应。如何将用户再次发送到同一页面?

这是我的 Contact.html

 <?php
            if (isset($arrResult)) {
                    if($arrResult['response'] == 'success') {
            ?>
            <div class="alert alert-success" id="contactSuccess">
                <strong>Success!</strong> Your message has been sent to us.
            </div>
                <?php
                    } else if($arrResult['response'] == 'error') {
                ?>
            <div class="alert alert-danger" id="contactError">
                <strong>Error!</strong> There was an error sending your message. (<?php echo $arrResult['error'];?>)
            </div>

            <?php
                }
                }
            ?>

                <h2 class="mb-sm mt-sm"><strong>Contact</strong> Us</h2>
                <form id="contactForm" action="php/contact-form.php" method="POST">
                    <div class="row">
                        <div class="form-group">
                            <div class="col-md-6">
                                <label>Your name *</label>
                                <input type="text" value="" data-msg-required="Please enter your name." maxlength="100" class="form-control" name="name" id="name" required>
                            </div>
                            <div class="col-md-6">
                                <label>Your email address *</label>
                                <input type="email" value="" data-msg-required="Please enter your email address." data-msg-email="Please enter a valid email address." maxlength="100" class="form-control" name="email" id="email" required>
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="form-group">
                            <div class="col-md-12">
                                <label>Subject</label>
                                <input type="text" value="" data-msg-required="Please enter the subject." maxlength="100" class="form-control" name="subject" id="subject" required>
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="form-group">
                            <div class="col-md-12">
                                <label>Message *</label>
                                <textarea maxlength="5000" data-msg-required="Please enter your message." rows="10" class="form-control" name="message" id="message" required></textarea>
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-12">
                            <input type="submit" value="Send Message" onclick="myFunction()"class="btn btn-primary btn-lg mb-xlg" data-loading-text="Loading...">
                        </div>
                    </div>
                </form>
            </div>

这是 contact-form.php

<?php
session_cache_limiter('nocache');
header('Expires: ' . gmdate('r', 0));

header('Content-type: application/json');

require_once('php-mailer/PHPMailerAutoload.php');

$email = 'myemail@yahoo.co';

$subject = $_POST['subject'];

$fields = array(
    0 => array(
        'text' => 'Name',
        'val' => $_POST['name']
    ),
    1 => array(
        'text' => 'Email address',
        'val' => $_POST['email']
    ),
    2 => array(
        'text' => 'Message',
        'val' => $_POST['message']
    )
);

$message = '';

foreach($fields as $field) {
    $message .= $field['text'].": " . htmlspecialchars($field['val'], ENT_QUOTES) . "<br>\n";
}

$mail = new PHPMailer(true);

try {

    $mail->SMTPDebug = $debug;   

    $mail->AddAddress($email);                               
    $mail->SetFrom($email, $_POST['name']);
    $mail->AddReplyTo($_POST['email'], $_POST['name']);

    $mail->IsHTML(true);                                  // Set email format to HTML

    $mail->CharSet = 'UTF-8';

    $mail->Subject = $subject;
    $mail->Body    = $message;

    $mail->Send();
    $arrResult = array ('response'=>'success');

} catch (phpmailerException $e) {
    $arrResult = array ('response'=>'error','errorMessage'=>$e->errorMessage());
} catch (Exception $e) {
    $arrResult = array ('response'=>'error','errorMessage'=>$e->getMessage());
}

if ($debug == 0) {
    echo json_encode($arrResult);
}       

1 个答案:

答案 0 :(得分:1)

使用标题

    header('Location: http://www.example.com/')

Header doc