【问题标题】:How can I add a success message to my mail form code?如何在我的邮件表单代码中添加成功消息?
【发布时间】:2021-05-03 12:32:48
【问题描述】:

我尝试使用 echo,但该 echo 区域出了点问题。 我收到了语法错误,并且在echo "Try again." 之后出现了一个错误提示意外标记

<?php

add_action("admin_menu", "addMenu");
function addMenu()
{
  add_menu_page("smail", "smail", 4, "smail", "sMail" );
}

function sMail()
{
?>
  <h2> send mail</h2>




        <form method="post" action="">      

<?php
if(isset($_POST['submit'])){
$to = sanitize_email( $_POST['email_address'] );
$subject = sanitize_text_field( $_POST['subject'] );
$txt =  esc_textarea( $_POST['text'] );
$from = sanitize_email( $_POST['frommail'] );
$headers = "From:" . $from ;

if (mail($to,$subject,$txt,$headers)){
   echo "Mail sent successfully.";
} else{
   echo "Try again.";
}

}
?>
            
        <label for="frommail">From </label>
            <input id="frommail" name="frommail" type="text" maxlength="255" />
        <label for="email_address">To </label>
        
            <input id="email_address" name="email_address" type="text" maxlength="255"/> 
        
        <label for="subject">Subject </label>
        
            <input id="subject" name="subject" type="text" maxlength="255" /> 
        
    
        <label for="text">Text </label>
        
            <textarea id="text" name="text" row="10"></textarea>
        
          <input value="submit" id="submit" name="submit" type="submit">
        
        </form> 



<?php
}
?>

【问题讨论】:

    标签: php wordpress forms plugins phpmailer


    【解决方案1】:

    请不要像sMail 函数那样定义函数。 如果要打印 html 内容,请改用 echo。

    您还错过了文件末尾的}

    还有:

    • 如果您想将当前脚本用于您的操作路径,只需省略操作标记即可。

    这是您更正后的代码:

    <?php
    add_action("admin_menu", "addMenu");
    function addMenu()
    {
        add_menu_page("smail", "smail", 4, "smail", "sMail");
    }
    
    function sMail()
    {
    
        echo "  <h2> send mail</h2> ";
    
        echo " <form method='post' action=''>       ";
    
        if (isset($_POST['submit']))
        {
            $to = sanitize_email($_POST['email_address']);
            $subject = sanitize_text_field($_POST['subject']);
            $txt = esc_textarea($_POST['text']);
            $from = sanitize_email($_POST['frommail']);
            $headers = "From:" . $from;
    
            if (mail($to, $subject, $txt, $headers))
            {
                echo "Mail sent successfully.";
            }
            else
            {
                echo "Try again.";
            }
    
        }
    }
    ?>
    
    

    【讨论】:

    • 我想让你知道这是我正在开发的 wordpress 插件的一部分。
    • 抱歉,您忘记突出显示了。无论如何,你能解决语法错误吗?
    猜你喜欢
    • 2020-10-01
    • 1970-01-01
    • 2021-05-09
    • 2022-01-15
    • 1970-01-01
    • 2013-11-30
    • 2016-01-22
    • 2015-05-20
    • 2012-05-10
    相关资源
    最近更新 更多