[PHP] Site navigatie.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik *denk* simpel vraagje...

Ik zie vaak bij sites dat er zo gelinkt wordt: index.php?id=home of iets dergelijks.
Ik snap wel hoe ze dit doen, maar ik snap niet welk voordeel ze hier uit halen? :?

Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
hoe wil je het anders doen? via xx php files?

het is ongeveer 1 van de basics van php.

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Je houdt toch hetzelfde aantal php files? Of je nu direct linkt naar home.php of dat je in index.php home.php include. Je houdt 2 files.

Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
laat maar

[ Voor 97% gewijzigd door Y0ur1 op 22-11-2002 15:01 . Reden: niet goed gelezen ]


Acties:
  • 0 Henk 'm!

Verwijderd

mbv index.php?id=home kun je naar het het 'home' gedeelte in index.php linken.
dit kan dus in 1 file

Acties:
  • 0 Henk 'm!

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
De beveiliging is consistent.

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 22 november 2002 @ 14:58:
Je houdt toch hetzelfde aantal php files? Of je nu direct linkt naar home.php of dat je in index.php home.php include. Je houdt 2 files.
wie zegt dat je vie index.php?id=home, home.php include....

kan in staan bv als id==home laat dan wat home-zaken zien
of als id==links laat dan wat linkjes zien...

dit kan dus allemaal in 1 index.php staan.

zo een beetje duidelijk?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 22 november 2002 @ 15:08:
[...]


wie zegt dat je vie index.php?id=home, home.php include....

kan in staan bv als id==home laat dan wat home-zaken zien
of als id==links laat dan wat linkjes zien...

dit kan dus allemaal in 1 index.php staan.

zo een beetje duidelijk?
Yep, is wel duidelijk, maar niet handig voor een omvangrijke site dus? :?

Acties:
  • 0 Henk 'm!

  • eXcyle
  • Registratie: Juni 2002
  • Laatst online: 30-08 23:45
opzich wel ..... want je kan op deze manier met het includen van files bevoorbeeld een table gebruiken alsof het een frameset is

[ Voor 3% gewijzigd door eXcyle op 22-11-2002 15:15 . Reden: Typo king ]


Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 22 November 2002 @ 15:09:
[...]


Yep, is wel duidelijk, maar niet handig voor een omvangrijke site dus? :?
dan wordt het geheel erg onoverzichtelijk ja, met als gevolg lastiger te debuggen, moeilijker functies inbouwen e.d.

maar om snel bv een homepage over jezelf te maken met wat info over jezelf, hobby's, linkjes e.d. is het wel makkelijk.

om even verder te breien op het meegeven van variabelen via de url; als je bijvoorbeeld een forum hebt kun je makkelijk van pagina naar pagina switchen
forum.php?pagina=3 bijvoorbeeld. en dan mbv een functie kan hij de juiste toppics uit de database halen.

Acties:
  • 0 Henk 'm!

Verwijderd

Zoiets heb ik ook @ mijn site:
http://217.120.48.160/index.seb?q=home
en kijk maars in de source van index.seb:
http://217.120.48.160/index.seb?q=source&page=index.seb
(.seb == .php)

Het voornaamste voordeel bij "gewone" pagina's is dat je maar een file hebt.
Als je met databases gaat werken is het vooral handig als je bepaalde records wilt hebben, dan geef je dus het id van een record mee, en daar maak je je query van...
SELECT iets FROM dit WHERE id='".addslashes($_GET['id'])."'

[ Voor 52% gewijzigd door Verwijderd op 22-11-2002 15:33 ]


Acties:
  • 0 Henk 'm!

  • wustenveld
  • Registratie: Februari 2002
  • Laatst online: 07-07 13:36
Bij een omvangrijke site is het helemaal handig. In de index.php kun je dan allerlei zaken laten uitvoeren die over moeten gelden, zoals de beveiliging, initiatie van allerlei vars, de header en footer. Met andere woorden alles wat op elke pagina hetzelfde is. Daarna include je een bestand aan de hand van ?id=home en klaar is klara. Op deze manier hoef je dan maar een keer include(security.php) enz. in te voeren en staat het meteen overal binnen de site. En hoef je in home.php je alleen maar druk te maken om de onderdelen die daarmee te maken hebben, je beveiliging e.d. heb je immers al gestart

Acties:
  • 0 Henk 'm!

  • Anders
  • Registratie: December 2000
  • Laatst online: 13-09 18:52
eXcyle schreef op 22 november 2002 @ 15:14:
opzich wel ..... want je kan op deze manier met het includen van files bevoorbeeld een table gebruiken alsof het een frameset is
Ja. En je kunt met het op die manier includen van files, elk bestand ophalen vanaf de server.


index.php?id=../../../etc/passwd

Nooit doen dus, tenzij je dit gat goed dichttimmert. Bijvoorbeeld door alleen van tevoren bepaalde links te includen:

PHP:
1
2
3
4
5
6
7
8
$url["home"] = "home.php";
$url["links"] = "links.php";

if ($file = $url[$HTTP_GET_VARS["id"]]) {
   include($file);
} else {
   echo("Hallo hackert, waar zijn wij nou helemaal mee bezig?");
}

Ik spoor veilig of ik spoor niet.


Acties:
  • 0 Henk 'm!

  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 18-09 08:38
Een andere oplossing is trouwens om alle pagina's wel apart te houden, maar de header/footer in aparte bestanden zet en die include:
PHP:
1
2
3
4
5
6
7
8
<?
// dinges.php
include("inc/header.php");
?>
Hier pleur je al je troep neer.
<?
include("inc/footer.php");
?>


Zo is het bijvoorbeeld ook mogelijk (als je een mooie source wilt) om op de laatste regel van je header.php ob_start(); te zetten en in footer.php alles dat in de buffer zit x aantal spaties te indenten.

Acties:
  • 0 Henk 'm!

  • MisterData
  • Registratie: September 2001
  • Laatst online: 29-08 20:29
Limhes schreef op 22 November 2002 @ 17:40:
Een andere oplossing is trouwens om alle pagina's wel apart te houden, maar de header/footer in aparte bestanden zet en die include:
PHP:
1
2
3
4
5
6
7
8
<?
// dinges.php
include("inc/header.php");
?>
Hier pleur je al je troep neer.
<?
include("inc/footer.php");
?>


Zo is het bijvoorbeeld ook mogelijk (als je een mooie source wilt) om op de laatste regel van je header.php ob_start(); te zetten en in footer.php alles dat in de buffer zit x aantal spaties te indenten.
Doe het dan zo:

PHP:
1
2
3
4
5
<?php require('include/page_header.php'); print_header("titel"); ?>

blaat

<?php print_footer() ?>


Dan heb je alles op 1 plek, en kun je bijvoorbeeld in die page_header.php die functies print_header en print_footer aanmaken en vanaf daar includen :) Zo doe ik het altijd.

[/php]

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
MisterData schreef op 22 november 2002 @ 18:09:
[...]


Doe het dan zo:

PHP:
1
2
3
4
5
<?php require('include/page_header.php'); print_header("titel"); ?>

blaat

<?php print_footer() ?>


Dan heb je alles op 1 plek, en kun je bijvoorbeeld in die page_header.php die functies print_header en print_footer aanmaken en vanaf daar includen :) Zo doe ik het altijd.

[/php]
Wat is het voordeel dan? :?
Pagina: 1