Archief - PHP: navigatie vraagje

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Le Preinz

Legacy Member
Klein dom vraagje wss maar vind maar geen oplossing. Na oplossingen mag deze thread gerust verwijderd worden.

PHP:
<html>
<head>
</head>
<body>

<a href="index.php?p=nieuws">link1</a><br>
<a href="index.php?p=poll">link2</a><br>

<? include ($_GET['p'].".php");  ?> 

</body>
</html>

Als mijn testpagina nu voor het eerst geladen wordt, krijg ik uiteraard een error doordat die een pagina wilt includen via die p maar er is op het moment nog geen waarde aan die p toegekend. Wil iemand ff zeggen hoe ik dus default kan zorgen dat daar meteen aan die p nieuws wordt toegekend.

danke vriendelijk

Ik los het nu nogal dom op:

PHP:
<a href="index.php?p=nieuws">link1</a><br>
<a href="index.php?p=poll">link2</a><br>

<?PHP
if ($_GET['p'])
	{ include ($_GET['p'].".php"); }
else
	{ include ("nieuws.php"); }

?>

dit kan veel beter vermoed ik.

xml

Legacy Member
't is sowieso al niet verstandig waarden uit de querystring rechtstreeks aan te nemen en te gebruiken in het script.

Voor uw ding zou ik dan opteren voor een switch() structuur, waarbij je met default: een standaard waarde kan toekennen.

[BKF]matti

Legacy Member
PHP:
<?php
If (!IsSet($_GET['p'])) {
   Header ("Location: index.php?p=Nieuws");
} Else {
    Include ($_GET['p'] . ".php");
}
?>
dit is een zeer onveilige manier, mensen kunnen bv. je config.php includen, of een externe pagina...

Le Preinz

Legacy Member
hoe raden jullie dan aan om wél veilig een navigatie te maken met die include?

DarkBone

Legacy Member
Ge kunt al beginnen met te checken of de file lokaal bestaat dmv. file_exists()

Kn0t

Legacy Member
zoiets gebruik ik:

PHP:
$pages=array("news","archive","poll","members");
				
$content=$_GET['content'];
				
if (in_array($content,$pages))
{
     include($content.".php");
}
else 
{
     include("news.php");
}

killgore

Legacy Member
het beste is nog altijd nooit je user input rechtstreeks te outputten:
PHP:
$pages=array("news"=>"news.php","archive"=>"arch.php","poll"=>"poll.php","members"=>"mem.php");
$page=addslashes($_GET['p']);
if(array_key_exists($page))
{
    require($pages[$page]);
}
else
{
    require($pages["news"]);
}

Zo kan de user eventueel bijna niet met jouw code foefelen.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan