Gundersen skrev:
>
> det er fordi at Serveren før stod til Register_globals = on, hvor den
> nu er sat til off. Dette er af sikkerheds messige grunde!
>
> Man skal bare lige sætte denne lille kode ind, sår virker det!
>
> if($HTTP_POST_VARS){
> foreach($HTTP_POST_VARS as $Key=>$Value)
> {
> $$Key = $Value;
> }
> }
>
> if($HTTP_COOKIE_VARS){
> foreach($HTTP_COOKIE_VARS as $Key=>$Value)
> {
> $$Key = $Value;
> }
> }
>
> if($HTTP_GET_VARS){
> foreach($HTTP_GET_VARS as $Key=>$Value)
> {
> $$Key = $Value;
> }
> }
>
> if($HTTP_SERVER_VARS){
> foreach($HTTP_SERVER_VARS as $Key=>$Value)
> {
> $$Key = $Value;
> }
> }
>
> if($HTTP_ENV_VARS){
> foreach($HTTP_ENV_VARS as $Key=>$Value)
> {
> $$Key = $Value;
> }
> }
Det kan gøres hurtigere:
$array = array_merge($HTTP_POST_VARS, $HTTP_COOKIE_VARS, $HTTP_GET_VARS,
$HTTP_SERVER_VARS, $HTTP_ENV_VARS);
foreach ($array as $key => $value) {
$$key = $value;
}
I PHP 4.1.0 og senere versioner skal arrayene nævnt i array_merge()
udskiftes med nogle andre arrays.
Bemærk i øvrigt, at både din og min metode giver problemer, hvis et af
elementerne i f.eks. $HTTP_GET_VARS er et array.
Bemærk også, at hele fidusen med at sætte register_globals til off
ligesom forsvinder, når man laver ovenstående nummer.
--
Jonas Koch Bentzen
PHP-databaseklasse til PostgreSQL og MySQL:
http://understroem.dk/fasdab/