Hej
OK, men det har virket før uden at skulle "gette" variable. Hvad kan grunden være til at det ikke længere virker?
Hvorfor er GET et bedre princip?
Mik D
Siden PHP 4.1.0 har $_GET, $_POST og $_SERVER eksisteret som super globals. Fra PHP 4.2.0 blev register_globals sat til OFF som default.
Fordelene er bla., at du adskiller interne variable i dit script fra variable i url:
Se koden herunder (fra php.net -
http://dk2.php.net/register_globals)
// define $authorized = true only if user is authenticated
if (authenticated_user()) {
$authorized = true;
}
// Because we didn't first initialize $authorized as false, this might be
// defined through register_globals, like from GET auth.php?authorized=1
// So, anyone can be seen as authenticated!
if ($authorized) {
include "/highly/sensitive/data.php";
}
?>
Hvis du ikke selv definere $authorized som false i starten, vil du kunne få adgang til /highly/sensitive/data.php ved at skrive: www.domain.dk/index.php?authorized=1 (hvis register_globals er sat til ON)
Med register globals ville du ikke kunne gøre dette, da din interne $authorized ikke har noget med $_GET['authorized'] at gøre...
Indlæg senest redigeret d. 12.05.2008 09:34 af Bruger #4683