NAVIGATION
This shows you the differences between two versions of the page.
|
deutsch:phpwcms-system:artikel:contentparts:formular:spezielle-anwendungen:php-funktion-einbinden [2010/05/16 09:45] 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 598: | Line 659: | ||
| ===== Ausgabe des E-Mailtextes (To) auf der Folgeseite ===== | ===== 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']**. \\ | + | 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. | Darüberhinaus wird noch ein Link //(weiter)// zur aktuelle Seite //(Formular)// generiert. | ||