login  Naam:   Wachtwoord: 
Registreer je!
 Forum

veilig menu (Opgelost)

Offline dconel - 28/01/2008 16:12
Avatar van dconelNieuw lid hoe maak ik van deze code een menu, en is dit veilig?

  1. <?php
  2. if (empty($_GET['pagina']))
  3. {
  4. include ('normale_pagina.php');
  5. }
  6. else
  7. {
  8. if (file_exists($_GET['pagina'] . '.php'))
  9. {
  10. include ($_GET['pagina'] . '.php')
  11. }
  12. else
  13. {
  14. echo "Pagina bestaat niet";
  15. }
  16. }
  17. ?>


ik werk zelf eigenlijk met css, dit gaat mijn petje net iets ver te boven

10 antwoorden

Gesponsorde links
Offline bertvanhees - 28/01/2008 16:48 (laatste wijziging 28/01/2008 16:48)
Avatar van bertvanhees Onbekend Dit is een include, de bedoeling hiervan is dat elke pagina tekst appart is.

Als je bv een pagina producten hebt is het:

$_GET['pagina'] 'producten.php'))

je link zal dan ook zo zijn: http://site.nl/index.php?pagina=producten

Ik hoop dat dit is wat je zocht...
Offline dconel - 28/01/2008 16:55
Avatar van dconel Nieuw lid oke, dus ik kan er een menu van maken! hoe doe je dat dan? Dan moet je dus ergens ingeven dat hij naar bijzoorbeeld nieuws.php moet.
  1. <?
  2. include($_GET['pagina'].".php");
  3. ?>

ik wilde eerste deze gebruiken, die snap ik wel. Maar die scheen niet veilig te zijn.
Hoe gebruik ik die andere?
Offline GJ2086 - 28/01/2008 17:02
Avatar van GJ2086 Nieuw lid je kunt het beter anders doen, want dit is nou niet echt veilig!
ten eerste zou ik gebruik maken van een array. in dat array stop je de pagina's die opgevraagd mogen worden, dit zodat je zelf in de hand hebt welke pagina in jouwn website geladen wordt.

een heel simpel voorbeeld:

  1. <?php
  2.  
  3. $array = array("home","contact","forum");
  4. $page = !empty($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING'] : 'home';
  5.  
  6. if(in_array($page,$array)) {
  7. include($page.'php');
  8. } else {
  9. include('home.php');
  10. }
  11.  
  12. ?>
  13.  
  14. <a href="<?php echo $_SERVER['PHP_SELF']; ?>?contact"> test </a>
Offline Koen - 28/01/2008 17:02 (laatste wijziging 28/01/2008 17:09)
Avatar van Koen PHP expert Werk met PHP.net: switch
  1. if(isset($_GET['page'])) {
  2. switch($_GET['page']) {
  3. case 'blaat':
  4. include('blaat.php');
  5. break;
  6. case 'home':
  7. include('home.php');
  8. break;
  9. case 'info':
  10. include('info.php');
  11. break;
  12. default:
  13. include('home.php');
  14. }
  15. } else {
  16. include('home.php');
  17. }

zo dus.

edit: foutje.
Offline GJ2086 - 28/01/2008 17:14 (laatste wijziging 28/01/2008 17:14)
Avatar van GJ2086 Nieuw lid Niet echt een goede oplossing om een menu op te bouwen, dit aangezien je aanzienlijk meer pageload creeért, en nog steeds evenveel 'lees meer' typwerk hebt waardoor je de kracht van een dynamisch menu verliest.  
Offline dconel - 28/01/2008 17:17 (laatste wijziging 28/01/2008 17:18)
Avatar van dconel Nieuw lid
GJ2086 schreef:
je kunt het beter anders doen, want dit is nou niet echt veilig!
ten eerste zou ik gebruik maken van een array. in dat array stop je de pagina's die opgevraagd mogen worden, dit zodat je zelf in de hand hebt welke pagina in jouwn website geladen wordt.

een heel simpel voorbeeld:

[..code..]


foutmelding:
Warning: main(homephp): failed to open stream: No such file or directory in \\192.168.1.\webfiles\files\2007-12\1712771\menu\menu.php on line 7

Warning: main(): Failed opening 'homephp' for inclusion (include_path='.;c:\php\includes') in \\192.168.1.\webfiles\files\2007-12\1712771\menu\menu.php on line 7
Offline Bart - 28/01/2008 17:20
Avatar van Bart PHP expert Beetje Googlen voordat je hulp vraagt voor bekende errors wordt ook op prijs gesteld.
Eerste error: verkeerde rechten of het bestand bestaat niet.
Tweede error: bestand dat moet worden geinclude bestaat niet
Offline dconel - 28/01/2008 17:22
Avatar van dconel Nieuw lid mijn engels is niet zo verkeerd hoor  

Maar dat bestand bestaat wel. Dus ik niet snap?
Offline Bart - 28/01/2008 17:24 (laatste wijziging 28/01/2008 17:25)
Avatar van Bart PHP expert Je Engels is niet verkeerd? Maar je lezen wel blijkbaar, ik zei dat het bestand niet bestaat OF verkeerde rechten om te openen.

@Sandernerd:
\\192.168.1. kan nooit een valid pad zijn.

Tuurlijk kan dit wel, als jou bestanden in je root "htdocs" staan wel.
Ooit van absolute paths gehoord?
Offline dconel - 28/01/2008 17:27
Avatar van dconel Nieuw lid je hoeft me niet te helpen hoor als je dat niet wilt..

Maar er ontbrak een punt in het scriptje.. probleem opgelost
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.23s