Avatar billede franktango Nybegynder
12. februar 2003 - 23:06 Der er 5 kommentarer og
1 løsning

localhost problemer

hej
jeg har apache+php installeret på OSX (problemet var er det samme på win98) og jeg har et problem:
med nedenstående kode burde jeg kunne linke til fx. blabla.php?id=xxx og inkludere content/xxx.txt

den kan jeg også når jeg uploader det til mit hotel men ikke på locahost.

<?
  if ($id == xxx){
  include ("content/xxx.txt");
  } else if ($id == yyy){
  include ("content/yyy.txt");
  } else if ($id == zzz){
  include ("content/zzz.txt");
  }
  else{
  include ("content/default.txt");
  };

?>

hjælp...??
=)
Avatar billede erikjacobsen Ekspert
12. februar 2003 - 23:12 #1
brug $_GET['id'] i stedet for $id
Avatar billede thomasledet Nybegynder
12. februar 2003 - 23:17 #2
det er fordi "register globals" er slået fra i din php.ini... lad den endelig blive ved med at være det og brug $_GET['id'] eller $_POST['id'] i stedet
Avatar billede franktango Nybegynder
13. februar 2003 - 01:44 #3
tak =)
og det skaber så endnu et problem...

hvad så med det her?

<?php   
$thefile = "content/$id.txt";
if (file_exists($thefile))
{
include($thefile);
}
else
{
include("content/$bread.txt");
};
?>

eller skal jeg oprette et nyt spørgsmål?
Avatar billede thomasledet Nybegynder
13. februar 2003 - 02:36 #4
du bør nok sætte dig lidt ind i sikkerhed, inden du laver den slags...

ethvert input fra en ekstern kilde bør altid checkes i hoved og røv... en ekstern kilde er eksempelvist en bruger på et website...

tænk, hvis jeg som bruger sendte denne denne værdi med som "id": ../../../../../../../etc/passwd

så ville jeg blive præsenteret for hele systemets passwordfil... det er næppe noget, du er interesseret i... altså skal du sikre dig, at "id" er en integer... så den ikke indeholder alt muligt skrammel som kan komprommittere hele dit system... sørg endvidere altid for at php kører med safe_mode... og at apache altid kører som en bruger uden særlige rettigheder - eventuelt i et chroot...

kig eventuelt her:

http://borderworlds.dk/writings/why_php_is_broken.html
Avatar billede thomasledet Nybegynder
13. februar 2003 - 02:39 #5
fx noget i retning af

if (is_numeric($_GET['id'])) $id = $_GET['id'];
Avatar billede franktango Nybegynder
13. februar 2003 - 22:52 #6
ok, 1000tak for hjælp og råd =)
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