Avatar billede asgerz.dk Nybegynder
26. maj 2004 - 13:55 Der er 12 kommentarer og
1 løsning

Brug af variabler fra url'en

Hvad skal jeg gøre for at min apache-server bruger de variabler jeg sætter ind i url'en? Lige nu ignoreres de bare!
Avatar billede taskmgr Nybegynder
26. maj 2004 - 13:57 #1
Prøv at beskriv nærmere hvordan du gør.
Avatar billede asgerz.dk Nybegynder
26. maj 2004 - 13:59 #2
jamen lad os sige at jeg kalder localhost/hh.php?h=o som url
så har jeg en php fil der hedder
<?php
print($h);
?>
og der kommer ikke noget på siden!
Avatar billede arne_v Ekspert
26. maj 2004 - 13:59 #3
Normalt server Apache statisk indhold. Og HTML filer ret ligeglade med
parametre.
Avatar billede kasper.h Nybegynder
26. maj 2004 - 13:59 #4
<?php
print $_GET['h'];
?>
Avatar billede arne_v Ekspert
26. maj 2004 - 14:00 #5
Ah - PHP.

Så ligger parametrene i et array.

En PHP mand kan hurtigt fortælle dig hvad det hedder.
Avatar billede kasper.h Nybegynder
26. maj 2004 - 14:01 #6
ja det hedder $_GET hvis det er noget der står på adresselinien, $_POST hvis det er postet via en form.
Avatar billede asgerz.dk Nybegynder
26. maj 2004 - 14:02 #7
Ok kasper det virker, men det undre mig at det andet ikke gør, da det virker på flere andre servere... Nogen forklaring?
Avatar billede kasper.h Nybegynder
26. maj 2004 - 14:03 #8
Ja, det har noget at gøre med hvordan PHP er konfigureret, default i de nye versioner er at man skal bruge $_GET eller $_POST, af sikkerhedmæssige årsager.. Så kan en bruger ikke rette i en variabel du bruger, ved at skrive den i URL'en, og du ved præcis hvilke variabler du selv laver, og hvilke der kommer fra brugeren.
Avatar billede taskmgr Nybegynder
26. maj 2004 - 14:03 #9
Ja, som kasper.h skriver, brug $_GET (eller $_REQUEST).

http://dk.php.net/manual/en/reserved.variables.php#reserved.variables.get
Avatar billede asgerz.dk Nybegynder
26. maj 2004 - 14:05 #10
Ok, jamen svaret er jo nok at det er en nyere version jeg bruger... Tak!!!
Avatar billede sukos Juniormester
26. maj 2004 - 16:52 #11
I php.ini, er en linie med register_globals
I nyere PHP versioner, er den pr. default sat til Off
Hvis du ændrer den til On, vil det virke, men er ikke anbefalesværdigt!
Avatar billede asgerz.dk Nybegynder
26. maj 2004 - 17:14 #12
sukos--> kan du komme nærmere ind på hvorfor det ikke er anbefalesværdigt???
Avatar billede Slettet bruger
26. maj 2004 - 19:15 #13
Det står i Kaspers indlæg 26/05-2004 14:03:49, men jeg kan da lige uddybe.

Tidligere var det meget let at bruge variabler "udefra". Hvis man ikke var opmærksom var det til gengæld også meget let for folk udefra at "bryde ind" og lave ulykker.


Her er et eksempel på gammel kode, som ikke er indbrudssikker:
<?php

session_start();

// test om navn og kode fra form er korrekt
if ($brugernavn=="admin" && $kodeord=="hemmeligt"){
  $login=$brugernavn;
  session_register('login')
}

if ($login=='admin'){
  echo "Hej admin!";
} else {
  echo "Skrid, der er lukket";
}

?>

Meningen var, at variablen $login skulle komme fra en session, men den kunne lige så godt komme fra adresselinien. Det kunne man godt teste for, men de fleste glemte det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester