← Back to team overview

sslug-teknik team mailing list archive

Re: parameter overførsel i php

 

On Tue, Apr 08, 2003 at 11:53:09PM +0200, Jesper Berth wrote:
> Det er ikke en fejl i koden da den virker på en anden server
> 
> www.santaz.dk/test.php?navn=Jesper
> 
> Siden skal bare skrive Hej Jesper 
> 
> html>
> <body>
> 
> <?php
> 
> echo "Hej $navn";
> 
> ?>
> 
> </body>
> </html>
> 
> Hva skal jeg gøre .....
Det er en fejl i koden...

Fra og med php version 4.2, er default at have register_globals i din
php.ini sat til off (eller hvad det nu hedder). Det resulterer i at bare
fordi du skriver ?navn=fisk efter en hjemmeside, har denne hjemmeside
ikke lige pludselig en variabel der er initializeret til fisk. Derimod
bliver alle parametre, alt efter deres type lagt ind i et globalt array.
Parametre der bliver givet med i URL'en kommer f.eks. i $_GET arrayet,
mens parametre der bliver postet i en form kommer i $_POST arrayet.

Så for at din kode skal virke skal du ændre den til:

echo "Hej " . $_GET["navn"];

Grunden til at det er blevet lavet om, var fordi det var for let at lave
en PHP-side med et sikkerheds problem, hvis man bruger den gamle
register_globals metode.

Hvis du sætter register_globals til On, så vil dit eget kode eksempel
virke. Men hvis du alligevel selv skriver koden, og du ikke har brug for
andre PHP projekter, så vil jeg klart anbefale dig at lade være... 

-- 
/-----------------------------------------------------\
| Klaus S. Madsen      | "Failure is not an option... |
| ICQ: 45400164        |  It comes bundled with your  |
| www.hjernemadsen.org |  Microsoft products!"        |
\-----------------------------------------------------/


References