Avatar billede kimdolleris Nybegynder
04. juli 2007 - 10:25 Der er 11 kommentarer og
1 løsning

Erstatte url

Hej!

Nogle gange kunne jeg godt tænke mig at skjule min url. Så den i stedet for at hede minside.html kommer til at hedde default.php?id=1 . Resten af siderne skal selvfølgelig også have et ID som de reagerer på fx.

index.html = id=1
sub1.html = id=2
sub2.html = id=3

... etc.

php er ikke et krav - det kunne også være asp eller js. Tænkte bare at php nok var lettest.

Hvordan kan det lade sig at gøre rent praktisk?

Takker :D
Avatar billede bootup Nybegynder
04. juli 2007 - 10:43 #1
index.php
----------------------

<?php
if(isset($_GET['p'])) {    $p = $_GET['p']; }
else { $p = 1; }

if($p == 1) { include("forside.html"); }
elseif($p == 2) { include("anndenside.html"); }
elseif($p == 3) { include("sovs.html"); }
elseif($p == 4) { include("kartofler.html"); }
elseif($p == 5) { include("chokolade.html"); }

else { include ("404.html"); }
?>


Nå du så vil tilføje en side mere, sætter du bare endnu en "elseif"-sætning ind:
elseif($p == 6) { include("chokolade.html"); }


Kan tage ubegrænset antal sider
Avatar billede majbom Novice
04. juli 2007 - 10:53 #2
eller med en switch:

switch($_GET['p']){
  case 1:
      include('forside.html');
  break;
  case 1:
      include('side2.html');
  break;
  case 1:
      include('side3.html');
  break;
  default:
      include('404.html');
  break;
}
Avatar billede showsource Seniormester
04. juli 2007 - 10:55 #3
Du kan også lave et array

<?php
$sider = array(1 => "index.html",
              2 => "links.html",
              3 => "kontakt.html");

$include_fil = (isset($_GET["p"]) && isset($sider[$_GET["p"]]) ? $sider[$_GET["p"]] : $sider[1]);

    if(is_file($include_fil))
    {
    include($include_fil);
    }
    else
    {
    echo"Ups, fejl i setup!";
    }

?>
Avatar billede bootup Nybegynder
04. juli 2007 - 10:58 #4
splazz

Alle skal så bare ikke være case 1 :-)
Avatar billede kimdolleris Nybegynder
04. juli 2007 - 11:18 #5
heh.. jamen altså.. hvad skal jeg bruge? :O
Avatar billede bootup Nybegynder
04. juli 2007 - 11:24 #6
Det du syntes er nemmest :)

Jeg lavede den bare uden switch, da jeg tænkte du ikke havde arbejdet så meget med php og derfor ikke kendte til det.

Personligt syntes jeg switch ser pænest ud.
Avatar billede kimdolleris Nybegynder
04. juli 2007 - 11:31 #7
Smukt.. tak for det jeg bruger switch'en så :D
Avatar billede majbom Novice
04. juli 2007 - 11:37 #8
ja self skal det vare case 1,2,3 osv... det gik lidt stærkt ;)
takker for point :)
Avatar billede bootup Nybegynder
04. juli 2007 - 12:07 #9
Bare lige husk at når der ikke er noget indhold i $_GET['p'], altså når du besøger siden til at starte med. Så vil den inkludere fejl siden, da "p" ikke er sat.

Derfor bør du tilføje det jeg skrev, så det kommer til at se sådan her ud:

if(isset($_GET['p'])) { $p = $_GET['p']; }
else { $p = 1; }

switch($p){
  case 1:
      include('forside.html');
  break;
  case 2:
      include('side2.html');
  break;
  case 3:
      include('side3.html');
  break;
  default:
      include('404.html');
  break;
}

Hvis "p" ikke er sat, vil den altså nu gå til forsiden.
Avatar billede majbom Novice
04. juli 2007 - 12:23 #10
ja det er rigtigt, det skal self ikke være sådan at den går på fejlsiden, når man vil på hovedsiden :)
Avatar billede kimdolleris Nybegynder
04. juli 2007 - 13:16 #11
Bare lige for at være sikker... men linkene skal være index.php?id=1,  index.php?id=2,  index.php?id=3 etc. ??

:D
Avatar billede kimdolleris Nybegynder
04. juli 2007 - 13:28 #12
"p" i stedet for "id" selvfølgelig! :D Mange tak skal i BEGGE have !!
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