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

Diese Website nutzt Cookies, um unseren Besuchern die bestmögliche Funktionalität bieten zu können. Durch die weitere Nutzung unserer Seiten erklären Sie sich mit dem Einsatz von Cookies einverstanden. Erfahren Sie mehr zum Einsatz von Cookies und dem Umgang mit Ihren persönlichen Daten in unserer: Datenschutzerklärung

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen", um Ihnen das beste Surferlebnis möglich zu geben. Wenn Sie diese Website ohne Änderung Ihrer Cookie-Einstellungen zu verwenden fortzufahren, oder klicken Sie auf "Akzeptieren" unten, dann erklären Sie sich mit diesen.

Schließen