【问题标题】:PHP Form is automatically sending email on loadPHP表单在加载时自动发送电子邮件
【发布时间】:2013-07-16 20:49:52
【问题描述】:

我发誓我在几个小时前就完成了这项工作,但突然间不再只是发送表格并说“感谢您填写表格!”一旦表单被提交,它会在页面加载后执行。

<?php
    if (($_SERVER['REQUEST_METHOD'] == 'POST') && (!empty($_POST['action']))) :
    endif; // form submitted

    if (isset($_POST['years'])) { $years = $_POST['years']; }
    if (isset($_POST['business'])) { $business = $_POST['business']; }
    if (isset($_POST['primary'])) { $primary = $_POST['primary']; }
    if (isset($_POST['improve'])) { $improve = $_POST['improve']; }
    if (isset($_POST['meaning'])) { $meaning = $_POST['meaning']; }
    if (isset($_POST['tagline'])) { $tagline = $_POST['tagline']; }
    if (isset($_POST['services'])) { $services = $_POST['services']; }
    if (isset($_POST['marketingrep'])) { $marketingrep = $_POST['marketingrep']; }
    if (isset($_POST['bestquality'])) { $bestquality = $_POST['bestquality']; }
    if (isset($_POST['qualityimprovement'])) { $qualityimprovement = $_POST['qualityimprovement']; }
    if (isset($_POST['mediateam'])) { $mediateam = $_POST['mediateam']; }
    if (isset($_POST['ifsoexperience'])) { $ifsoexperience = $_POST['ifsoexperience']; }
    if (isset($_POST['outside'])) { $outside = $_POST['outside']; }
    if (isset($_POST['succession'])) { $succession = $_POST['succession']; }
    if (isset($_POST['succession-interest'])) { $successioninterest = $_POST['succession-interest']; }
    if (isset($_POST['staff'])) { $staff = $_POST['staff']; }
    if (isset($_POST['licensed'])) { $licensed = $_POST['licensed']; }
    if (isset($_POST['vision'])) { $vision = $_POST['vision']; }
    if (isset($_POST['marketingplan'])) { $marketingplan = $_POST['marketingplan']; }
    if (isset($_POST['assist'])) { $assist = $_POST['assist']; }

    $formerrors = false;

   if ($years === '' ) :
       $err_years = '<div class="error">Please fill out this field.</div>';
       $formerrors = true;
   endif;

   if ($business === '' ) :
       $err_business = '<div class="error">Please fill out this field.</div>';
       $formerrors = true;
   endif;

   if (!($formerrors)) :
       $to = "fakeemail@gmail.com";
       $subject = "FIG Survey Landing Page Lead";
       $message = "How many years have you been with FIG? \r\n$years\r\n\r\nHow much business did you write in 2012? \r\n$business\r\n\r\nWhat is your primary source of marketing? \r\n$primary\r\n\r\nWhat could FIG improve on in fulfilling your marketing needs?\r\n$improve\r\n\r\nWhat does FIG mean to you? \r\n$meaning\r\n\r\nWhat is FIG's tagline? \r\n$tagline\r\n\r\nWhat services does FIG do for you? \r\n$services\r\n\r\nWho is your marketing rep? \r\n$marketingrep\r\n\r\nWhat is their best quality? \r\n$bestquality\r\n\r\nWhat's the quality they most need to improve on? \r\n$qualityimprovement\r\n\r\nHave you ever spoken with our All Points Media Team? \r\n$mediateam\r\n\r\nIf so, what was your experience? \r\n$ifsoexperience\r\n\r\nWhat do you do outside of work? \r\n$outside\r\n\r\nDo you have a succession plan? \r\n$succession\r\n\r\nAre you interested in implementing one? \r\n$successioninterest\r\n\r\nDo you have a staff? If so how many? Please list roles in office: \r\n$staff\r\n\r\nAre you series 6, 7 or 65 licensed? Please list which one(s). \r\n$licensed\r\n\r\nWhat is your vision? \r\n$vision\r\n\r\nDo you have a marketing plan? \r\n$marketingplan\r\n\r\nWhat else could FIG be doing to assist you with your business? \r\n$assist\r\n\r\n";

       if (mail($to, $subject, $message)) :
        $msg = "Thanks for filling out the survey!";
       else:
           $msg = "Problem sending the message";
        endif;     

   endif;
?>

有什么想法吗?谢谢!

【问题讨论】:

    标签: php forms submit


    【解决方案1】:

    为什么你在打开条件之后有endif; 来检查这是否是传入的POST?我的猜测是,这应该一直移动到这段代码 sn-p 的末尾,并将所有其他条件嵌套在其中。

    我强烈建议使用更广泛使用的括号表示法,以使此类错误更容易被发现(大多数代码编辑器都会执行突出显示匹配括号的代码工作)。

    您可能还应该将各种表单变量的值默认为'' 或当您开始检查类似的东西时

    if ($years === '' )
    

    如果$years由于值未发布而未定义,您将收到有关未定义变量的通知。

    【讨论】:

    • 哇,我也有同样的想法,但这是我直接从我看过的教程中得到的代码......谢谢它的工作!
    猜你喜欢
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多