login  Naam:   Wachtwoord: 
Registreer je!
 Forum

variable in include (Opgelost)

Offline clubfilth - 24/07/2012 08:15
Avatar van clubfilthLid Goedemorgen!

Ik ben een behoorlijke amateur met php maar in de website waar ik mee bezig ben ontkom ik er niet aan.

Ik heb een link die via _get wordt mee gegeven

VB: http://www.mijnwebsite.nl/product.php?id=schoenen

nu wil ik in het php bestand schoenen.html includen.

VB:
  1. $product = $_GET["id"];
  2. include ('producten/$product.html');


dit werkt dus duidelijk niet 
Weet iemand wat ik het beste kan doen?

Bij voorbaat dank!

4 antwoorden

Gesponsorde links
Offline Martijn - 24/07/2012 09:47
Avatar van Martijn Crew PHP
  1. include ('producten/'.$product.'.html');


Maar een get zo in je script zetten is erg gevaarlijk! Ik kan dus zo dit invullen "?id=../index.php;" Dan dan komt je index, in je index, etc.

Regel 1 van userinput: vertrouw NOOIT userinput. Never ever ever.

sowieso via file_exists() even kijken of het bestand bestaat. Je zou in_array() kunnen gebruiken voor toegestane waardes, of in een database zetten welke waardes mogen, en dan daar even mee controleren
Offline clubfilth - 24/07/2012 10:02
Avatar van clubfilth Lid ohwww daar had ik nooit aan gedacht...

kan het ook met een if else qua veiligheid?

vb:

  1. if ($product=="schoenen")
  2. {
  3. include ('schoenen.html');
  4. }
  5.  
  6.  
  7. elseif ($product=="sokken")
  8. {
  9. include ('sokken.html');
  10. }
  11.  
  12. else
  13. {
  14. Error
  15. ";}
Offline Martijn - 24/07/2012 11:16 (laatste wijziging 24/07/2012 11:18)
Avatar van Martijn Crew PHP is een mogelijkheid, al raad ik dan een case aan:

  1. switch($_GET['product']){
  2. case 'schoenen':
  3. $page = 'schoenen';
  4. break;
  5. case 'sokken':
  6. $page = 'sokken';
  7. break;
  8. case 'voorbeeld_1_kort': $page = 'kort1'; break;
  9. case 'voorbeeld_2_kort': $page = 'kort2'; break;
  10.  
  11. default:
  12. $page = 'default';
  13. break;
  14. }
  15. include 'paginas/'.$page.'.html'; // voorbeeldje


Zie ook dat ik 'default' heb ipv 'error'. Mensen kunnen niets aanklikken, of iets verkeerd, of iets wat niet meer bestaat, dan wil je ze geen error geven, maar een pagina met een bericht dat het niet meer bestaat, met gelijk wat links naar plekken waar ze misschien heel willen gaan

edit: Zie ook dat ik alleen de pagina name invul, en de include maar 1x. Mocht je gaan voor bv include_once, dan hoef je dat maar 1x te vervangen. Of je verplaatst alle bestanden van 'paginas' naar 'AndereMap'.
Bedankt door: clubfilth
Offline clubfilth - 24/07/2012 11:24
Avatar van clubfilth Lid thats it! super!

Bedankt voor je moeite!
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.295s