2011-01-11 4 views
0

Ich habe ein paar Probleme mit dem eForm-Snippet. Jedes Mal, wenn ein Formular gesendet wird, erhalte ich einen Internal Server Error 500. Lustig ist, dass die Bericht-E-Mail gut gesendet wird. Sie können einfach nicht auf eine "Danke" -Seite gelangen, nachdem das Formular gesendet wurde. Hier ist das Fehlerprotokoll:MODx eForm Interner Server Fehler

[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/ 

Hier ist meine Form Brocken:

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

(ich auch habe versucht, nur die Einstellung der Form Aktion auf eine statische Seite, wo die Form Brocken enthalten ist, wie etwa -us.html).

Hier ist das Snippet Aufruf:

[!eForm? 
&formid=`rc_form` 
&to=`[email protected], [email protected], [email protected]` 
&subject=`Quick Annuity Quote Submitted` 
&tpl=`rc_form` 
&report=`rc_form_report` 
&gotoid=`55` 
&eFormOnBeforeFormMerge=`ref` 
&eFormOnBeforeMailSent=`form_user_ok` 
!] 

MODx 1.02

Apache2

Jede Idee, was dieses verursachen könnte?

Antwort

0

Ihr eForm-Aufruf löst die Ereignisse eFormOnBeforeFormMerge und eFormOnBeforeMailSent aus und ruft für diese Ereignisse die Funktionen ref bzw. form_user_ok auf (als eine Art von eForm-Event-Handlern). Ich nehme an, Sie müssen diese Funktion für einige benutzerdefinierte Verarbeitung aufrufen (Sie haben nicht angegeben). Wenn Sie nicht nur die Parameter eFormOnBeforeFormMerge und eFormOnBeforeMailSent weglassen, können Sie den Serverfehler direkt beseitigen.

Wenn für diese Ereignisse eine benutzerdefinierte Verarbeitung erforderlich ist: Führen Sie diese Aufrufe sorgfältig zurück, da sie wahrscheinlich die Ursache Ihres Problems sind. Sind diese Funktionen tatsächlich vorhanden und sind sie vor Ihr eForm-Aufruf enthalten? Ist die PHP gut gebildet?

Beachten Sie, dass in der Regel, wo normalerweise Sie ein PHP-Fehler mit einigen beschreibenden Text bekommen würde, ein eForm Event-Handler immer endet Serverfehler verursacht 500. So sicher auf Syntaxfehler zu Prüfung machen und möglicherweise gescheitert enthält und Irgendwelche anderen Ursachen für PHP-Fehler.

Um die 2 Funktionen im Voraus bereitzustellen, damit sie als eForm-Ereignishandler aufgerufen werden können. Add

// 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 
} 

dann vor Ihr eForm Aufruf: Sie könnten einen Ausschnitt, der sowohl von ihnen wie so definieren

[!myEformFunctions!]