NAVIGATION
This shows you the differences between two versions of the page.
deutsch:phpwcms-system:artikel:contentparts:formular:spezielle-anwendungen:php-funktion-einbinden [2010/02/18 08:57] Knut Heermann (flip-flop) |
deutsch:phpwcms-system:artikel:contentparts:formular:spezielle-anwendungen:php-funktion-einbinden [2018/06/03 18:08] (current) |
||
---|---|---|---|
Line 3: | Line 3: | ||
====== PHP-Funktion einbinden ====== | ====== PHP-Funktion einbinden ====== | ||
- | Seit der Release r282 ist es möglich eine eigene PHP-Funktion zwischen der Aktion "submit" und "dem Versenden der eMail" abzuarbeiten . Diese Funktion kann alle Formulareingaben lesen, verändern und zurückgeben. | + | Seit der Release r282 ist es möglich eine eigene PHP-Funktion zwischen der Aktion "submit" und "dem Versenden der eMail" abzuarbeiten . Diese Funktion kann alle Formulareingaben lesen, ändern und zurückgeben. //(Auch das Sendeziel (eMailadresse) kann verändert werden)//. |
+ | **Diese Veränderungen werden nicht in der Datenbank festgehalten, da die Werte vor dem Funktionsaufruf hineingeschrieben wurden.** | ||
+ | |||
+ | \\ | ||
Der Funktionsaufruf muss im Formular je nach Template in den Feldern **“PHP-Funktion:”** unterhalb **“Empfänger - Vorlage:“** bzw. **"Kopie an - Vorlage"** eingetragen werden. //(Siehe Bild unten)//. | Der Funktionsaufruf muss im Formular je nach Template in den Feldern **“PHP-Funktion:”** unterhalb **“Empfänger - Vorlage:“** bzw. **"Kopie an - Vorlage"** eingetragen werden. //(Siehe Bild unten)//. | ||
Line 146: | Line 149: | ||
Es wird zuerst die Funktion für die **"Empfänger - Vorlage"** //("my_form_title_recipient_de")// und in einem zweiten Aufruf die Funktion für **"Kopie an - Vorlage"** //("my_form_title_copy_to_de")// abgearbeitet. Auf die Reihenfolge haben wir keinen Einfluss. | Es wird zuerst die Funktion für die **"Empfänger - Vorlage"** //("my_form_title_recipient_de")// und in einem zweiten Aufruf die Funktion für **"Kopie an - Vorlage"** //("my_form_title_copy_to_de")// abgearbeitet. Auf die Reihenfolge haben wir keinen Einfluss. | ||
- | Mit einem Funktionsaufruf werden autom. die die drei Arrays **$postvar, $form** und **$mail** übergeben //(Siehe unten)//. | + | Mit einem Funktionsaufruf werden autom. die drei Arrays **$postvar, $form** und **$mail** übergeben //(Siehe unten)//. |
**Beispiel:** \\ | **Beispiel:** \\ | ||
Line 158: | Line 161: | ||
Nachdem die Funktionen verlassen wurden werden die E-Mails an die eingetragenen Adressen abgesetzt. | Nachdem die Funktionen verlassen wurden werden die E-Mails an die eingetragenen Adressen abgesetzt. | ||
+ | <note> | ||
Die Datenbank wird schon vor dem Aufruf der Funktionen gefüllt, hier wird das manipulierte Ergebnis also nicht festgehalten. | Die Datenbank wird schon vor dem Aufruf der Funktionen gefüllt, hier wird das manipulierte Ergebnis also nicht festgehalten. | ||
+ | </note> | ||
+ | |||
+ | ==== Test-Script: ==== | ||
+ | |||
+ | ---- | ||
+ | \\ | ||
+ | **Datei:** template/inc_script/frontend_init/form_test.php | ||
+ | |||
+ | **Bedingung:** $phpwcms['allow_ext_init'] = 1; -> [[http://www.phpwcms-docu.de/confincphp_de.phtml|/config/phpwcms/conf.inc.php]] \\ | ||
+ | |||
+ | <code php|h form_test.php |h> | ||
+ | <?php | ||
+ | /********************************************************************************************/ | ||
+ | /** | ||
+ | * Script fur den Test der Formularfunktion | ||
+ | * | ||
+ | * 17.03.2010 (c) K.Heermann http://planmatrix.de | ||
+ | */ | ||
+ | /********************************************************************************************/ | ||
+ | // ------------------------------------------------------------------------------------------- | ||
+ | // obligate check for phpwcms constants | ||
+ | if (!defined('PHPWCMS_ROOT')) {die("You Cannot Access This Script Directly, Have a Nice Day."); } | ||
+ | // ------------------------------------------------------------------------------------------- | ||
+ | |||
+ | |||
+ | /** For testing form function | ||
+ | =============================================================================== | ||
+ | =============================================================================== | ||
+ | */ | ||
+ | function form_test( &$postvar, &$form, &$mail ) { | ||
+ | |||
+ | echo '<br>===== postvar ===========================<br>'; | ||
+ | dumpVar($postvar); | ||
+ | |||
+ | echo '<br>===== form ==============================<br>'; | ||
+ | dumpVar($form); | ||
+ | |||
+ | echo '<br>===== mail ==============================<br>'; | ||
+ | // Sicherheitsrisiko wenn vergessen wird das Script nach Beendigung der Arbeiten zu entfernen. | ||
+ | // Ist für die meisten Anwendungen auch uninteressant. | ||
+ | // dumpVar($mail); | ||
+ | echo '<br>===== mail ende =========================<br>'; | ||
+ | |||
+ | } // ==== End function | ||
+ | /* | ||
+ | =============================================================================== | ||
+ | =============================================================================== | ||
+ | */ | ||
+ | |||
+ | ?> | ||
+ | </code> | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | \\ | ||
==== Inhalt: $postvar ==== | ==== Inhalt: $postvar ==== | ||
Line 168: | Line 229: | ||
<note> | <note> | ||
- | $postvar wird nur ausgegeben, wenn ##[X] Formularergebnis speichern## eingeschaltet ist, da hier die schon abgespeicherten Daten aus der DB angezeigt werden. \\ | + | **$postvar** wird nur ausgegeben, wenn ##[X] Formularergebnis speichern## eingeschaltet ist, da hier die schon abgespeicherten Daten aus der DB angezeigt werden. \\ |
- | Eine Änderung diese Daten ist nicht möglich (hat keinerlei Auswirkung auf die DB oder dem Versandergebnis. | + | Eine Änderung diese Daten ist nicht möglich //(hat keinerlei Auswirkung auf die DB oder dem Versandergebnis)//. |
</note> | </note> | ||
Line 535: | Line 596: | ||
- | // Output e-Mail text // Ausgabe E-Mailtext | + | // Output e-Mail text "on success" // Ausgabe E-Mailtext in "bei Erfolg:" |
// --------------------------------------------------------------- | // --------------------------------------------------------------- | ||
$email_text = '<div style="width:510px; padding:10px; margin:10px; border:1px dotted #666; background:#eee;">'; | $email_text = '<div style="width:510px; padding:10px; margin:10px; border:1px dotted #666; background:#eee;">'; | ||
Line 592: | Line 653: | ||
</code> | </code> | ||
+ | |||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== Ausgabe des E-Mailtextes (To) auf der Folgeseite ===== | ||
+ | |||
+ | Das BE Eingabefeld "**Bei Erfolg:**" wird im Script mit dem E-Mailtext aus To //(Empfänger - Vorlage)// der **Variablen $form['template']** gefüllt. Dazu schreiben wir einfach den Text, eingebettet in ein wenig Formatierung, aus **$form['template']** in die **Variable $form['onsuccess']**. \\ | ||
+ | Darüberhinaus wird noch ein Link //(weiter)// zur aktuelle Seite //(Formular)// generiert. | ||
+ | |||
+ | |||
+ | \\ | ||