首页 > 解决方案 > 同一页面/样式上的 PHP 成功消息

问题描述

我是 PHP 新手,但找到了一个 php 联系表单的教程。该表单运行良好,除了“您的电子邮件已成功发送”文本显示在新页面上。

有没有办法让文本显示在同一页面上?

我也不确定如何设置信息样式?

谢谢

<?php


$to = 'zoeharrisondesign@gmail.com';
$subject = 'New Message Recieved!';
$from = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
$name = $_POST['name'];

//check honeypot
    if( !empty( $honeypot ) ) {
        echo 'There was a problem';
    }
 
// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
 
// Create email headers
$headers .= 'From: '.$from."\r\n".
    'Reply-To: '.$from."\r\n" .
    'X-Mailer: PHP/' . phpversion();
 
// Compose a simple HTML email message
$message = "$message \r\n |
                From $name \r\n |               
                Tel: $phone";


 
// Sending email

if(mail($to, $subject, $message, $headers)){
    echo 'Your mail has been sent successfully.';
} else{
    echo 'Unable to send email. Please try again.';
}

?>

HTML

<form role="form" action="action.php" method="post" class="contact-form">   
            
<div class="form-row"><input type="text" id="name" name="name" placeholder="name" required="required"></div>
                        
<div class="form-row"><input type="email" id="email" name="email" placeholder="email" required="required">  </div>
                        
<div class="form-row"><input type="tel" id="phone" name="phone" placeholder="phone"></div>
                        
<div class="form-row"><textarea id="message" name="message" placeholder="message" required="required" style="height:200px"></textarea></div>
                        
<div class="form-row" style="display:none;">
<input type="hidden" name="url" placeholder="URL"></div>
                        
<div class="form-row"><input class="submit" type="submit" value="Send"></div>   
</form>

标签: phphtmlcssforms

解决方案


In top of php code start the session`session_start();`

插入这段代码

if(mail($to, $subject, $message, $headers)){   
$_SESSION['message'] = "Submitted Successfully";
}

将此代码粘贴到要显示消息的 html 中

<?php if (isset($_SESSION['message'])): ?>
      <div class="msg text-success" id="success" >
      <?php 
        echo $_SESSION['message']; 
        unset($_SESSION['message']);
      ?>
      </div>
    <?php endif ?>


推荐阅读