webForumDet fria alternativet

register_globals

1 svar · 244 visningar · startad av Smultron

SmultronMedlem sedan juli 2002431 inlägg
#1

vad är skillnaderna när man använder register_globals = off.
Vad är det för några saker som man ska göra annorlunda och så?

detta vet jag iaf:

$id = $_GET["id"];
print $id;

istället för

print $id;

som man kan göra när man har det påslaget.
memn vad är det mer för saker?

MatteMedlem sedan aug. 20002 970 inlägg
#2

I stort sett vad du kommit fram till själv.

När register_globals=Off kan du inte hämta dina variabler direkt från POST, GET, sessioner eller cookies, du måste då använda en fördefinierad associativ array: $_POST, $_GET, $_SESSION eller $_COOKIE.

Men varför lägga över den till en ny variabel, när du kan skriva ut variabeln direkt:

echo $_GET['id'];

Dina servervariabler typ $PHP_SELF eller $QUERY_STRING kommer du heller inte åt när register_globals=Off; du får skriva $_SERVER['PHP_SELF'] eller $_SERVER['QUERY_STRING'].

Du kan heller inte sätta en sessionsvariabel med session_register(), utan du får använda $_SESSION['variabel'] = "värde";

Och nu till något som är mycket viktigt. Det som fungerar när register_globals=Off fungerar även när register_globals=On (sånär på någon sessionshistoria vid vissa PHP-versioner).
Därför bör du skriva dina skript som om register_globals=Off även när du har On på din server. Då kan du flytta dina skript mellan servrar oberoende av inställning på register_globals.

Genererad på 364 ms · cache AV · v20260730165559-full.f96bc7eb