Advancedform_XH

Third Party Plugins to CMSimple - how to install, use and create plugins

Moderator: Tata

olape
Posts: 1738
Joined: Fri Mar 13, 2015 8:47 am
Contact:

Re: Advancedform_XH

Post by olape » Fri Feb 05, 2021 5:00 pm

frase wrote:
Fri Feb 05, 2021 3:34 pm
Nach dem Verschicken einer Mail (mit Bild-Anhang, keine Dank-Seite) wird im Admin-Modus folgende Debug-Meldung ausgegeben:
Hm, ist mir noch gar nicht aufgefallen.
Ich hatte nur die Meldung aus der admin.php.
Aber ich weiß auch nicht mehr, ob ich zum Testen angemeldet war.

olape
Posts: 1738
Joined: Fri Mar 13, 2015 8:47 am
Contact:

Re: Advancedform_XH

Post by olape » Fri Feb 05, 2021 7:13 pm

olape wrote:
Fri Feb 05, 2021 4:57 pm
Ich mach einen Fork
https://github.com/olape-git/advancedfo ... cf9900102e
Last edited by olape on Sat Feb 06, 2021 6:24 pm, edited 1 time in total.

olape
Posts: 1738
Joined: Fri Mar 13, 2015 8:47 am
Contact:

Re: Advancedform_XH

Post by olape » Fri Feb 05, 2021 10:25 pm

Hooks

irgendetwas verstehe ich hier wohl falsch.

Ich möchte, wie beim internen Formular den Betreff per GET ändern.

Dazu %formularname%.inc angelegt mit:

Code: Select all

<?php

function advfrm_custom_mail() {

if (isset($_GET['ad_mailform_subject'])
&& $_GET['ad_mailform_subject'] != '') {
    $mail->set('Subject', $_GET['ad_mailform_subject']);
}

?>
Aber, das ist nicht der gewünschte Erfolg.

cmb
Posts: 13643
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Advancedform_XH

Post by cmb » Fri Feb 05, 2021 10:29 pm

olape wrote:
Fri Feb 05, 2021 4:57 pm
cmb wrote:
Fri Feb 05, 2021 2:58 pm
Und wo wird die Aufruf-Zeit gespeichert?
hidden field -> $_POST
Und das hilft halt nicht wirklich viel gegen automatisierte Angriffe. Es sollte nicht schwer sein, die auf dem Server eingestellte Zeitzone herauszufinden, und dann kann der Bot für dieses Feld einfach time()-60 senden. Und wie schon gesagt, solange das CAPTCHA als Text ausgegeben wird, kann dieses prinzipiell sehr leicht ausgehebelt werden (Bot ruft Formular ab, liest den Code aus, und sendet diesen zurück). Für allgemein programmierte Bots (gibt es solche überhaupt?) hilft es natürlich schon, aber die könnte man vermutlich auch mit einem Feld "bitte leer lassen" oder "bitte 42 eintragen" austricksen.

Ein wirksamer Spamschutz (ohne externe Dienste zu bemühen, oder Tricksereien mit Javascript) geht eigentlich nur, wenn ein serverseitiges Geheimnis einbezogen wird. Bei Advancedform_XH ist das derzeit der Code, der in einer Sessionvariablen hinterlegt ist; bei dem bereits weiter oben verlinkten Artikel ist es ein Schlüssel. Diese CaptchaNoCookie Variante erscheint mir sehr vielversprechend, auch ohne weitere Maßnahmen, denn "and it's only a matter of time before some spambot works that out" ist zwar theoretisch richtig, aber in der Praxis dürfte das es eine ziemliche Weile dauern, bis das bei AES-256 passiert.

Jedenfalls, wie es auch gelöst wird, würde ich vorschlagen das am besten als CAPTCHA-Plugin umzusetzen.
Christoph M. Becker – Plugins for CMSimple_XH

cmb
Posts: 13643
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Advancedform_XH

Post by cmb » Fri Feb 05, 2021 10:38 pm

olape wrote:
Fri Feb 05, 2021 10:25 pm
Hooks

irgendetwas verstehe ich hier wohl falsch.

Ich möchte, wie beim internen Formular den Betreff per GET ändern.
Ist es nicht so, dass beim eingebauten Mailformular der Betreff per GET beim Formularabruf gesetzt wird? Das ist bei Advancedform_XH (noch) nicht vorgesehen. Die Hooks greifen beim Formularversand.
Christoph M. Becker – Plugins for CMSimple_XH

olape
Posts: 1738
Joined: Fri Mar 13, 2015 8:47 am
Contact:

Re: Advancedform_XH

Post by olape » Fri Feb 05, 2021 10:58 pm

cmb wrote:
Fri Feb 05, 2021 10:38 pm
Ist es nicht so, dass beim eingebauten Mailformular der Betreff per GET beim Formularabruf gesetzt wird?
Ja, genau, deswegen
olape wrote:
Fri Feb 05, 2021 10:25 pm
wie beim internen Formular
cmb wrote:
Fri Feb 05, 2021 10:38 pm
Die Hooks greifen beim Formularversand.
Der Hilfe nach davor.
Also muss sich ja der Betreff noch ändern lassen.
Laut den Beispielformularen kann man den Betreff durch ein Formularfeld ersetzen, (per hook)
Warum sollte ich den Betreff dann also nicht auch mit $_GET ersetzen können?

cmb
Posts: 13643
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Advancedform_XH

Post by cmb » Fri Feb 05, 2021 11:41 pm

olape wrote:
Fri Feb 05, 2021 10:58 pm
cmb wrote:
Fri Feb 05, 2021 10:38 pm
Die Hooks greifen beim Formularversand.
Der Hilfe nach davor.
Also muss sich ja der Betreff noch ändern lassen.
Laut den Beispielformularen kann man den Betreff durch ein Formularfeld ersetzen, (per hook)
Warum sollte ich den Betreff dann also nicht auch mit $_GET ersetzen können?
Formularversand != Mailversand. Wenn das HTML-Formular abgeschickt wird, ist die GET-Variable nicht mehr gesetzt, also kann sie der Hook auch nicht sehen.

Anders ausgedrückt: das eingebaute Mailformular schaut nach der GET-Variablen, und setzt diese ins Formular ein, das an den Browser geschickt wird. Der Benutzer kann den Betreff noch ändern, oder das Formular einfach nicht abschicken. Diese Möglichkeit ist bei Advancedform_XH eben (noch) nicht verfügbar.
Christoph M. Becker – Plugins for CMSimple_XH

olape
Posts: 1738
Joined: Fri Mar 13, 2015 8:47 am
Contact:

Re: Advancedform_XH

Post by olape » Sat Feb 06, 2021 11:28 am

cmb wrote:
Fri Feb 05, 2021 11:41 pm
Formularversand != Mailversand. Wenn das HTML-Formular abgeschickt wird, ist die GET-Variable nicht mehr gesetzt, also kann sie der Hook auch nicht sehen.
Hm, das habe ich nicht bedacht. Aber mein Problem war auch erst mal ein ganz anderes.
Mit dem Hook fehlen alle Formularfelder. Und das ist mir nicht klar.
Denn wenn Get nicht gesetzt ist, dann sollte einfach gar nichts passieren.

Zurück zum Ziel
Also in zwei Schritten.
Per Hook ein Formularfeld mit einem Get-Wert befüllen.
Und dann wieder per Hook, den Wert des Feldes als Betreff.

olape
Posts: 1738
Joined: Fri Mar 13, 2015 8:47 am
Contact:

Re: Advancedform_XH

Post by olape » Sat Feb 06, 2021 2:22 pm

Call the Page additional with "&ad_mailform_subject=XXX"
Then the defaultvalue from FELDNAME is XXX.
The value of this field will later become the subject of the email.
You have to do replace "FELDNAME".

%formname%.inc

Code: Select all

<?php

// Call the Page with "&ad_mailform_subject=XXX"
function advfrm_custom_field_default($form_name, $field_name, $opt, $is_resent) {

    if ($field_name == 'FELDNAME'
    && !empty($_GET['ad_mailform_subject'])) {
        return $_GET['ad_mailform_subject'];
    }
}

function advfrm_custom_mail($form_name, &$mail, $is_confirmation) {

    $field_name = 'FELDNAME';

    if (!empty($_POST['advfrm-'.$field_name])) {
        $mail->set('Subject', stsl($_POST['advfrm-'.$field_name]));
    }
}

?>

olape
Posts: 1738
Joined: Fri Mar 13, 2015 8:47 am
Contact:

Re: Advancedform_XH

Post by olape » Sat Feb 06, 2021 4:45 pm

cmb wrote:
Fri Feb 05, 2021 4:51 pm
frase wrote:
Fri Feb 05, 2021 3:34 pm
Wurde der PHP-Mailer nich neulich irgendwo aktualisiert?
Ist schon ne ganze Weile her, dass auf PHPMailer 5.2.27 aktualisiert wurde; es steht aber das Update auf PHP Mailer 5.2.28 an, dass diese Deprecation löst.
Auf 5.2.28 sollte kein Problem sein.

Code: Select all

    DEPRECATED: Function get_magic_quotes_runtime() is deprecated
    /html/xxx/plugins/advancedform/phpmailer/class.phpmailer.php:2714
Der Fix für get_magic_quotes_runtime() ist nun tatsächlich die einzige Änderung außer der Versionsnummer.
Last edited by olape on Sat Feb 06, 2021 5:07 pm, edited 1 time in total.

Post Reply