• Forum
      /  
    Programmering og webdesign
      /  
    Hjemmeside design
  • 24-02-2004 · 11:44 661 visninger 22 svar
  • Denne tråd er over 6 måneder gammel

    Er du sikker på, at du har noget relevant at tilføje?

  • PHP: En eller flere sider?

    Af Procrastinator Supporter Aspirant
Jeg står og skal en større portal, og jeg tænker lidt på om jeg skulle lave det hele som en stor side så alle linksne hedder fx. index.php?page=forum, og så fylde index.php op med if ($page=forum) {forum}? Eller ville alle de besøgende så skulle hente hele siden (hvis kode jeg regner med bliver på nogle tusind linier) ind for at kunne se fx. forummet?

gert

#1

Gæst
24-02-2004 11:46
Det skal man ikke.
php koden bliver kørt på serveren, dvs. at det kun er den del i if´en der bliver sendt til brugeren.
Mega Nørd
24-02-2004 12:06
Det er ikk helt sådan du gør. Og som #1 siger så bliver php koden kørt på serveren så det der kommer ud er html.
Procrastinator@ccv

#3

Gæst
24-02-2004 14:07
#2 Jaja, det ved jeg. Men det der kunne være problemet er jo tiden det tager at afvikle php-scriptet på siden.
Megabruger
24-02-2004 14:10
hmmm... hvis du skal lave en stor portal skal du nok regne med lidt mere end 1000 linier... :P
domaz.dk version 2 lavede jeg på den måde som du snakker om... jeg var langt fra færdig... og tror nok den var oppe på 15.000 linier...
Det ender nok os med at du ikk kan finde rundt i din egen kode hvis det bare er en stor omgang pæreveling... ligesom det gjorde for mig...
Procrastinator@ccv

#5

Gæst
24-02-2004 14:12
siden=serveren
Procrastinator@ccv

#6

Gæst
24-02-2004 14:14
#4 Det kan godt være at du har ret...
Monsterbruger
24-02-2004 14:41
det nemmeste ville være at køre det hele fra index.php og så includere filerne som bliver brugt sådan at index.php?page=forum includerer filen forum.php... Det ville nok være det nemmeste!
Filp
Gigabruger
24-02-2004 17:54
#7 det er os den metode jeg nu bruger på min side...

<?php
// henter værdi fra f.eks. index.php?s=nyheder

if (!isset($s)) {
require("sites/forside.php");
} elseif ($site_error == 1) {
echo "Site error";
} else {
require("sites/$s.php");
}
?>
Gigabruger
24-02-2004 17:56
glemte lige at tage det øverste af koden med....

<?php
if ($s != "") {
if (file_exists("sites/$s.php")) {
$s_text = str_replace("_", " ", $s);
echo "<b>» $s_text «</b>";
} else {
echo "<b>» Site error «</b>";
$site_error = 1;
}
} else {
echo "<b>» forside «</b>";
}

echo "<br><br>";

// henter værdi fra f.eks. index.php?s=nyheder

if (!isset($s)) {
require("sites/forside.php");
} elseif ($site_error == 1) {
echo "Site error";
} else {
require("sites/$s.php");
}
?>
L00t

#10

Semi Supporter
24-02-2004 18:04
#0

Ja, du kan sagtens gøre det på den måde - men brug include eller require til at inkludere de forskellige dele af siden med, ellers bliver det uoverskueligt.

Jeg tror det er en smagssag hvilken metode man vælger ;o)
Selv bruger jeg den metode du nævner til mindre sites, og den med at dele sitet op i forskellige filer til større sites hvor der stilles lidt større krav til overskueligheden.
Gregorian(ikke logged)

#11

Gæst
24-02-2004 18:04
jeg bruger selv dette script hvor jeg først lige tjekker om filen eksisterer overhovedet.. ellers samme princip som #8/#9

<?
$side = $HTTP_GET_VARS["side"];

if(isset($side)){
$side = $side.".php";
if(file_exists($side)){
include("$side");
}else{
include("siden_findes_ikke.php");
}
}else{
include("main.php");
}
?>
Supporter Aspirant
24-02-2004 22:48
#11 Ja, det er også den metode jeg bruger nu. Det vil sige næsten, jeg stod lige og manglede den file_exists()-funktion. Tak for den :)
psa

#13

Mega Supporter
24-02-2004 23:21
en anden god er mappe setup..

index.php
<img src="<?=$r?>gfx/billed.jpg"><br>
<?
$side = $_GET[side];
if($side==NULL){ $side = "1"; }
$side = "pg_$side.php";
include($side);
?>

info/index.php
<?
$r = "../";
include("$r"."index.php");
?>

Så smider du bare pg_X.php i root og de forskellige undermapper og linker til ?side=1 med mindre du selv kun har en side i hver mappe...
Procrastinator

#14

Gæst
25-02-2004 08:50
#13 Efter at have kigget det igennem flere gange fatter jeg det stadig ikke rigtig... Kan du ikke forklare lidt?
Supporter
25-02-2004 09:02
slam slam

brug evt. sådan her

switch($_GET['page']) {
case "forside":
require_once("forside.php");
break;
case "bagside":
require_once("bagside");
break;
default:
require_once("forside.php"); // hvis ikke der er skrevet nogen ?page= i adressen
}

så siger du eks. bare x.php?page=forside og du udvider bare i cases hvis du skal have flere sider, går ud fra du har fattet switch metoden nu
Gregorian (ikek logged)

#16

Gæst
25-02-2004 09:06
#15 det er jo netop det man skal undgå i dette scirpt det det kun besværliggør processen.
med #9 #11 og #13 undgår man netop dette.

det er jo egentlig os det #0 ville væk fra hvis du læser hans spørgsmål igennem.
men du har ret i at det ellers kan bruges i andre eksempler
Supporter
25-02-2004 09:07
nej #16.. det er netop denne metode der gør det effektivt
Supporter
25-02-2004 09:08
i det hele taget burde det være ligemeget at lave ?x=x2 ... det gør jo ikke andet end at får det til at se smart ud :)
Nova

#19

Semi Nørd
25-02-2004 09:48
Jeg bruger selv dette script...

if (isset($_GET['page']))
{
if (!file_exists($_GET['page'].".php"))
{
echo("<h3>Siden kunne ikke findes</h3>"); //eller link til fejl side
}
else
{
include ("$_GET[page].php");
}
}
else
{
include ("forside.php");
}
Supporter
25-02-2004 10:17
#19 det er jo så ikke særligt sikkert.. kører du på din egen hjemmemaskine på eks. en windows computer, kan det bruges til at inkludere filer som php.ini og andre system filer, netop fordi du ikke har specificeret hvilke sider der kan inkluderes
Procrastinator

#21

Gæst
25-02-2004 11:51
Hvorfor er det lige i brugeer $_GET[side] først? Det behøvede man da kun i de gamle PHP-versioner?
Gregorian(ikke logget)

#22

Gæst
25-02-2004 12:02
du kan da bare putte en sætning ind der tjekker for om det indeholder "../"
php.ini f.eks ligger jo ikke i det root man har adgang til..
if($_GET[side] )
Bruger påkrævet
En bruger er påkrævet for at oprette svar på Hardwareonline.dk
Du kan oprette en bruger her eller logge ind her

Log ind for at få flere funktioner