Avatar billede bearhugx Nybegynder
19. juni 2003 - 10:57 Der er 11 kommentarer og
1 løsning

brug af URL til at sende argumenter til en php side

Hejsa eksperter

Jeg har hørt i krogene at man med php kan få følgende URL
  http://domæne/minSide/Søren

til faktisk at optræde som om at man kaldte

http://domæne/minSide.php  og sendte "Søren" med som argument

(faktisk tror jeg også at det er sådan det virker med
exp.dk / spm / ######

At der egenligt bare findes en php-side, som hedder spm.php, som får sendt ###### afsted som et eller andet argument

Hvordan gør man det ???? (gerne et kode-eksempel)

/Søren

(PS: Undskyld, hvis det er en dum titel, men jeg vidste ikke lige, hvordan jeg skulle forklare det)
Avatar billede kr-data Nybegynder
19. juni 2003 - 11:25 #1
http://www.webcafe.dk/artikler/apache/htaccessblandedetricks/ prøv at kigge der, da jeg ikke formoder du vil ha en side på størrelse med exp så er det nok din løsning!
Avatar billede exp Juniormester
19. juni 2003 - 11:41 #2
Avatar billede doek Nybegynder
19. juni 2003 - 12:26 #3
<?php include("minSide/Søren"); ?>

??
Avatar billede doek Nybegynder
19. juni 2003 - 12:29 #4
læste ikke det hele, prøver lige igen

<?php
$side = $_POST['side'];
include("minSide/$side");
?>

og kald siden med http://domæne/minSide.php?side=Søren
Avatar billede bearhugx Nybegynder
19. juni 2003 - 13:40 #5
Exp >>
Det virker simpelthen - takker for linket...


Dog vil jeg gøre opmærksom på at hvis man ikke har register_globals sat til (som er default off i PHP 4.3) så skal man huske at hente $PATH_INFO ud fra $_SERVER

Dvs i eksemplet skal
  $id = ereg_replace('[^0-9]', '', $PATH_INFO);
udskiftes med
  $id = ereg_replace('[^0-9]', '', $_SERVER["PATH_INFO"]);

Derudover skal man, i Apache httpd.conf, huske at slå
  AllowOverride All
til, så ens .htaccess fil bliver kørt

/Søren
Avatar billede bearhugx Nybegynder
19. juni 2003 - 13:49 #6
Lige et ekstra spm...

hvis jeg f.eks. skrev
  domæne/minSide/id=2&nr=6&usage=none

så ville min PATH_INFO blive til
  /id=2&nr=6&usage=none

Er der så en eller anden super-smart måde at få lavet den streng om til en array, så man kunne få
  mitArray["id"] = 2
  mitArray["nr"] = 6,  og
  mitArray["usage"] = none

------

og hvis man er _rigtig_ avanceret (kan man så angive, hvad variablen skal hedde?)

hvis jeg f.eks. skrev
  domæne/minSide/quark?id=2&nr=6&usage=none
så ville min PATH_INFO blive til
  /quark?id=2&nr=6&usage=none

og at man så kunne tilgå det via
  $quark["id"] = 2,
  $quark["nr"] = 6, og
  $quark["usage"] = "none"

(og jo - jeg ved godt at det ligner en GET Method URL ret meget, jeg er kun interesseret i at vide, om det rent faktisk virker...)
Avatar billede bearhugx Nybegynder
24. juni 2003 - 23:47 #7
exp >> jeg har nu forsøgt at afprøve scriptet herhjemme (det andet sted var på arbejdet )

Og der vil ikke engang
  domæne/minSide.php/12 virke

Jeg får en 404 - og ikke en kørsel af minSide (hvor jeg kan pille /12 ud af PATH_INFO

Den eneste forskel på de to systemer er
  arbejdspc : PHP/4.3.2
  hjemmepc  : PHP/4.3.1


Hvad kan der være galt.. :-/
Avatar billede exp Juniormester
24. juni 2003 - 23:50 #8
Jeg ved det faktisk ikke... jeg kan heller ikke få det til at du' herhjemme :-/
Avatar billede bearhugx Nybegynder
24. juni 2003 - 23:50 #9
(én anden forskel ... ArbejdsPC = apache 2.0.46 -- hjemmepc = apache 2.0.43 )
Avatar billede bearhugx Nybegynder
24. juni 2003 - 23:51 #10
tror du at det kan have noget med PHP versionen at gøre ? -- eller må det være opsætningsbøvl ?
Avatar billede bearhugx Nybegynder
06. juli 2003 - 17:27 #11
jeg har fået det til at virke med det samme med PHP 4.3.2 --- stadig apache 2.0.43 :-=)
Avatar billede exp Juniormester
06. juli 2003 - 17:53 #12
najs
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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