Newsletter-Anmeldung: Herkunft in Datenbank abspeichern klappt nicht mehr bei PHP 8.1 / Gambio 4.9.5

Thema wurde von tannenhof_imshausen, 13. Juli 2025 erstellt.

  1. tannenhof_imshausen
    tannenhof_imshausen Erfahrener Benutzer
    Registriert seit:
    26. Oktober 2022
    Beiträge:
    119
    Danke erhalten:
    36
    Danke vergeben:
    49
    In Gambio 4.5.3 unter PHP 7.4.3 habe ich folgende Anpassungen erfolgreich im Einsatz:

    Datenbanktabelle newsletter_recipients um Spalte source ergänzt:
    Code:
    ALTER TABLE `newsletter_recipients`
    ADD COLUMN `source` VARCHAR(45) NULL DEFAULT NULL AFTER `date_added`;
    
    In der Datei /GXMainComponents/View/ThemeContentViews/core/ThemeContentView.inc.php
    unterhalb von
    PHP:
    protected $captcha;
    die Zeile
    PHP:
    protected $source               '';
    hinzugefügt sowie in der Funktion prepare_data() folgende Zeile ergänzt:
    PHP:
    $this->content_array['SOURCE']       = htmlentities_wrapper($this->source);

    In der Datei /system/classes/newsletter/NewsletterContentControl.inc.php das
    $sql_data_array um
    PHP:
    'source' => xtc_db_input($this->v_data_array['POST']['source'])
    erweitert und am Ende der Datei nach der Zeile
    PHP:
    if (isset($this->v_data_array['POST']['email'])) {
                
    $coo_newsletter_view->set_('email_address'$this->v_data_array['POST']['email']);
            }
    folgende eingefügt:
    PHP:
    if (isset($this->v_data_array['GET']['source'])) {
                
    $coo_newsletter_view->set_('source'$this->v_data_array['GET']['source']);
            }
    Und in meinem Theme die Datei/themes/meintheme/html/custom/newsletter.html angelegt:
    HTML:
    {block name="newsletter_email_container" append}   
     <input type="hidden"
                                                   id="source"
                                                   name="source"                                             
                                                   value="{$SOURCE}" />      
    {/block}
    
    

    Anwendungsfall: Ich kann https://shop.tannenhof-imshausen.de/newsletter.php?source=XYZ rausgeben und tracken, welche Nutzer sich über diesen Link zum Newsletter angemeldet haben.

    Die gleichen Anpassungen unter der aktuellen Gambio-Version 4.9.5 und PHP 8.1 funktionieren jedoch nicht mehr: Das hidden-Feld wird nicht gefüllt und auch wenn ich händisch was eintrage bleibt die Spalte source in der Datenbanktabelle newsletter_recipients leer. Ich konnte nicht herausfinden, warum. Kann mir jemand helfen?

    Die angehängten Dateien sind für Version 4.9.5.

    Besten Dank & viele Grüße, Johannes
     

    Anhänge: