WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 04.01.2024 11:30:30

berny
Member

Komisches PHP 8.2.7 Phänomen

Folgender Code im Code2 Abschnitt:

$ts = "";
settype($ts, 'string');
//$ts = $_REQUEST[ts];
if($_GET['ts'] == false or $_GET['ts'] == "") {
  $ts = "aktuell";
  settype($ts, 'string');
    
} else {
  $ts = $_GET['ts'];
  settype($ts, 'string');
 
}

echo "debug: ".$ts."<br />";
echo "debug: ".is_array($ts) ? 'Array <br />' : 'not an Array<br />';

Das settype habe ich erst mal testhalber eingesetzt, ändert aber nix.
In $ts wird ein Timestamp übergeben (linux Timestamp)

Aufruf: /uebersicht.php?ts=1704360000
oder /uebersicht.php (wenn aktuell)

Ausgeworfen wird ein Array.
Errorlog:
2024-01-04T09:17:12+00:00 [Warning] /temp/modules/code2/section_55.php.inc:[5] from /framework/frontend.functions.php:[391] "Undefined array key "ts""

Der Parameter wird offensichtlich als array definiert, sollte er aber nicht.
Desweiteren sind hinter dem ts 2 Hochkommas, auch komisch.

Was kann da schuld sein?
Das sollte ja ein String sein.
Das phänomen tritt erst seit php 8.2 auf.

Noch ein Thema:
2024-01-03T17:51:44+00:00 [Exception] There was an unknown exception: Undefined constant "ts" in line (4) of /temp/modules/code2/section_55.php.inc
erscheint, wenn in der $_GET Abfrage lautet: $_GET[ts], da nimmt er offensichtlich das ts ohne Hochkomma als Konstante an.
Sollte ja auch nicht sein....

Offline

#2 04.01.2024 11:56:45

florian
Administrator

Re: Komisches PHP 8.2.7 Phänomen

Versuch mal so

$ts = "";
settype($ts, 'string');
//$ts = $_REQUEST[ts];
if ( !isset($_GET['ts']) || $_GET['ts'] == "" ) {
  $ts = "aktuell";
  settype($ts, 'string');
    
} else {
  $ts = $_GET['ts'];
  settype($ts, 'string');
 
}

echo "debug: ".$ts."<br />";
if (is_array($ts)) { echo "ts ist ein Array"; } else { echo "ts ist kein Array"; }

Nicht ärgern. Nur wundern.

Offline

#3 04.01.2024 12:07:26

berny
Member

Re: Komisches PHP 8.2.7 Phänomen

Wird interessant:

if (is_array($ts)) { 
echo "ts ist ein Array"; 
} else { 
echo "ts ist kein Array"; 
}
echo "debug: ".is_array($ts) ? 'Array <br />' : 'not an Array<br />';

debug: aktuell
ts ist kein ArrayArray

Wenn ich die zweite Zeile auskommentiere kommt nix, wenn ich sie dazu füge den obigen output...

Offline

#4 04.01.2024 12:16:16

florian
Administrator

Re: Komisches PHP 8.2.7 Phänomen

?


Nicht ärgern. Nur wundern.

Offline

#5 04.01.2024 13:10:31

berny
Member

Re: Komisches PHP 8.2.7 Phänomen

tja, genau das ? haben wir derzeit auch....

Der Kurzbefehl vs Normalabfrage ergeben unterschiedliche Ergebnisse....

Und ohne dem Kurzbefehl bekomme ich gar nichts zurück.

Ich check das später noch weiter

Offline

#6 04.01.2024 17:19:53

berny
Member

Re: Komisches PHP 8.2.7 Phänomen

OK erster Fehler erkannt:

echo "debug: ".is_array($ts) ? 'Array <br />' : 'not an Array<br />';

mag er nicht, muss

echo "debug: ";
echo is_array($ts) ? 'Array <br />' : 'not an Array<br />';

heißen, ein string vor der Abfrage mag er nicht.

debug ts content: aktuell
ts ist kein Array
debug: not an Array

Trotzdem immer noch die Fehlermeldung im Errorlog...

WBCE Version: 1.6.1
Tag: 1.6.1
PHP Version: 8.2.7

Kann es sein, dass das System irgenwie ein Problem mit der PHP Version hat, oder die installierte php Version Buggy ist?

Offline

#7 04.01.2024 17:33:44

berny
Member

Re: Komisches PHP 8.2.7 Phänomen

Wo kommt in der Warning eigentlich das /temp/ her?
Wird da was gecached?

Offline

#8 04.01.2024 18:58:16

florian
Administrator

Re: Komisches PHP 8.2.7 Phänomen

Kann es sein, dass das System irgenwie ein Problem mit der PHP Version hat, oder die installierte php Version Buggy ist?

Das ist kein WBCE-Problem.

Trotzdem immer noch die Fehlermeldung im Errorlog...

Hattest Du auch die if-Abfrage wie von mir gepostet angepasst?

if ( !isset($_GET['ts']) || $_GET['ts'] == "" ) {

Wo kommt in der Warning eigentlich das /temp/ her?
Wird da was gecached?

Nicht gecached, aber code2 legt für jeden Abschnitt eine section_xx.php.inc in /temp/modules/code2/ an.

Last edited by florian (04.01.2024 18:58:31)


Nicht ärgern. Nur wundern.

Offline

Liked by:

berny

#9 05.01.2024 12:33:42

berny
Member

Re: Komisches PHP 8.2.7 Phänomen

OK, das habe ich übersehen
Angepasst, funktioniert erst mal !

Offline

#10 06.01.2024 09:09:10

berny
Member

Re: Komisches PHP 8.2.7 Phänomen

Interessant ist auch:

list - each geht nicht mehr, die klassische foreach Schleife geht.

Ein array in einer URL ergibt warning, ausser dieser wird schön getrennt übergeben &x[0] =a&x[1]=b& usw.

Haben jetzt erst mal die meisten Fehler und warnings ausgemerzt.

20 Jahre alte scripte jedesmal auf die neue php Version anpassen ist oft mühsam....

@florian: Danke nochmal!

Last edited by berny (06.01.2024 09:10:24)

Offline

Board footer

up