login  Naam:   Wachtwoord: 
Registreer je!
 Forum

header werkt niet bij het includen van pagina's

Offline ivan_1987 - 22/04/2011 15:55
Avatar van ivan_1987Nieuw lid Hallo allemaal,

Ik ben bezig met een stukje code die ervoor moet zorgen dat een aantal pagina's (in een bepaalde directory) geladen worden bij het aanklikken van een menu item.

Het includen van de pagina's werkt.
Wanneer de pagina niet bestaat krijg ik ook wel de goede melding.

Het probleem:
- Het ziet ernaar uit dat in deze code altijd de if statement (isset) passeert en doorgaat naar (in_array), zelfs als er duidelijk geen waarde is ingevuld in $_GET['page'].

  1. <?php
  2. $incDir = "inc/";
  3. $pagesArray = array( "philosophy", "work", "contact" );
  4. $page = trim(
  5. strtolower($_GET['page']));
  6.  
  7. if ( isset( $page ) )
  8. {
  9. $path = $incDir.$page.".php";
  10.  
  11. if ( in_array( $page, $pagesArray ) )
  12. {
  13. if ( file_exists( $path ) )
  14. {
  15. include( $path );
  16. }
  17. else
  18. {
  19. echo "Sorry, deze pagina bestaat niet.";
  20. }
  21. }
  22. else
  23. {
  24. echo "Sorry, deze pagina is niet toegestaan.";
  25. }
  26. }
  27. else
  28. {
  29. //voorbeeld locatie
  30. header( "Location: localhost/ia/index.php" );
  31. }
  32. ?>


Het is hier de bedoeling dat ik alleen een foutmelding krijg als de pagina niet bestaat of niet toegestaan is. als er niets ingevuld is in $page dan moet men gewoon index.php zien zonder enige modificatie.

zouden jullie mij hierbij kunnen helpen?
Fijne pasen aan iedereen btw.

4 antwoorden

Gesponsorde links
Offline Maarten - 22/04/2011 16:04
Avatar van Maarten Erelid $page is altijd geset, aangezien je hem er net boven definieert.
Je kan gewoon kijken of strlen($page) > 0 ipv te kijken of de variabele bestaat.
Bedankt door: ivan_1987
Offline lemoinet - 22/04/2011 16:12
Avatar van lemoinet PHP gevorderde met PHP.net: empty() kan je het ook
Bedankt door: Maarten, ivan_1987
Offline ivan_1987 - 22/04/2011 16:29
Avatar van ivan_1987 Nieuw lid Dankjewel voor de snelle reacties. Het werkt nu gedeeltelijk. Ik heb uiteindelijk gekozen voor de manier van Lemoinet. In plaats van isset() gebruik ik nu !empty().

Maar de verwijzing naar index.php werkt nog niet. Ik krijg namelijk de volgende error.
  1. Warning: Cannot modify header information - headers already sent by (output started at /Applications/XAMPP/xamppfiles/htdocs/ia/index.php:65) in /Applications/XAMPP/xamppfiles/htdocs/ia/index.php on line 106


Heeft iemand een idee hoe ik dit kan doen op de juiste manier? Verwijzen, of terugbrengen naar index.php wanneer er geen pagina is opgegeven?
Offline woods - 22/04/2011 17:35 (laatste wijziging 22/04/2011 17:37)
Avatar van woods Nieuw lid De header functie moet altijd bovenaan. Wil je dit niet, kun je boven aan je pagina PHP.net: ob_start neerzetten, en aan het einde PHP.net: ob_end_flush .

Daarnaast zou je ook in plaats van header, include kunnen gebruiken om de content van je begin pagina te laten zien.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.19s