[PHP] een menu vraag.

Pagina: 1
Acties:

  • TutanRamon
  • Registratie: Februari 2001
  • Laatst online: 16:47
Nu heb ik mij aardig verdiept in een aantal boeken over PHP, maar 1 ding is me altijd nog steeds niet helemaal duidelijk. Ik heb de search gebruikt en die kon mij ook geen zinnig antwoord geven.

the case:

Ik heb bijvoorbeeld index.html en daarin staan bijvoorbeeld 3 links naar begin.html en midden.html en einde.html. (alle 4 dezelfde layout, alleen andere tekst)

Het is toch mogelijk om in PHP iets te maken waardoor je zoiets krijgt: index.php?id=begin

En begin,midden-en einde.html intregreer je dan gewoon in index.php zodat je niet bij alle 3 de layout moet veranderen als je bijvoorbeeld de layout aanpast.

Ik heb me doodgezocht e.d. en ik kon hier geen duidelijk antwoord op vinden. Ik hoop dat jullie mij kunnen helpen.

En voordat ik weer bestempeld wordt met n00b, newbie en zulke termen geef ik gewoon toe dat ik er nog geen reet van snap. Dan hoeven we ons daar ook niet meer druk om te maken.

We see things as we are, not as they are


Verwijderd

index.php?id=1

Vervolgens kun je de variabele id in je script gebruiken voor bijvoorbeeld includes (let wel op beveiliging!).

include("midden_$id.html");

  • CyberSnooP
  • Registratie: Augustus 2000
  • Laatst online: 08-09 20:35

CyberSnooP

^^^^ schrijft --->

Ik heb daar eerder al eens een tijdje over zitten denken, maar als je $id gewoon ge-escaped hebt (hetzij via magic_quotes_gpc danwel via addSlashes) dan is er bij de constructie van RobinVR toch nauwelijks een veiligheidsrisico?

(Ik meen dat dingen als ..\ niet werken op deze manier)

|_____vakje______|


  • TutanRamon
  • Registratie: Februari 2001
  • Laatst online: 16:47
Op woensdag 06 februari 2002 21:55 schreef RobinVR het volgende:
index.php?id=1

Vervolgens kun je de variabele id in je script gebruiken voor bijvoorbeeld includes (let wel op beveiliging!).

include("midden_$id.html");
Hmm, ik snap er nog niet veel van.

Kun jij misschien bijvoorbeeld ff midden.html linken vanuit de index zodat ik effe een voorbeeldje heb? Als het niet teveel gevraagd is

We see things as we are, not as they are


  • Erik Jan
  • Registratie: Juni 1999
  • Niet online

Erik Jan

Langzaam en zeker

Op de veilige manier die Robin bedoelt:
PHP:
1
2
3
4
5
6
7
8
9
10
<?
$PaginaNaam = $HTTP_GET_VARS["id"];

switch ($PaginaNaam) {
case "begin": print "pagina 1 met vanalles erop&amp;eraan"; break;
case "midden": print "pagina 2 met vanalles erop&amp;eraan"; break;
case "eind": print "pagina 3 met vanalles erop&amp;eraan"; break;
default: print "voorpagina met vanalles erop&amp;eraan"; break;
}
?>

Hier kan een kwaadwillende user niks mee, wat bepaalt niet het geval is als je je GET data direct naar een bestandsnaam doorvoert (doet me denken aan www.compaq.com die een jaar lang op ongeveer deze manier open stond :)).

ps. CyberSnooP: op jouw manier, dus gewoon het excluden/escapen van verschillende tekens, kan het ook wel alleen om elk risico uit te sluiten kan je beter zoiets als hierboven gebruiken.

This can no longer be ignored.


  • CyberSnooP
  • Registratie: Augustus 2000
  • Laatst online: 08-09 20:35

CyberSnooP

^^^^ schrijft --->

Als je dan toch een (mooi) stukje code wilt.

index.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
$paginas = array(
   "overmijnhond", 
   "overmijnvriendin", 
   "etc"
   );

$page = strToLower($_GET['page']); // PHP >= 4.1

if (!in_array($page, $paginas)) 
   die('De opgegegeven pagina code \'' . $page . '\' bestaat niet');

include('pad/naar/jouw/html/' . $page . '.html');
?>

menu.html
code:
1
2
3
4
5
6
7
<html>
<head><title>Bla</title></head>
<body>
 <a href="index.php?page=overmijnhond">Mijn hond</a>
 <a href="index.php?page=overmijnviendin">Mijn vrouwtje</a>
</body>
</html>

|_____vakje______|


  • TutanRamon
  • Registratie: Februari 2001
  • Laatst online: 16:47
Ik dank jullie allen, mijn dank is zeer groot. Binnenkort post ik het resultaat wel. (in dit topic).

We see things as we are, not as they are


Verwijderd

Wat ook vaak wordt gedaan is wel verschillende pagina's maken alleen dan de layout includen. Bijvoorbeeld:
PHP:
1
2
3
4
5
6
7
<?
include("top.inc");
?>
tekstje.
<?
include("bottum.inc");
?>
Pagina: 1