Avatar billede zchou Nybegynder
03. oktober 2003 - 12:20 Der er 20 kommentarer og
1 løsning

Opbygning af hjemmeside

Hey,

som overskrfiten hentyder vil jeg gerne have jeres mening om hvordan en hjemmeside skal bygges i php.

Hvis vi siger jeg har en forside (index.php) og undersiderne:

*1.php
*2.php
*3.php

Hvordan vil i så bygge siden op.

Vil i bruge en indclude() på forsiden og dermed inkludere unsiderne på index.php (show.php?page=1), eller vil i oprette en mappe til hver underside,
eks. 1.php ligger som index.php i mappen der hedder: 1/index.php

Det projekt jeg er igang med p.t. har rimlig mange undersider der så har endnu flere undersider, og jeg synes det giver mig nogle store problemer hvis jeg bruger
include().

Hvad synes i, og er der evt. andre metoder der er smartere?

Håber på nogle indholdsrige kommentarer:D

På forhånd tak
Kristian Schou
Avatar billede neander Nybegynder
03. oktober 2003 - 12:22 #1
Hvor mange undersider regner du med at komme op på?
Avatar billede riversen Nybegynder
03. oktober 2003 - 12:23 #2
når du har undersider til undersider, er det nok en fin idé at lave en opdeling i mapper for hver underside...mappen inderholde så under-undersiderne

jeg bryder mig ikke om at inkludere, men det er sikkert en smagssag.
Avatar billede zchou Nybegynder
03. oktober 2003 - 12:24 #3
På min index.php regner jeg med ca. 20 undersider! nogle af disse undersider vil så kræve måske op til 100 undersider! det er dog kun et slag på tasken.
Avatar billede riversen Nybegynder
03. oktober 2003 - 12:25 #4
ja, så skriger det jo om at få nogle mapper
Avatar billede zchou Nybegynder
03. oktober 2003 - 12:27 #5
riversen: kunne man så lave en include på index.php i disse mapper.. Da jeg ellers vil få svært ved at updatere f.eks menu mm.
Avatar billede riversen Nybegynder
03. oktober 2003 - 12:28 #6
jaja du angiver bare stien altså include( "foo/bar/fil.php" )

hvis jeg altså forstår dig ret.
Avatar billede zchou Nybegynder
03. oktober 2003 - 12:31 #7
Den måde hvorpå jeg har lavet det indtil vidre er ved at inkludere mine alle sider på min "ramme" og ikke ved at inkludere rammen mine sider, men det er da selvfølgelig også en mulighed.
Avatar billede googolplex Novice
03. oktober 2003 - 13:09 #8
Hvis du inkluderer alle dine sider i rammen, skal du huske at tjekke de sider der bliver inkluderet. Jeg kan se i min log, at ondsindede personer allerede har forsøgt at inkludere scripts i mine sider. Derfor bør du gøre følgende eller noget lignende:

if (isset($_GET['side']) && file_exists($_SERVER['DOCUMENT_ROOT'] . '/sider/' . $_GET['side'] . '.php')) {
    $side = $_GET['side'];
} else {
    $side = 'forside';
}

Den tjekker om den inkluderede side findes i en bestemt mappe, hvis ikke, inkluderer den forsiden.
Avatar billede zchou Nybegynder
03. oktober 2003 - 13:50 #9
Googolplex:

Hva så hvis man bruger phpself? på et link i et forum f.eks.. så vil den jo automatisk inkludere forsiden da siden ikke findes på min server!!

Forstår du?
Avatar billede googolplex Novice
03. oktober 2003 - 16:47 #10
Det jeg tænker på, er hvis du kalder siderne således:

http://domaene.dk/index.php?side=sidenavn

Så kan ondsindede personer kalde:

http://domaene.dk/index.php?side=http://domaene.dk/ondfil.html

Men der skulle ikke være problemer med PHPSELF, den inkluderer jo ikke selve query strengen.

Giver det mening ?
Avatar billede sukos Juniormester
03. oktober 2003 - 17:12 #11
Du skulle vel ikke tilfældigvis ha' dit domæne på en Apache server med mulighed for at bruge mod_rewrite?
Avatar billede purnas Nybegynder
03. oktober 2003 - 17:33 #12
Nå, du er ik færdig?? :-D
Avatar billede swaq Nybegynder
03. oktober 2003 - 22:12 #13
Hvad er alternativet til at include?
Avatar billede googolplex Novice
03. oktober 2003 - 22:17 #14
swag: Funktioner - Klasser
Avatar billede swaq Nybegynder
03. oktober 2003 - 22:28 #15
Ok, got that - gider du illustrere?
Avatar billede swaq Nybegynder
04. oktober 2003 - 14:30 #16
Ville være rart med et eksempel på klasser og funktioner med ovenstående case som udgangspunkt :)
Avatar billede googolplex Novice
04. oktober 2003 - 15:10 #17
Jeg har lige lavet en side, hvor jeg har pakket forskellige bider af HTML ind i funktioner, så kan jeg skrive således på siden:

<?php
require_once($_SERVER['DOCUMENT_ROOT'] . '/funktioner/funktionsbibliotek_generelt.php');
require_once($_SERVER['DOCUMENT_ROOT'] . '/lektier/funktionsbibliotek_lektier.php');
top('Lektieland - Forside');
indhold('3b', 'venstre');
indhold('5b', 'midt');
indhold('7b', 'hoejre');
bund();
?>

Så har jeg fx en funktion:

function top($titel = 'Velkommen')
{
    $top = '<?xml version="1.0" encoding="iso-8859-1" ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">
    <head>
    <meta http-equiv="Content-Language" content="da" />
    <meta http-equiv="Cache-control" content="no-store" />
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="0" />
    <meta http-equiv="Imagetoolbar" content="no" />
    <meta name="Title" content="Lektier.dk" />
    <meta name="Description" content="Lektier" />
    <meta name="Keywords" content="Lektier" />
    <meta name="Author" content="Janus Jacob Rønne" />
    <meta name="Rating" content="General" />
    <meta name="Robots" content="index,nofollow" />
    <title>' . $titel . '</title>
    <link rel="stylesheet" type="text/css" href="/lektier/lektier_typografi.css" />
    <script type="text/javascript" src="/lektier/popupkalender/popcalendar.js"></script>
    </head>
   
    <body>
}

Osv.
Avatar billede googolplex Novice
04. oktober 2003 - 15:11 #18
Funktionen indeholder selvfølgelig også:

echo $top;
Avatar billede zchou Nybegynder
05. oktober 2003 - 00:17 #19
Okay.. Jeg siger mange tak for hjælpen! Så er der lidt at tænke over..
Riversen, hvis du vil ha lidt point må du lige smide et svar:D

/Zchou
Avatar billede swaq Nybegynder
05. oktober 2003 - 12:40 #20
Ok, hvad med klasser? Hvad indeholder din 'indhold(...)'
Avatar billede zchou Nybegynder
24. oktober 2003 - 12:01 #21
Nå.. jeg tror jeg vil lukke denne tråd.

Riversen:> Da du ik har lagt et svar går jeg ikke ud fra du vil have point. håber det er i orden:D ellers må du lige råbe højt

Jeg siger tak for hjælpen til alle endnu en gang

/Zchou
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