0

eForm スニペットにいくつか問題があります。フォームが送信されるたびに、内部サーバー エラー 500 が発生します。面白いことに、レポート メールは正常に送信されますが、フォームが送信された後に「ありがとう」ページに到達できません。エラーログは次のとおりです。

[Tue Jan 11 10:23:07 2011] [error] [client 80.175.159.225] malformed header from script. Bad header=/home/sites/annuitiesadvice.co: index.php, referer: http://www.annuitiesadvice.co.uk/

これが私のフォームチャンクです:

<form method="post" action="[~[*id*]~]" name="contactform" onSubmit="javascript:populateHiddenFields(this);" id="rc_form">

(フォーム アクションを、フォーム チャンクが含まれる about-us.html などの静的ページに設定することも試みました)。

スニペット呼び出しは次のとおりです。

[!eForm?
&formid=`rc_form`
&to=`myemail@blabla.com, myemail2@blabla.com, myemail3@blabla.com`
&subject=`Quick Annuity Quote Submitted`
&tpl=`rc_form`
&report=`rc_form_report`
&gotoid=`55`
&eFormOnBeforeFormMerge=`ref`
&eFormOnBeforeMailSent=`form_user_ok`
!]

MODx 1.02 Apache2

何が原因でしょうか?

4

1 に答える 1

0

eForm 呼び出しは、イベント eFormOnBeforeFormMerge および eFormOnBeforeMailSent を起動し、これらのイベントに対して関数 ref および form_user_ok をそれぞれ (一種の eForm イベント ハンドラーとして) 呼び出します。カスタム処理のためにこれらの関数を呼び出す必要があると思います(指定しませんでした)。eFormOnBeforeFormMerge および eFormOnBeforeMailSent パラメータを省略して、サーバー エラーを直接排除するだけではない場合。

これらのイベントにカスタム処理が必要な場合: これらの呼び出しが問題の原因である可能性が高いため、これらの呼び出しを注意深く追跡します。これらの関数は実際に存在し、eForm 呼び出しのに含まれていますか? PHP は整形式ですか?

通常、通常は何か説明的なテキストを含む php エラーが発生しますが、eForm イベント ハンドラーは常にサーバー エラー 500 を引き起こします。そのため、構文エラーやインクルードの失敗、その他の php エラーの原因がないかどうかを確認してください。

2 つの関数を事前に提供して、eForm イベント ハンドラとして呼び出すことができるようにします。次のように両方を持つスニペットを定義できます。

// snippet name: myEformFunctions

function ref()
{
    // do your thing here
    return; // important, never return false can trigger server error
}

function form_user_ok()
{
    // do your thing here
    return; // important, never return false can trigger server error
}

次に、eForm 呼び出しの前に次を追加します。

[!myEformFunctions!]
于 2011-12-08T14:50:25.283 に答える