Quick_buttons: PHP-Warning

Hier bitte Probleme zu ConPressoPlus melden. Hier werden Ursachen und Lösungsvorschläge diskutiert.
Bugs in Modulen in den entsprechenden Foren melden und diskutieren!
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 846
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 226 Mal
Danksagung erhalten: 33 Mal

Quick_buttons: PHP-Warning

Beitrag von hscha »

Lieber Markus,
meine "Daisy World" läuft seit Beginn des Neuen Jahres auch unter php Version 8.5.1-nmm1 (all-inkl).

Bislang ohne Probleme. Nun dies im Fehler-Log (ich kann nicht nachvollziehen, welche Situation dazu geführt hat...

Code: Alles auswählen

[20-Jan-2026 19:45:35] PHP Warning:  Array to string conversion in /www/htdocs/.../gesangskreis-nordspandau.de/cms/_include/quick_buttons.inc.php on line 264
[20-Jan-2026 19:45:35] PHP Warning:  Array to string conversion in /www/htdocs/.../gesangskreis-nordspandau.de/cms/_include/quick_buttons.inc.php on line 258
[20-Jan-2026 19:45:35] PHP Warning:  Array to string conversion in /www/htdocs/.../gesangskreis-nordspandau.de/cms/_include/quick_buttons.inc.php on line 216
[20-Jan-2026 19:45:35] PHP Warning:  Array to string conversion in /www/htdocs/.../gesangskreis-nordspandau.de/cms/_include/quick_buttons.inc.php on line 210
Hast du eine Idee dazu?
Grüße von Horst
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7547
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Re: Quick_buttons: PHP-Warning

Beitrag von MarkusR »

Spannende Beobachtung!
Alle genannten Zeilen enden auf ='.get_id(), und erhalten dadurch eine in der URL, Formulardaten oder in der Session enthaltene ID. Das ist eigentlich IMMER ein eindeutiger Wert und kein Array, daher ist die Warnung sehr verwunderlich. Ist bei mir noch nie aufgetreten.

Warum auch immer bei Dir aus eindeutigen IDs plötzlich ein mehrdeutiges Array wird.

Möglich wäre folgendes Workaround:

Ändere die Funktion (ab Zeile 19)

Code: Alles auswählen

if (!function_exists('get_id'))  {
    function get_id()  {  // needed cause of different id-names for template and rubric ids
        global $placeholder, $template_id;
        $id='';
        if (isset($_SESSION['SID_rubric_id']))    $id = $_SESSION['SID_rubric_id'];
        if (isset($_REQUEST['id']))               $id = $_REQUEST['id'];
        if (isset($_REQUEST['template']))         $id = $_REQUEST['template'];
        if (isset($_REQUEST['templates_id']))     $id = $_REQUEST['templates_id'];
        if (isset($_REQUEST['rubric_id']))        $id = $_REQUEST['rubric_id'];
        if (isset($template_id))                  $id = $template_id;
        if (isset($placeholder['templates_id']))  $id = $placeholder['templates_id'];
        return $id;
    }
}
zu

Code: Alles auswählen

if (!function_exists('get_id'))  {
    function get_id()  {  // needed cause of different id-names for template and rubric ids
        global $placeholder, $template_id;
        $id='';
        if (isset($_SESSION['SID_rubric_id']))    $id = $_SESSION['SID_rubric_id'];
        if (isset($_REQUEST['id']))               $id = $_REQUEST['id'];
        if (isset($_REQUEST['template']))         $id = $_REQUEST['template'];
        if (isset($_REQUEST['templates_id']))     $id = $_REQUEST['templates_id'];
        if (isset($_REQUEST['rubric_id']))        $id = $_REQUEST['rubric_id'];
        if (isset($template_id))                  $id = $template_id;
        if (isset($placeholder['templates_id']))  $id = $placeholder['templates_id'];
        if (!is_array($id)) return $id;
    }
}
also wird aus
return $id;
nun
if (!is_array($id)) return $id;
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7547
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Re: Quick_buttons: PHP-Warning

Beitrag von MarkusR »

Zur Erläuterung:

Code: Alles auswählen

$a = array(1,2,3);
$s = 'text'.$a;
wirft die Warnung:
Warning: Array to string conversion in /var/www/vhosts/example.de/httpdocs/test.php on line 2
Irgendwas füllt bei Dir eine der eigentlich zwingend eindeutigen Variablen mit einem Array...

$_SESSION['SID_rubric_id'];
$_REQUEST['id'];
$_REQUEST['template'];
$_REQUEST['templates_id'];
$_REQUEST['rubric_id'];
$template_id;
$placeholder['templates_id'];
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7547
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Re: Quick_buttons: PHP-Warning

Beitrag von MarkusR »

Ok, Verursacher gefunden!
Es ist mod_enhanced_delete, das bei der Lösch-Bestätigung ein Array mittels name="id[]" aufbaut und dann zu dem Fehler führt.

Das Workaround sollte den Fehler unterdrücken, ich werde aber in mod_enhanced_delete die Variablen umbenenen...

Das ist übrigens ein allgegenwärtiges Problem in ConPresso, dass sowohl Artikel, Templates, User als auch Dateien mit id= in URLs adressiert werden, so dass übergreifende Funktionen schnell durch die ID in Probleme geraten...
Wollte ich sowieso ändern, ist aber ein massiver Eingriff in die bisherige Logik.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 846
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 226 Mal
Danksagung erhalten: 33 Mal

Re: Quick_buttons: PHP-Warning

Beitrag von hscha »

Das Problem ist auch nur einmal aufgetreten, ich hatte aber tatsächlich Dateien gelöscht...
Ich baue das Workaround gerne ein!
Danke!
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7547
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Re: Quick_buttons: PHP-Warning

Beitrag von MarkusR »

Statt die Symptome zu bekämpfen, geht es besser an die Ursachen.

Daher hier mod_enhanced_delete in angepasster Form mit delID[] statt id[].

Betroffen sind nur 2 Dateien in mod_enhanced_delete/includes, nämlich

inc_manage_files_1.inc.php
und
inc_manage_files_2.inc.php
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 846
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 226 Mal
Danksagung erhalten: 33 Mal

Re: Quick_buttons: PHP-Warning

Beitrag von hscha »

Viel besser ;-)
Danke, Markus!!!

P.S: Kann die Änderung in "quick_buttons.inc.php" trotzdem so bleiben wie du das oben beschrieben hast?
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7547
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Re: Quick_buttons: PHP-Warning

Beitrag von MarkusR »

Ja, die kann und wird drin bleiben :gruebel: :wink:
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 846
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 226 Mal
Danksagung erhalten: 33 Mal

Re: Quick_buttons: PHP-Warning

Beitrag von hscha »

Hallo Markus,
ich habe vorgestern die Funktion für mehrfaches Löschen von Dateien benutzt und diese Fehlermeldungen erhalten. Im Frontend war davon nichts zu sehen. Die Dateien sind auch gelöscht.
[17-Mar-2026 17:08:35] PHP Warning: Constant CPO_SUBDIR already defined, this will be an error in PHP 9 in /www/htdocs/.../gesangskreis-nordspandau.de/cms/_include/quick_buttons.inc.php on line 73
#0 {main}
Stack trace:
[17-Mar-2026 17:06:46] PHP Fatal error: Cannot redeclare function ED_install() (previously declared in /www/htdocs/.../gesangskreis-nordspandau.de/cms/mod_enhanced_delete/common-module.inc.php:50) in /www/htdocs/.../gesangskreis-nordspandau.de/cms/mod_enhanced_delete.old/common-module.inc.php on line 50
Grüße von Horst
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7547
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Re: Quick_buttons: PHP-Warning

Beitrag von MarkusR »

Hallo Horst,
[17-Mar-2026 17:06:46] PHP Fatal error: Cannot redeclare function ED_install() (previously declared in /www/htdocs/.../gesangskreis-nordspandau.de/cms/mod_enhanced_delete/common-module.inc.php:50) in /www/htdocs/.../gesangskreis-nordspandau.de/cms/mod_enhanced_delete.old/common-module.inc.php on line 50
kommt davon, dass es bei Dir mod_enhanced_delete zweimal gibt, das ist aber ein Modul, dass nur einmal im System sein kann. Der Fehler wird geschrieben, wenn _admin/modules.php aufgerufen wird (und damit ALLE vorhandenen common-module.inc.php ausgeführt werden). Mit dem Löschen selbst hat das nichts zu tun.
[17-Mar-2026 17:08:35] PHP Warning: Constant CPO_SUBDIR already defined, this will be an error in PHP 9 in /www/htdocs/.../gesangskreis-nordspandau.de/cms/_include/quick_buttons.inc.php on line 73
ist die Feststellung und Definition von CPO_SUBDIR, was eigentlich nur auf Systemen relevant ist, die für ConPresso ein Unterverzeichnis benutzt, wie Deines eben. Ich vermeide sowas ja ganz bewusst.
Ich kann nicht ausschließen, ob das irgendwo für Dich schon mal eingebaut wurde.
In diesem Fall kann die Zeile 73 auskommentiert werden, weil sie bei Dir ja wohl schon irgendwo anders vorhanden ist, und anzunehmen ist, dass mit CPO_SUBDIR das Verzeichnis gemeint ist, in das ConPresso installiert wurde. Alternativ ALLE Vorkommen von CPO_SUBDIR einfach umbenennen.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 846
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 226 Mal
Danksagung erhalten: 33 Mal

Re: Quick_buttons: PHP-Warning

Beitrag von hscha »

Hallo Markus,
...kommt davon, dass es bei Dir mod_enhanced_delete zweimal gibt...
das zweite Modulverzeichnis habe ich sofort gelöscht. Ich hatte nicht mehr im Blick, dass trotz Umbenennen des Verzeichnisses die common.module.inc.php eingelesen wird. :wall:
Das Thema "Unterverzeichnis" für die CPO-Installation beobachte ich weiter. Der Fehler ist zum ersten Mal aufgetaucht...

Danke und Grüße von
Horst
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7547
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Re: Quick_buttons: PHP-Warning

Beitrag von MarkusR »

Nur zur Info:
Dateiname, Verzeichnis und evtl. Parameter werden zukünftig ja sowieso nicht mehr für die Anzeige der Quick-Buttons genutzt, da die Identifizierung einfach durch den Seitentitel erfolgt, der ja bereits kontextbezogen ist.
Auf die einfachen Ideen kommt man eben immer erst später... :wall:
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle