fatal error cannot re-assign auto-global variable _post in

Die Fehlermeldung “fatal error cannot re-assign auto-global variable _post in …” beendet regelmäßig den Aufruf von Skripten nach Umstellung auf PHP 5.4.

Grund dafür ist das Handling von superglobalen Variablen in PHP 5.4 und $_POST für die Übergabe von Formulardaten gehört natürlich dazu.

Die Variable $_POST darf seit PHP 5.4 nicht mehr als Parameter in Funktion stehen. Das gleiche gilt auch für andere superglobale Variablen, wie $_SESSION, usw… Das muß auch nicht sein, als superglobale Variablen stehen sie sowieso überall zur Verfügung.

Falls Skripte davon betroffen sind empfiehlt sich folgendes:

1. Als schnelle Maßnahme auf PHP 5.2 wechseln

2. Alle Parameter mit Namen von superglobalen Variablen aus Funktionen entfernen

Folgendes wird mit obiger Fehlermeldung von PHP 5.4 quittiert

if($_POST) myvar = func_var($_POST);

function func_var($_POST){
myvar = $_POST[‘var’];
return(myvar);
}

So wäre alles kompatibel zu PHP 5.4

if($_POST) myvar = func_var();

function func_var(){
myvar = $_POST[‘var’];
return(myvar);
}

 

Veröffentlicht unter Programierung Getagged mit: ,

Hinterlasse eine Antwort

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close