Alte Superglobals in neue umwandeln

dAk0Ta

Mitglied
Hallo ich habe mal ein Anliegen:

Also ich habe da ein Script was hauptsächlich mit solchen alten globalen Variablen oder was das auch immer sind gescriptet wurde wie zb: $HTTP_COOKIE_VARS nun muss ich noch paar wochen auf ein Update warten, besteht die Möglichkeit zb. durch einer if abfrage zu kontrollieren ob ein socher Befehl anliegt und diesen dann in zb: $_COOKIE umzuwandeln? Also so das ich das zum Bsp. nur einmal in die config_inc.php eintrage denn die wird ja in jeder Seite mit included... Oder gibt es eine andere Möglichkeit das es so geht? Manche von euch werden jetzt sagen das ich doch einfach register_long_arrays auf On stellen soll dann gibts da keine Probleme mehr, ja das stimmt aber ich komm nicht an meine php.ini ran und dadurch es Wochenende ist meldet sich da auch keiner bei meinem Hoster. Und da noch der ganze Sonntag bevor steht möchte ich nicht mehr so lange warten *g*

Besten Dank schonmal im vorraus!

mfG
 
Entwickle deine Skripte lieber zukunftssicher und verwende die kurzen vordefinierten Variablen.
Nachfolgendes könntest du zusätzlich einsetzen, um nachträglichh die kurzen vordefinierten Variablen zu erzeugen:
PHP:
<?php

	// remove long arrays
	$_predefinedVariables = array(
		'_GET'     => 'HTTP_GET_VARS',
		'_POST'    => 'HTTP_POST_VARS',
		'_COOKIE'  => 'HTTP_COOKIE_VARS',
		'_ENV'     => 'HTTP_ENV_VARS',
		'_SERVER'  => 'HTTP_SERVER_VARS',
		'_SESSION' => 'HTTP_SESSION_VARS',
		'_FILES'   => 'HTTP_POST_FILES',
		'_REQUEST' => explode('|', chunk_split(ini_get('variables_order'), 1, '|'))
	);
	$_variableTokens = array(
		'E' => '_ENV',
		'G' => '_GET',
		'P' => '_POST',
		'C' => '_COOKIE',
		'S' => '_SERVER'
	);

	if( (bool) ini_get('register_long_arrays') === true ) {
		foreach( $_predefinedVariables as $key => $value ) {
			if( is_string($value) && isset(${$value}) ) {
				${$key} =& ${$value};
				unset(${$value});
				continue;
			}
			if( is_array($value) ) {
				${$key} = array();
				foreach( $value as $tmp ) {
					if( !empty($tmp) && isset($_variableTokens[$tmp]) ) {
						${$key} = array_merge(${$key}, ${$_variableTokens[$tmp]});
					}
				}
			}
		}
	}

?>
Ich hoffe, es funktioniert.
 
Hallo erstmal besten Dank für die schnelle Antwort, doch leider funktioniert es damit nicht. Aber trotzdem danke.

PS: Ich Scripte mit den kurzen Variablen, nur das Script ist von jemandem anderen, gekauft, und ein Update kommt erst in ein paar Wochen raus wo diese alten Werte dann raus sind.

mfG
 
Ich merke gerade, dass mein Vorschlag genau das Umgekehrte von dem macht, was du dir vorstellst, Dakota.
 
Zurück