PDA

View Full Version : PHP side


Eristoff
24. oktober 2002, 19:40
Jeg holder på å lage en side skrevet i PHP.

<?php
if($side == "meg"){
include "include/meg.php";
}
else if($side == "avstemming"){
include "include/poll.php";
}
else if($side == "irc"){
include "include/irc.php";
}
else if($side == "linker"){
include "include/linker.php";
}
else if($side == "gb"){
include "include/gb.php";
}
else{
readfile("http://localhost/news/news.txt");
}
?>

I GB.php står det:

<iframe src="include/gjestebok/index.php" height="350" width="100%" border="0" frameborder="0" name="main"></iframe>

Når jeg går på noen liker blir url http://localhost/?side=linker ?side=meg osv.
Men når jeg går på gjestebok'en (X book:D) blir url gjestebok.php og når jeg trykker meg fra gjestebok'en blir url gjestebok.php gjestebok.php?side=meg osv.

Grunnen til det er fordi include funket ikke med gjesteboken.

Kunne noen hjulpet meg å skrevet en scwitch til disse sidene?

Jeg skal egentlig kun ha 1 side slik det blir _lett_ å skifte design, index.php men nå har jeg 3stider.

index.php gjestebok.php og admin.php

TipeX
24. oktober 2002, 20:31
Nei nei nei:)

Ikke bruk if på dette gutten min. Bruk switch.

switch ($foo) {
case "bar":
echo "\$foo er bar";
break;
case default:
echo "Ingen caser som matcher \$foo eller \$foo er ikke satt";
break;
}


Men selv bruker jeg en enda lettere(igrunn ikke, men jeg foretrekker den) metode. Den krever at alt av innhold blir skrevet som funksjoner:

if (!$content) {
$content = "news";
}
if (function_exists($content)) {
$content();
}
else {
echo "<h1>404 - No file</h1>";
echo "<p>Siden du ser etter finnes ikke</p>";
}

Eristoff
24. oktober 2002, 21:12
Takk TipeX! Men kan du gi ett eks. på min koding? Så forstår jeg det sikkert ;)

TipeX
24. oktober 2002, 21:20
Hihi.. Ble så forskrekket med å se If til slikt at jeg glemte å lese resten av posten :rolleyes: Kan du ikke bare løse det med å skrive index.php?side=foobar istedefor bare ?side=foobar ?

Eristoff
24. oktober 2002, 21:50
Opprinnelig postet av TipeX
Hihi.. Ble så forskrekket med å se If til slikt at jeg glemte å lese resten av posten :rolleyes: Kan du ikke bare løse det med å skrive index.php?side=foobar istedefor bare ?side=foobar ?

Hvorfor har jeg ikke tenkt på det før? :D

Hva er det som er galt med if? Hva er bedre med swiitch?

TipeX
24. oktober 2002, 21:54
Fordi if er så på trynet til slikt:) Det blir lett feil om ingenting passer og styr. Dermed er det lettere med en switch som har default ordning. Og jeg synes en switch er lettere å lese. Skal man teste flere ting på en variabel bruker jeg switch. If bruker jeg bare når det er enten eller.

Scha
25. oktober 2002, 08:34
Opprinnelig postet av TipeX
Fordi if er så på trynet til slikt:) Det blir lett feil om ingenting passer og styr. Dermed er det lettere med en switch som har default ordning. Og jeg synes en switch er lettere å lese. Skal man teste flere ting på en variabel bruker jeg switch. If bruker jeg bare når det er enten eller.

Ville bare fortelle det at en rekke med if()'er kan ha en else på slutten som vill fungerere akkurat som en default på slutten av en switch...

Let me prove why...

Vi må ta turen over i C en liten tur, ettersom jeg ikke er sikker på hvordan PHP intrepeterer case'er...

Når du kompilerer et C program som inne holder en switch, er det 2 muligheter for hva kompilatoren vill gjøre med switchen..

Enten vill den lage noe som er kalt en "lookup" table.. Det er i prinsippet et array med adresser, og programmet jmp'er til den adressen som har key'en som passer til switchen... Dette skjer om det er nokk case'er (og at dem er nokk i rekkefølge til og ikke sløse alt for mye med minne), til at dette skal lønne seg.

Det andre som kan skje er at kompilatoren gjør om hele switchen til en rekke med if(), else if() og else... Og så kompilerer slik..

Scha :D

Eristoff
26. oktober 2002, 17:11
Når bruker jeg switch :D Takk for dere anbefalte meg det! & Hjalp meg :)