Birger wrote:
> "Martin" <maaNO@SPAMscandesigns.dk> skrev i en meddelelse
> news:47690f56$0$90268$14726298@news.sunsite.dk...
>> Birger wrote:
>>> $_SESSION[ 'navn'] er indholdet af arrayet i position 'navn', mens
>>> $_SESSION[ navn] er noget vrøvl - med mindre du har assignet et eller
>>> andet til navn.
>> Ovenstående er faktisk fuldstændig ens... begge returner det samme.
>> At så syntax highlightning bliver meget pænere med 'navn' versionen er så
>> noget helt andet.
>>
>> Samme opnås også med _POST, _GET osv.
>>
>>> $_SESSION[ 'navn'] skal ikke kunne ændres, med mindre du explicit beder
>>> om det, med en ny assignment, og der skal ikke være nogen sammenhæng
>>> mellem $_SESSION og andre variable.
>>>
>>> Så det du beskriver her, må absolut være en fejl.
>> Så vidt jeg lige husker, så kan register_globals være en frygtelig faktor
>> i dette spil.
>> (Kan desværre ikke teste det, da det er pillet fra i PHP 6 som jeg kører
>> på min testmaskine, og ingen af mine webhosts kører med register_globals
>>
>> register_globals = on // php.ini
>>
>> $_SESSION['navn'] = 'Hej';
>> echo $navn; // Hej
>> $navn = 'Muhko';
>> echo $_SESSION['navn']; // Muhko
>
> Man bliver stadig klogere. Ser ud til at Hans-Ole's problem er
> register_globals.
>
http://www.php.net/manual/da/security.globals.php
> På one.com, vælges registerglobals i kontrolpanelet, og kan svjv. ikke
> ændres på anden vis. Den er - og bør IMHO være off.
Der var også snak om at PHP 5 skulle have taget denne ud af configgen og
være umulig at kunne ændre den, men da der stadig efter deres mening er
mange som stadig koder efter den er on, så ville der nok være for mange
problemer. Men 6'eren har smidt den ud... :)
>
> fra
http://dk.php.net/manual/da/language.types.array.php :
> "
> <?php
> $foo[bar] = 'enemy';
> echo $foo[bar];
> // etc
> ?>
> This is wrong, but it works. Then, why is it wrong? The reason is that this
> code has an undefined constant (bar) rather than a string ('bar' - notice
> the quotes), and PHP may in future define constants which, unfortunately for
> your code, have the same name. It works because PHP automatically converts a
> bare string (an unquoted string which does not correspond to any known
> symbol) into a string which contains the bare string. For instance, if there
> is no defined constant named bar, then PHP will substitute in the string
> 'bar' and use that.
> "
>
> Altså :
> $_SESSION[ navn] er noget vrøvl der kun virker fordi PHP på dette område, er
> lige så venlig som browsere er mod HTML.
Enig.. der er nogle ting som er uhensigtsmæssige - og sikkert kun
medtaget for at gøre det mere brugervenligt, som så i sidste ende
faktisk har den modsatte virkning.
også derfor jeg bedst kan lide at holde mig til en standardisering af
koden, altså gøre tingene på den samme måde hvergang, istedet for at
have 2 vidt forskellige slags koder.
Men det er jo så en helt anden snak :)
> Med mindre navn er en defineret konstant (som så pr. konvention burde have
> været med store bogstaver) - i hvilket tilfælde man vil få noget andet end
> $_SESSION[ 'navn'], med mindre navn er define("navn", "navn");.
>
>
>
> Birger
> -----
>
http://bbsorensen.dk
>
>