script-Abbruch durch mod_text?

Hier bitte Probleme zu ConPressoPlus melden. Hier werden Ursachen und Lösungsvorschläge diskutiert.
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 786
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 221 Mal
Danksagung erhalten: 32 Mal

script-Abbruch durch mod_text?

Beitrag von hscha »

Hallo Markus,

ich teste gerade meine Chor-Site mit CPO "Bad Boys" unter php 8.2. Soweit sieht alles zunächst gut aus. Wenn ich allerdings einen Artikel mit mod_text (Version 4.1e) bearbeiten möchte, bricht das Script ab, wenn $markashidden aufgerufen wird. Hast du eine Idee dazu? Bei deaktiviertem Modul wird die Bearbeiten-Maske komplett angezeigt.
Grüße von Horst

P.S.: Eine php-Fehlermeldung erhalte ich leider nicht...
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7437
Registriert: 01.01.1970 02:00
Hat sich bedankt: 117 Mal
Danksagung erhalten: 938 Mal

Re: script-Abbruch durch mod_text?

Beitrag von MarkusR »

Ohne PHP-Fehlermeldungen ist da kaum was zu machen.
Diese kann man in der Regel für die Ausgabe am Bildschirm aktivieren oder in ein Log schreiben lassen.
Ist das nicht erlaubt oder kannst Du es nicht?

Sonst wirst Du warten müssen, bis ich zu dem Modul komme, andere sind aber wichtiger...
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: 7437
Registriert: 01.01.1970 02:00
Hat sich bedankt: 117 Mal
Danksagung erhalten: 938 Mal

Re: script-Abbruch durch mod_text?

Beitrag von MarkusR »

Interessant ist, dass Du $markashidden als PHP-Variable benennen kannst, aber gar keine PHP-Fehlermeldungen erhältst. Wie kommst Du also auf diese Variable?
Nicht (ausreichend) definierte Variablen würden unter PHP8.2 nur eine Warnung ausgeben, aber keinen Skriptabbruch verursachen...

Sollte eine Variable nicht (ausreichend) definiert sein, dann muss entweder eine Prüfung präzisiert werden oder die Variable vorsorglich definiert werden, also am Skriptanfang sowas wie

Code: Alles auswählen

initVar($markashidden, '');
eingefügt werden.
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: 786
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 221 Mal
Danksagung erhalten: 32 Mal

Re: script-Abbruch durch mod_text?

Beitrag von hscha »

Hallo Markus,
es war eine reine Vermutung... :wall: Ich versuche dies nun mit php-Fehlermeldungen zu klären, die nun hoffentlich auch bei diesem Provider funktionieren...
Ich schreibe dir, wenn ich was Konkretes weiß - sorry!

Grüße von Horst
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 786
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 221 Mal
Danksagung erhalten: 32 Mal

Re: script-Abbruch durch mod_text?

Beitrag von hscha »

Hallo Markus,
nach einigen weiteren Tests kristallisiert sich heraus, dass mod_text (4.1e) unter php 8.2 die Ausgabe der Backend-Maske zur Artikelbearbeitung blockiert. Das passiert auch, wenn ich mod_editor deaktiviere.
Den Quelltext der content-Seite (siehe Bildschirmfoto) hänge ich als Datei an. Php-Fehlermeldungen werden nicht ausgegeben, obwohl inzwischen das Errorreporting eingeschaltet ist...
Grüße von Horst
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7437
Registriert: 01.01.1970 02:00
Hat sich bedankt: 117 Mal
Danksagung erhalten: 938 Mal

Re: script-Abbruch durch mod_text?

Beitrag von MarkusR »

Schaue doch bitte mal in die PHP-Info was jeweils als Local und Master Value steht bei

display_errors
log_errors
error_log

error_reporting gibt ja nur an was ausgeben würde, aber nicht ob etwas ausgegeben oder geloggt wird

Oder überlege Dir, ob Du einen CPO-Admin- sowie FTP-Zugang zur Verfügung stellen willst, die Du später ja wieder löschen kannst...
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: 7437
Registriert: 01.01.1970 02:00
Hat sich bedankt: 117 Mal
Danksagung erhalten: 938 Mal

Re: script-Abbruch durch mod_text?

Beitrag von MarkusR »

Mal abgesehen von zahllosen Warnings, die angezeigt werden, sobald Du die Anzeige aktiviert bekommst, dürfte folgendes zum Abbruch führen:

in mod_text/includes/form_fields.inc.php
muss die Zeile 139 statt

Code: Alles auswählen

break;
richtigerweise

Code: Alles auswählen

return;
lauten.

Aber da gibt es wie gesagt noch zahlreiche weitere nötige Anpassungen, die zur Vermeidung von Warnings erforderlich sind.
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: 786
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 221 Mal
Danksagung erhalten: 32 Mal

Re: script-Abbruch durch mod_text?

Beitrag von hscha »

Hallo Markus,
break durch return zu ersetzen, hat schon eine Menge gebracht...
phpinfo sagt zu den Einstellungen:
display_errors = on
log_errors = on
error_log = no value
error_reporting = 22519
Zugangsdaten sende ich dir per PN.

Grüße von Horst
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7437
Registriert: 01.01.1970 02:00
Hat sich bedankt: 117 Mal
Danksagung erhalten: 938 Mal

Re: script-Abbruch durch mod_text?

Beitrag von MarkusR »

Deine PHP-Info sagt als "Local Value" folgendes:

display_errors = off
log_errors = on
error_log = no value (somit ist log_errors ohne Ziel)
error_reporting = 2039 (wie es für CPO sein soll)

Ich habe Dir mal das PHP-Info-Modul aktiviert, das macht es einfacher :wink:

Kann mir das aber erst nachher etwas genauer anschauen...
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: 7437
Registriert: 01.01.1970 02:00
Hat sich bedankt: 117 Mal
Danksagung erhalten: 938 Mal

Re: script-Abbruch durch mod_text?

Beitrag von MarkusR »

Ich habe Dir in_include/common.inc.php jetzt mal

Code: Alles auswählen

ini_set('display_errors', 1);
ergänzt, dann aber schnell wieder auskommentiert, da es im Frontend zahlreiche Warnungen gibt, diese beruhen z.T. auf
_funktionlibrary-gk.inc.php
was wohl was selbstgestricktes ist.

Du kannst die Anzeige ja nach Bedarf aktivieren...
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: 7437
Registriert: 01.01.1970 02:00
Hat sich bedankt: 117 Mal
Danksagung erhalten: 938 Mal

Re: script-Abbruch durch mod_text?

Beitrag von MarkusR »

Mal ein Hinweis zur Umstellung auf PHP 8 am Beispiel Deiner _funktionlibrary-gk.inc.php:

Hat man eine Funktion in dieser Art

Code: Alles auswählen

function menulink($mainrubric,$artnr,$key,$linktitle,$linkpic) {
...
	return '<a href="'.$mainrubricpfad.$mainrubric.$fcartnr.'"'.$fckey.$fclinktitle.$fclinkcolor.'>'.$fclinkpic.'</a>';	
}
dann sind $mainrubric, $artnr, $key, $linktitle, $linkpic ja definiert.
$mainrubricpfad, $fcartnr, $fckey, $fclinktitle, $fclinkcolor dagegen nicht.
Unter PHP 7 galten diese schlichtweg als "leer" (erzeugten aber schon damals eine Notice). Unter PHP 8 aber als undefiniert und erzeugen ein Warning, später wird daraus ein Error werden.
Um das zu vermeiden kümmert man sich um die Definition, wobei initVar() gute Dienste leistet, weil ggf. doch schon definierte Variablen nicht aus Versehen überschrieben werden.

Code: Alles auswählen

function menulink($mainrubric,$artnr,$key,$linktitle,$linkpic) {
	initVar($mainrubricpfad, '');
	initVar($fcartnr, '');
	initVar($fckey, '');
	initVar($fclinktitle, '');
	initVar($fclinkcolor, '');

	...
	return '<a href="'.$mainrubricpfad.$mainrubric.$fcartnr.'"'.$fckey.$fclinktitle.$fclinkcolor.'>'.$fclinkpic.'</a>';	
}
Eine Prüfung wie

Code: Alles auswählen

if ($mainrubric == 'email') {
kann auch schiefgehen und eine "undefined"-Meldung erzeugen (nicht in diesem Fall). Das fängt man entweder vorher mit initVar() ab oder macht die Prüfung "bulletproof", z.B.

Code: Alles auswählen

if (isset($mainrubric) && $mainrubric == 'email') {
Das muß man nach Bedarf und nach den Anforderungen und Ablauf des Skriptes entscheiden...

Damit schlage ich mich nun schon 2 Jahre rum...
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: 786
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 221 Mal
Danksagung erhalten: 32 Mal

Re: script-Abbruch durch mod_text?

Beitrag von hscha »

Vielen Dank, Markus!
Da habe ich ja zu tun... ;-)
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7437
Registriert: 01.01.1970 02:00
Hat sich bedankt: 117 Mal
Danksagung erhalten: 938 Mal

Re: script-Abbruch durch mod_text?

Beitrag von MarkusR »

Richtig!
Was CPO+ angeht gibt es auch schon eine viel weiter entwickelte Version, die konnte ich aber noch nicht zur Verfügung stellen, da mod_form als große Baustelle noch davor steht...
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: 786
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 221 Mal
Danksagung erhalten: 32 Mal

Re: script-Abbruch durch mod_text?

Beitrag von hscha »

Eine Prüfung wie
if ($mainrubric == 'email') {
kann auch schiefgehen und eine "undefined"-Meldung erzeugen
D.h. undefinierte Variablen sind grundsätzlich nicht mehr erlaubt... Das habe ich in meinem _global_header und local_footer schon geändert.

Zwei Fehlermeldungen, die durch _include/parser.php verursacht werden, gibt es im Frontend noch:
Warning: Undefined variable $valcontent in /www/htdocs/.../gesangskreis.wichern-radelandgemeinde.de/cms/_include/parser.php on line 448

Warning: Undefined variable $valcontent in /www/htdocs/.../gesangskreis.wichern-radelandgemeinde.de/cms/_include/parser.php on line 445
Kann man die auch mitinitVar behandeln?
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7437
Registriert: 01.01.1970 02:00
Hat sich bedankt: 117 Mal
Danksagung erhalten: 938 Mal

Re: script-Abbruch durch mod_text?

Beitrag von MarkusR »

hscha hat geschrieben: 15.01.2024 22:31 Kann man die auch mitinitVar behandeln?
Ja, ganz oben findest Du einen großen Block mit der Überschrift
// prepare some vars
Da kannst Du es ergänzen.

Leider treten Meldungen erst auf, wenn User bestimmte Funktionen nutzen. Die Wertevergleiche benutzt eben kaum jemand und es kommen bestimmt noch weitere dazu, wenn mehr Leute testen bzw. umstellen...
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