Closed de-es closed 2 months ago
Im Standardmodul wird auch $objRecipient->active = false;
verwendet (Contao 5.3). Vielleicht müssten wir also ein version_compare()
nutzen wie an anderen Stellen im NC auch? Gerne PR stellen :)
Closing in favor of #350
Aufgetretener Fehler:
Es ist etwas schwieriger, den Fehler auf einem lokalen Testsystem zuverlässig nachzustellen, da er eine gewisse Latenz benötigt, um ausgelöst zu werden. Aufgefallen ist er zuerst auf einem Produktivsystem.
Zum Nachstellen:
Notification
undRedirect Page
setzen,Disable spam protection
aktivierennl_default
novalidate auf das Form-TagNun die Seite mit dem Modul im FE aufrufen. Chrome zum Testen nehmen (FF funktioniert nicht) und Network throtteling auf mindestens Slow 3G setzen. Dann Mailadresse eintragen und mehrfach ganz schnell hintereinander auf Subscribe klicken, um mehrere Requests auszulösen, wovon ab dem zweiten am Server eintreffenden dann jeder den Error triggert.
Auf dem Produktivsystem ist natürlich weder die Spam protection deaktiviert noch novalidate aktiv. Die Besucher haben das, soweit ich gesehen habe, einfach mit dem iPhone - und einem zu träge reagierenden Server - geschafft.
Der Fehler tritt nicht im von Contao mitglieferten Standard-Subscribe-Modul auf. Daher konnte ich auch die Ursache schnell ausfindig machen, da sich die Module in https://github.com/terminal42/contao-notification_center/blob/8bccbb96ddb8420311531e8841ad4ad7297d4a2c/src/Controller/FrontendModule/Newsletter/SubscribeController.php#L52 unterscheiden. Im Standard-Modul wird hier
$objRecipient->active = '';
verwendet, was das Problem auch direkt behebt.