/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
ini_set
Fra : Jonas Koch Bentzen


Dato : 28-04-01 17:55

Nogen, der ved, hvorfor man ikke kan sætte sådan noget som
magic_quotes_gpc vha. ini_set? Følgende kode returnerer sandt, hvis
magic_quotes_gpc allerede *er* sat til "Off" i php.ini. Er den ikke
det, returnerer den falsk.

ini_set("magic_quotes_gpc", "0") or die("Æv!");

Ifølge http://php.net/manual/en/function.ini-set.php burde man kunne
sætte sådan noget som magic_quotes_gpc i et script (godt nok kun fra
version 4.0.5-dev, men jeg bruger 4.0.6 (CVS)).

--
Venlig hilsen
Jonas Koch Bentzen

 
 
Christian Jørgensen (28-04-2001)
Kommentar
Fra : Christian Jørgensen


Dato : 28-04-01 19:24

Jonas Koch Bentzen <ingen.epostadresse@eksempel.dk> wrote:

> ini_set("magic_quotes_gpc", "0") or die("Æv!");

Hmm.. du kunne også vælge at lave en:
set_magic_quotes_runtime(0);

Selvom det nok ikke giver helt samme effekt ?

--
Christian Jørgensen
http://www.razor.dk

"Uden cola og hikke - Duer helten ikke!"

Jonas Koch Bentzen (28-04-2001)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 28-04-01 19:55

Christian Jørgensen skrev:

> Jonas Koch Bentzen <ingen.epostadresse@eksempel.dk> wrote:
>
>> ini_set("magic_quotes_gpc", "0") or die("Æv!");
>
> Hmm.. du kunne også vælge at lave en:
> set_magic_quotes_runtime(0);

Det rører ikke magic_quotes_gpc og magic_quotes_sybase.

--
Venlig hilsen
Jonas Koch Bentzen

Jonas Koch Bentzen (28-04-2001)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 28-04-01 21:36

Jonas Koch Bentzen skrev:

> Nogen, der ved, hvorfor man ikke kan sætte sådan noget som
> magic_quotes_gpc vha. ini_set?

Nu har jeg lavet en del tests med ini_set
(http://php.net/manual/en/function.ini-set.php) med både version
4.0.4pl1 og 4.0.6 af PHP, og jeg kan konkludere, at ini_set i mange
tilfælde simpelthen ikke virker. Prøv at se det følgende eksempel: Jeg
kalder en fil på http://j.k.b/u/Test/test.php?test=hmm.
register_globals er i php.ini sat til "On", så derfor skal værdien af
$test gerne være "hmm". Jeg prøver så at slå register_globals fra vha.
ini_set, og i den næste linje fortæller ini_get mig rigtigt nok, at
register_globals nu er sat til "0". Alligevel bliver værdien af $test
spyttet ud på siden.

<?php
ini_set("register_globals", "0");
echo ini_get("register_globals")."<br/>";

echo $test;
?>

Outputtet er følgende:
0
hmm

Det er "hmm", der er problemet, for register_globals burde være slået
fra vha. ini_set. Hvis jeg så går ind i php.ini og slår
register_globals fra, så virker det fint: "hmm" bliver ikke vist.

--
Venlig hilsen
Jonas Koch Bentzen

Jonas Koch Bentzen (29-04-2001)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 29-04-01 08:40

Jonas Koch Bentzen skrev:

> Jonas Koch Bentzen skrev:
>
>> Nogen, der ved, hvorfor man ikke kan sætte sådan noget som
>> magic_quotes_gpc vha. ini_set?
>
> Nu har jeg lavet en del tests med ini_set
> (http://php.net/manual/en/function.ini-set.php) med både version
> 4.0.4pl1 og 4.0.6 af PHP, og jeg kan konkludere, at ini_set i mange
> tilfælde simpelthen ikke virker.

Dét meldte jeg til PHPs fejlliste, hvorefter jeg fik det her svar
tilbage: "ini_set() cannot affect the behavior of PHP that takes place
before the script execution begins.
Variable registration occurs before the execution of the script begins
(the variables are available and accessible right from the 1st line in
the script). So by the time you call ini_set(), variable registration
is already done. Affecting it in any way (global registration,
automated quotes) is not possible."

Problemet er så bare, den måde, det er skrevet på i manualen, giver
indtryk af, at man rent faktisk *kan* bruge ini_set() til at indstille
sådan noget som register_globals og magic_quotes_*.

--
Venlig hilsen
Jonas Koch Bentzen

Niels Andersen (29-04-2001)
Kommentar
Fra : Niels Andersen


Dato : 29-04-01 09:26

"Jonas Koch Bentzen" <ingen.epostadresse@eksempel.dk> skrev i en meddelelse
news:9cggf7$apv$1@news.cybercity.dk...
> "ini_set() cannot affect the behavior of PHP that takes place
> before the script execution begins.

Er der ikke noget med at man kan sætte den slags i .htaccess, og så vil det
få effekt før scriptet initialiseres?


Mvh.

Niels Andersen



Jonas Koch Bentzen (29-04-2001)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 29-04-01 10:55

Niels Andersen skrev:

> "Jonas Koch Bentzen" <ingen.epostadresse@eksempel.dk> skrev i en
> meddelelse news:9cggf7$apv$1@news.cybercity.dk...
>> "ini_set() cannot affect the behavior of PHP that takes place
>> before the script execution begins.
>
> Er der ikke noget med at man kan sætte den slags i .htaccess, og så
> vil det få effekt før scriptet initialiseres?

Jo. Lige netop i det script, jeg var ved at lave, var det dog vigtigt,
at det også kunne bruges på andre servere end lige Apache - og derfor
ville jeg gerne undgå .htaccess.

--
Venlig hilsen
Jonas Koch Bentzen

Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408877
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste