使用多年的联系表格已失效

发布于 2024-12-03 10:21:10 字数 15115 浏览 1 评论 0原文

我之前发布过,但有更多信息,所以想再试一次。我正在尝试帮助一位朋友解决他的网页上的联系表单问题,该网页是使用 SiteMan 构建的。他的页面上有一个基本的“联系我”表格和一个“请求报价”表格。该页面是 meadowwoodpedestals.com,托管在 BlueHost 上。这些表格已经有效多年,但我们刚刚发现他没有收到通过这些表格发送的消息。经过测试,我们发现,当单击这些页面中的任何一个页面的提交按钮时,不会显示确认屏幕,而是显示空白屏幕,并且不会发送任何消息。他已经有几个月没有在 SiteMan 编辑器中进行任何更改了。

(1) 我联系楼主寻求支持,回复告诉我错误表明这两个页面的页面代码有问题:

Premature end of script headers: 500.php,referer: http://www.meadowwoodpedestals.com/content/index.php?page=quote

过早脚本标头结束:500.php,引用:http://www.meadowwoodpedestals。 com/content/index.php?page=contact

响应说: 正如您将看到的,问题似乎出在代码本身。您需要让网页设计师或脚本专家检查这两个页面的代码,才能解决这些问题。 (我的注:网页设计师已经失业了)

(2)我在Bluehost论坛(这是一个bluehost网站)中发现了以下内容,我不确定它是否相关?

“在 Bluehost 服务器上,脚本头的过早结束很可能是由于 CPU 配额(或内存?),脚本由于资源限制而被终止。”

(3) 我查看了联系表单的页面代码,它使用 method="post" action="/cgi-bin/frmctact.php" 并且所有基本 html 看起来都不错 - 我不知道 javascript,所以我我对此不确定(我以前从未见过那个小十字符号?):(

<script type="text/javascript" language="javascript">  
function m_sfcon (u) {  
pre = "mail";  
url = pre + "to:" + u;  
document.location.href = url + "@meadowwoodpedestals.com";  
}†</script>  

4)我查看了报价表单的页面代码,它使用 method="post" action="/cgi-bin/mail/ mail.php”,并且根本没有脚本标签那个页面。

(5)在不发布大量代码的情况下(因为我不确定什么是有用的),这是我的想法,请让我知道这是否是一个合理的轨道:

  • 由于有两个不同的页面有相同的错误,我'我认为 quote.php 或 contact.php 中都不是真正的问题
  • 这两种表单使用不同的操作,所以我猜测它不是 mail.php 或 frmctact.php
  • ==>两个页面之间肯定有一些共同点,但它是什么呢?也许是index.php?

(6) 我查看了index.php,当我单击开始的 php 标签时,它以该语句第六行中的一个标签关闭(“si”之前的 ?>):(

$adress = "http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']);

include("data/page_header.php");
switch ($do) {
case "prevphp":
    if ($Siteman->mlevel >= 4) {
        echo preg_replace("'<\?php.*?\?>'si","",stripslashes($_POST["content"]));
    }
    break 1;

case "default":
    if ($info[2] == 1 || $Siteman->mlevel >= $info[2]) {
        include_once($content);
        if ($Siteman->mlevel < 5) {
            if ($page == "index") {
                if (substr_count($_SERVER["HTTP_REFERER"],$adress) == 0) {
                    echo "<script language=\"Javascript\" type=\"text/javascript\">
                    var res = screen.width.toString() + 'x' + screen.height.toString();
                    var referer = '" . urlencode($_SERVER["HTTP_REFERER"]) . "';
                    document.write('<img width=\"1\" height=\"1\" src=\"stats.php?new=1&amp;res=' + res +      '&amp;referer=' + referer + '\" id=\"stat\" name=\"stat\" />');
                    </script>";
                }
            }
        }
    }
    break 1;
}
include("data/page_footer.php");

?>

我不知道知道为什么此页面的地址拼写错误...)

完整代码发布到此区域吗?

我应该将 cgi-bin/mail/mail.php 和 cgi-bin/frmctact.php 中的 艾比

编辑 - 这是完整的 frmctact.php - 我删除了一些空行和重复警告

    <?
    // ##########################################################################
    //
    //  DynaForm v1.4 - Created by the Webligo Group
    //                  http://www.webligo.com
    //
    //--> I deleted license text here

    // ###########################################################################
    // #### CONFIGURE FROM: ADDRESS ##############################################

    // If you would like to specify the From: address of emails sent by DynaForm,
    // enter it between the double quotes below. If you leave this blank, the
    // server will assign the default email address.

    $from_address = "[email protected]";


    // ###########################################################################
    // #### ACTIVATE REQUIRED FIELDS? ############################################

    //
    // If you would like to make some fields of your form required, change "no" to
    // "yes" below.

    $required_on = "yes";

    // If you have set $required_on to "yes" above, you can make fields required
    // by beginning their name with "r_". For example, if you want to require
    // a user to enter their name, use the following HTML:
    //
    // <input type='text' name='r_Name'>
    //
    // If a user fails to enter a required field, they will be taken to a page
    // where a message such as "You have not completed all the required fields."
    // will be displayed. Please specify the URL to this file below:

    $required_errorpage = "/content/index.php?page=formerror";

    // ###########################################################################

    // #### OVERRIDE REQUIRED VARIABLES? #########################################

    //NOTE: THIS WILL NOT
    // AFFECT YOUR 'TURN ON REQUIRED FIELDS?' SECTION SETTINGS ABOVE.
    //
    // If you would like to override the three required variables in
    // order to hide your email address, email subject, and thank you page
    // URL from your email form, change "no" to "yes" below.

    $override = "yes";

    // If override is set to "yes", the hidden variables on your HTML
    // email form named "rec_mailto", "rec_subject", and "rec_thanks" will be
    // overridden and can therefore be removed from the form.

    // If you have set override to "yes" above, you must specify new values for
    // each of these variables below.

    // Enter the email address(es) to send the email to.
    $incoming_mailto = "[email protected]";

    // Enter the email subject.
    $incoming_subject = "Website form";

    // Enter the thank you page URL.
    $incoming_thanks = "/content/index.php?page=formthanks";

    // ###########################################################################

    // #### BAN IP ADDRESSES? ####################################################
    //
    // If you would like to ban certain IP addresses from submitting your form,
    // change "no" to "yes" below.

    $ban_ip_on = "no";

    // If you have set $ban_ip_on to "yes" above, please enter a list of the
    // IP addresses you would like to ban, seperated only by commas.
    // An example has been provided below:

    $ban_ip_list = "111.222.33.55,11.33.777.99";

    // ###########################################################################

    // #### ACTIVATE DOMAIN SECURITY? ############################################

    //
    // This setting, when set to "yes" (default), will check to make sure other
    // people are not submitting data to your dynaform.php file from their
    // external domains. This means that if your domain name is "www.mysite.com",
    // only forms on "www.mysite.com" will be able to use this dynaform.php.
    // IF YOU ARE RECEIVING ERRORS SUCH AS "INVALID DOMAIN" FOR NO REASON, PLEASE
    // CHANGE "yes" TO "no" BELOW.

    $secure_domain_on = "no";

    // ###########################################################################

    // #### ACTIVATE AUTO-RESPONSE? ##############################################
    //
    //
    // This setting, when set to "yes", will make DynaForm automatically reply to
    // the user who submitted your form with an email message. If you would like
    // to use this feature, change "no" to "yes" below.

    $autorespond_on = "no";

    // If you have set $autorespond_on to "yes" above, you must specify a subject,
    // from-address, and message to include in the auto-response email.

    // The following setting is the subject of the auto-response email:
    $autorespond_subject = "Your Form Submission";

    // The following setting is the from-address of the auto-respond email:
    $autorespond_from = "[email protected]";

    // The following setting is the message of your auto-response email:
    $autorespond_contents = "Your submission from our website has been received. Thank you!";

    // DynaForm also needs to know how to retrieve the user's email address.
    // You must specify the name of the field into which the user will enter
    // their email address. For example, if your email form contains an input
    // field like "<input type='text' name='Email'>" you would set the
    // following setting to "Email".
    $autorespond_mailto_field = "Email";

    // ###########################################################################


    // MAKE SURE DYNAFORM IS NOT BEING LOADED FROM THE URL
    if($HTTP_SERVER_VARS['REQUEST_METHOD'] == "GET") {
    echo "
    <html>
    <head><title>Webligo PHP DynaForm is installed correctly.</title></head>
    <body>
    <font style='font-family: verdana, arial; font-size: 9pt;'>
    <b>DynaForm is installed correctly.</b></font><br>
    <font style='font-family: verdana, arial; font-size: 8pt;'>
    DynaForm Easy PHP Form Mailer was created by <a href='http://www.webligo.com'>Webligo Developments</a>.
    </font>
    </body></html>
    ";
    exit();
    }

    // SET VARIABLES
    $incoming_fields = array_keys($HTTP_POST_VARS);
    $incoming_values = array_values($HTTP_POST_VARS);

    if($override == "no") {
    $incoming_mailto = @$HTTP_POST_VARS['rec_mailto'];
    $incoming_subject = @$HTTP_POST_VARS['rec_subject'];
    $incoming_thanks = @$HTTP_POST_VARS['rec_thanks'];
    }

    $incoming_mailto_cc = @$HTTP_POST_VARS['opt_mailto_cc'];
    $incoming_mailto_bcc = @$HTTP_POST_VARS['opt_mailto_bcc'];
    $form_url = @$HTTP_REFERER;

    // MAKE SURE DYNAFORM IS BEING RUN FROM THE RIGHT DOMAIN
    if($secure_domain_on == "yes") {
    $form_url_array = parse_url($form_url);
    $form_domain = $form_url_array[host];
    if($form_domain != $HTTP_SERVER_VARS[HTTP_HOST]) {
    echo "<h2>DynaForm Error - Invalid Domain</h2>
    You have accessed DynaForm from an external domain - this is not allowed.<br>
    You may only submit forms to a DynaForm file that exists on the same domain name.<br>
    If you believe to be receiving this message in error, please refer to your readme.txt file.
    <br><br>";
    $error = "yes";
    }
    }

    // CHECK IF MAILTO IS SET
    if($incoming_mailto == "") {
    echo "<h2>DynaForm Error - Missing Field</h2>
    Your form located at <a href='$form_url'>$form_url</a> does not work because you forgot to include
    the required \"<b>rec_mailto</b>\" field within the form. This field specifies who the email will
    be sent to.
    <br><br>
    This should look like:<br>
    &#060;input type=\"hidden\" name=\"rec_mailto\" value=\"[email protected]\"&#062;
    <br><br>
    If you are still confused, please refer to the readme.txt for more information and examples.<br><br><br><br>
    ";
    $error = "yes";
    }

    // CHECK IF SUBJECT IS SET
    if($incoming_subject == "") {
    echo "<h2>DynaForm Error - Missing Field</h2>
    Your form located at <a href='$form_url'>$form_url</a> does not work because you forgot to include
    the required \"<b>rec_subject</b>\" field within the form. This field specifies the subject of
    the email that will be sent.
    <br><br>
    This should look like:<br>
    &#060;input type=\"hidden\" name=\"rec_subject\" value=\"New DynaForm Email\"&#062;
    <br><br>
    If you are still confused, please refer to the readme.txt for more information and examples.<br><br><br><br>
    ";
    $error = "yes";
    }

    // CHECK IF THANKS IS SET
    if($incoming_thanks == "") {
    echo "<h2>DynaForm Error - Missing Field</h2>
    Your form located at <a href='$form_url'>$form_url</a> does not work because you forgot to include
    the required \"<b>rec_thanks</b>\" field within the form. This field specifies what page the user
    will be taken to after they submit the form.
    <br><br>
    This should look like:<br>
    &#060;input type=\"hidden\" name=\"rec_thanks\" value=\"thanks.html\"&#062;
    <br><br>
    If you are still confused, please refer to the readme.txt for more information and examples.<br><br><br><br>
    ";
    $error = "yes";
    }

    // CHECK IF IP ADDRESS IS BANNED
    if($ban_ip_on == "yes") {

    if(strstr($ban_ip_list, $HTTP_SERVER_VARS[REMOTE_ADDR])) {
    echo "<h2>DynaForm Error - Banned IP</h2>
    You cannot use this form because your IP address has been banned by the administrator.<br>
    ";
    $error = "yes";
    }
    }


    if($error == "yes") {
    exit();
    }

    // SET EMAIL INTRODUCTION
    $message = "This email was received from your DynaForm located at $form_url \n\n";

    // LOAD EMAIL CONTENTS 
    for ($i = 0; $i < count($incoming_fields); $i++) { 
    if($incoming_fields[$i] != "rec_mailto") {
    if($incoming_fields[$i] != "rec_subject") {
    if($incoming_fields[$i] != "rec_thanks") {
    if($incoming_fields[$i] != "opt_mailto_cc") {
    if($incoming_fields[$i] != "opt_mailto_bcc") {

    // CHECK FOR REQUIRED FIELDS IF ACTIVATED
    if($required_on == "yes") {
    $sub = substr($incoming_fields[$i], 0, 2);
    if($sub == "r_") {
    if($incoming_values[$i] == "" OR !isset($incoming_values[$i]) OR $incoming_values[$i] == " ") {
    header("Location: $required_errorpage");
    exit();
    }}}

    // ADD FIELD TO OUTGOING MESSAGE
    $message .= "$incoming_fields[$i]:\n$incoming_values[$i]\n\n";
    }}}}}}

    // SET EMAIL FOOTER
    $message .= "\n\nEnd";

    // CLEAR HEADERS
    $headers = "";

    // ADD FROM ADDRESS
    if($from_address != "") {
    $headers .= "From: $from_address\r\n";
    }

    // CHECK FOR CC OR BCC
    if($incoming_mailto_cc != "") {
    $headers .= "Cc: $incoming_mailto_cc\r\n";
    }
    if($incoming_mailto_bcc != "") {
    $headers .= "Bcc: $incoming_mailto_bcc\r\n";
    }

    // SEND EMAIL
    mail($incoming_mailto, $incoming_subject, $message, $headers);

    // SEND AUTO-RESPONSE IF ACTIVATED
    if($autorespond_on == "yes") {
    $autorespond_mailto = @$HTTP_POST_VARS[$autorespond_mailto_field];
    $autorespond_headers = "From: $autorespond_from";
    mail($autorespond_mailto, $autorespond_subject, $autorespond_contents, $autorespond_headers);
    }

    // FORWARD TO THANK YOU PAGE
    header("Location: $incoming_thanks"); 


    ?>

I posted earlier, but have more information so would like to try again. I am trying to help a friend sort out a problem with the contact forms on his web page, which is built using SiteMan. He has a basic 'contact me' form and a 'request a quote' form on his page. The page is meadowwoodpedestals.com and it is hosted on BlueHost. These forms have worked for years, but we have just discovered that he is not receiving messages being sent via these forms. Upon testing, we found that when the submit button is clicked for either of these pages, instead of getting a confirmation screen, a blank screen is displayed and no message is sent. It has been months since he made any changes in the SiteMan editor.

(1) I contacted the host for support, and the reply told me that the errors indicated a problem with the page code for these two pages:

Premature end of script headers: 500.php, referer: http://www.meadowwoodpedestals.com/content/index.php?page=quote

Premature end of script headers: 500.php, referer: http://www.meadowwoodpedestals.com/content/index.php?page=contact

The response said: As you will see, it appears that the issue is with the code itself. You will need to have your web designer, or a script specialist, look over the code for the two pages, in order to resolve these issues. (My Note: the web designer is out of business)

(2) I found the following in the Bluehost forums (this is a bluehost site), I'm not sure if it is relevant?

"The premature end of script header, on a Bluehost server, is more than likely due to CPU quota (or memory?), the script was killed due to resource limitations."

(3) I looked at the page code for the contact form, which uses method="post" action="/cgi-bin/frmctact.php" and all of the basic html looked good - I don't know javascript so I am not sure about this (I've never seen that little cross symbol before?):

<script type="text/javascript" language="javascript">  
function m_sfcon (u) {  
pre = "mail";  
url = pre + "to:" + u;  
document.location.href = url + "@meadowwoodpedestals.com";  
}†</script>  

(4) I looked at the page code for the quote form, which uses method="post" action="/cgi-bin/mail/mail.php", and there are no script tags at all on that page.

(5) Without posting reams of code (as I'm not sure just what is useful), here is my thinking, please let me know if this is a reasonable track:

  • Since there are two different pages with the same error, I'm thinking it is not really a problem in either quote.php or contact.php
  • The two forms use different actions, so I'm guessing it is not mail.php or frmctact.php
  • ==> There must be something common between the two pages, but what is it?? maybe index.php?

(6) I looked at index.php, and when I clicked on the opening php tag it closed with a tag in the sixth line of this statement (the ?> just prior to 'si",):

$adress = "http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']);

include("data/page_header.php");
switch ($do) {
case "prevphp":
    if ($Siteman->mlevel >= 4) {
        echo preg_replace("'<\?php.*?\?>'si","",stripslashes($_POST["content"]));
    }
    break 1;

case "default":
    if ($info[2] == 1 || $Siteman->mlevel >= $info[2]) {
        include_once($content);
        if ($Siteman->mlevel < 5) {
            if ($page == "index") {
                if (substr_count($_SERVER["HTTP_REFERER"],$adress) == 0) {
                    echo "<script language=\"Javascript\" type=\"text/javascript\">
                    var res = screen.width.toString() + 'x' + screen.height.toString();
                    var referer = '" . urlencode($_SERVER["HTTP_REFERER"]) . "';
                    document.write('<img width=\"1\" height=\"1\" src=\"stats.php?new=1&res=' + res +      '&referer=' + referer + '\" id=\"stat\" name=\"stat\" />');
                    </script>";
                }
            }
        }
    }
    break 1;
}
include("data/page_footer.php");

?>

(I don't know why this page works with address misspelled...)

Should I post the full code in cgi-bin/mail/mail.php and cgi-bin/frmctact.php to this area?

My sincere thanks for any / all help!
Abby

EDIT - Here is full frmctact.php - I deleted some blank lines and repeated warnings

    <?
    // ##########################################################################
    //
    //  DynaForm v1.4 - Created by the Webligo Group
    //                  http://www.webligo.com
    //
    //--> I deleted license text here

    // ###########################################################################
    // #### CONFIGURE FROM: ADDRESS ##############################################

    // If you would like to specify the From: address of emails sent by DynaForm,
    // enter it between the double quotes below. If you leave this blank, the
    // server will assign the default email address.

    $from_address = "[email protected]";


    // ###########################################################################
    // #### ACTIVATE REQUIRED FIELDS? ############################################

    //
    // If you would like to make some fields of your form required, change "no" to
    // "yes" below.

    $required_on = "yes";

    // If you have set $required_on to "yes" above, you can make fields required
    // by beginning their name with "r_". For example, if you want to require
    // a user to enter their name, use the following HTML:
    //
    // <input type='text' name='r_Name'>
    //
    // If a user fails to enter a required field, they will be taken to a page
    // where a message such as "You have not completed all the required fields."
    // will be displayed. Please specify the URL to this file below:

    $required_errorpage = "/content/index.php?page=formerror";

    // ###########################################################################

    // #### OVERRIDE REQUIRED VARIABLES? #########################################

    //NOTE: THIS WILL NOT
    // AFFECT YOUR 'TURN ON REQUIRED FIELDS?' SECTION SETTINGS ABOVE.
    //
    // If you would like to override the three required variables in
    // order to hide your email address, email subject, and thank you page
    // URL from your email form, change "no" to "yes" below.

    $override = "yes";

    // If override is set to "yes", the hidden variables on your HTML
    // email form named "rec_mailto", "rec_subject", and "rec_thanks" will be
    // overridden and can therefore be removed from the form.

    // If you have set override to "yes" above, you must specify new values for
    // each of these variables below.

    // Enter the email address(es) to send the email to.
    $incoming_mailto = "[email protected]";

    // Enter the email subject.
    $incoming_subject = "Website form";

    // Enter the thank you page URL.
    $incoming_thanks = "/content/index.php?page=formthanks";

    // ###########################################################################

    // #### BAN IP ADDRESSES? ####################################################
    //
    // If you would like to ban certain IP addresses from submitting your form,
    // change "no" to "yes" below.

    $ban_ip_on = "no";

    // If you have set $ban_ip_on to "yes" above, please enter a list of the
    // IP addresses you would like to ban, seperated only by commas.
    // An example has been provided below:

    $ban_ip_list = "111.222.33.55,11.33.777.99";

    // ###########################################################################

    // #### ACTIVATE DOMAIN SECURITY? ############################################

    //
    // This setting, when set to "yes" (default), will check to make sure other
    // people are not submitting data to your dynaform.php file from their
    // external domains. This means that if your domain name is "www.mysite.com",
    // only forms on "www.mysite.com" will be able to use this dynaform.php.
    // IF YOU ARE RECEIVING ERRORS SUCH AS "INVALID DOMAIN" FOR NO REASON, PLEASE
    // CHANGE "yes" TO "no" BELOW.

    $secure_domain_on = "no";

    // ###########################################################################

    // #### ACTIVATE AUTO-RESPONSE? ##############################################
    //
    //
    // This setting, when set to "yes", will make DynaForm automatically reply to
    // the user who submitted your form with an email message. If you would like
    // to use this feature, change "no" to "yes" below.

    $autorespond_on = "no";

    // If you have set $autorespond_on to "yes" above, you must specify a subject,
    // from-address, and message to include in the auto-response email.

    // The following setting is the subject of the auto-response email:
    $autorespond_subject = "Your Form Submission";

    // The following setting is the from-address of the auto-respond email:
    $autorespond_from = "[email protected]";

    // The following setting is the message of your auto-response email:
    $autorespond_contents = "Your submission from our website has been received. Thank you!";

    // DynaForm also needs to know how to retrieve the user's email address.
    // You must specify the name of the field into which the user will enter
    // their email address. For example, if your email form contains an input
    // field like "<input type='text' name='Email'>" you would set the
    // following setting to "Email".
    $autorespond_mailto_field = "Email";

    // ###########################################################################


    // MAKE SURE DYNAFORM IS NOT BEING LOADED FROM THE URL
    if($HTTP_SERVER_VARS['REQUEST_METHOD'] == "GET") {
    echo "
    <html>
    <head><title>Webligo PHP DynaForm is installed correctly.</title></head>
    <body>
    <font style='font-family: verdana, arial; font-size: 9pt;'>
    <b>DynaForm is installed correctly.</b></font><br>
    <font style='font-family: verdana, arial; font-size: 8pt;'>
    DynaForm Easy PHP Form Mailer was created by <a href='http://www.webligo.com'>Webligo Developments</a>.
    </font>
    </body></html>
    ";
    exit();
    }

    // SET VARIABLES
    $incoming_fields = array_keys($HTTP_POST_VARS);
    $incoming_values = array_values($HTTP_POST_VARS);

    if($override == "no") {
    $incoming_mailto = @$HTTP_POST_VARS['rec_mailto'];
    $incoming_subject = @$HTTP_POST_VARS['rec_subject'];
    $incoming_thanks = @$HTTP_POST_VARS['rec_thanks'];
    }

    $incoming_mailto_cc = @$HTTP_POST_VARS['opt_mailto_cc'];
    $incoming_mailto_bcc = @$HTTP_POST_VARS['opt_mailto_bcc'];
    $form_url = @$HTTP_REFERER;

    // MAKE SURE DYNAFORM IS BEING RUN FROM THE RIGHT DOMAIN
    if($secure_domain_on == "yes") {
    $form_url_array = parse_url($form_url);
    $form_domain = $form_url_array[host];
    if($form_domain != $HTTP_SERVER_VARS[HTTP_HOST]) {
    echo "<h2>DynaForm Error - Invalid Domain</h2>
    You have accessed DynaForm from an external domain - this is not allowed.<br>
    You may only submit forms to a DynaForm file that exists on the same domain name.<br>
    If you believe to be receiving this message in error, please refer to your readme.txt file.
    <br><br>";
    $error = "yes";
    }
    }

    // CHECK IF MAILTO IS SET
    if($incoming_mailto == "") {
    echo "<h2>DynaForm Error - Missing Field</h2>
    Your form located at <a href='$form_url'>$form_url</a> does not work because you forgot to include
    the required \"<b>rec_mailto</b>\" field within the form. This field specifies who the email will
    be sent to.
    <br><br>
    This should look like:<br>
    <input type=\"hidden\" name=\"rec_mailto\" value=\"[email protected]\">
    <br><br>
    If you are still confused, please refer to the readme.txt for more information and examples.<br><br><br><br>
    ";
    $error = "yes";
    }

    // CHECK IF SUBJECT IS SET
    if($incoming_subject == "") {
    echo "<h2>DynaForm Error - Missing Field</h2>
    Your form located at <a href='$form_url'>$form_url</a> does not work because you forgot to include
    the required \"<b>rec_subject</b>\" field within the form. This field specifies the subject of
    the email that will be sent.
    <br><br>
    This should look like:<br>
    <input type=\"hidden\" name=\"rec_subject\" value=\"New DynaForm Email\">
    <br><br>
    If you are still confused, please refer to the readme.txt for more information and examples.<br><br><br><br>
    ";
    $error = "yes";
    }

    // CHECK IF THANKS IS SET
    if($incoming_thanks == "") {
    echo "<h2>DynaForm Error - Missing Field</h2>
    Your form located at <a href='$form_url'>$form_url</a> does not work because you forgot to include
    the required \"<b>rec_thanks</b>\" field within the form. This field specifies what page the user
    will be taken to after they submit the form.
    <br><br>
    This should look like:<br>
    <input type=\"hidden\" name=\"rec_thanks\" value=\"thanks.html\">
    <br><br>
    If you are still confused, please refer to the readme.txt for more information and examples.<br><br><br><br>
    ";
    $error = "yes";
    }

    // CHECK IF IP ADDRESS IS BANNED
    if($ban_ip_on == "yes") {

    if(strstr($ban_ip_list, $HTTP_SERVER_VARS[REMOTE_ADDR])) {
    echo "<h2>DynaForm Error - Banned IP</h2>
    You cannot use this form because your IP address has been banned by the administrator.<br>
    ";
    $error = "yes";
    }
    }


    if($error == "yes") {
    exit();
    }

    // SET EMAIL INTRODUCTION
    $message = "This email was received from your DynaForm located at $form_url \n\n";

    // LOAD EMAIL CONTENTS 
    for ($i = 0; $i < count($incoming_fields); $i++) { 
    if($incoming_fields[$i] != "rec_mailto") {
    if($incoming_fields[$i] != "rec_subject") {
    if($incoming_fields[$i] != "rec_thanks") {
    if($incoming_fields[$i] != "opt_mailto_cc") {
    if($incoming_fields[$i] != "opt_mailto_bcc") {

    // CHECK FOR REQUIRED FIELDS IF ACTIVATED
    if($required_on == "yes") {
    $sub = substr($incoming_fields[$i], 0, 2);
    if($sub == "r_") {
    if($incoming_values[$i] == "" OR !isset($incoming_values[$i]) OR $incoming_values[$i] == " ") {
    header("Location: $required_errorpage");
    exit();
    }}}

    // ADD FIELD TO OUTGOING MESSAGE
    $message .= "$incoming_fields[$i]:\n$incoming_values[$i]\n\n";
    }}}}}}

    // SET EMAIL FOOTER
    $message .= "\n\nEnd";

    // CLEAR HEADERS
    $headers = "";

    // ADD FROM ADDRESS
    if($from_address != "") {
    $headers .= "From: $from_address\r\n";
    }

    // CHECK FOR CC OR BCC
    if($incoming_mailto_cc != "") {
    $headers .= "Cc: $incoming_mailto_cc\r\n";
    }
    if($incoming_mailto_bcc != "") {
    $headers .= "Bcc: $incoming_mailto_bcc\r\n";
    }

    // SEND EMAIL
    mail($incoming_mailto, $incoming_subject, $message, $headers);

    // SEND AUTO-RESPONSE IF ACTIVATED
    if($autorespond_on == "yes") {
    $autorespond_mailto = @$HTTP_POST_VARS[$autorespond_mailto_field];
    $autorespond_headers = "From: $autorespond_from";
    mail($autorespond_mailto, $autorespond_subject, $autorespond_contents, $autorespond_headers);
    }

    // FORWARD TO THANK YOU PAGE
    header("Location: $incoming_thanks"); 


    ?>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏花。依旧 2024-12-10 10:21:10

500 错误意味着 PHP 正在崩溃。您需要查看 apache 错误日志(bluehost 在 cpanel、IIRC 中有一个图标),希望能看到一些 PHP 错误消息。

[人们说]“该脚本由于资源限制而被终止。”

我认为不是这个,因为500错误是在提交表单后立即发生的。

The 500 errors mean PHP is crashing. You need to look in the apache error log (bluehost have an icon for this in the cpanel, IIRC), and hopefully will see some PHP error message.

[people say] "the script was killed due to resource limitations."

I don't think it is this, because the 500 error happens immediately after submitting the form.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文