Ik ben ook eens begonnen met PHP
Mijn index.php ziet er als volgt uit:
<?php

$page = $_GET['page'];

if(empty($page)) {
require_once("home.php");
}

switch($page) {

case "index":
require_once("index.php");
break;

case "contact":
require_once("contact.php");
break;

case "test1":
require_once("test1.php");
break;

case "test2":
require_once("test2.php");
break;

case "test3":
require_once("test3.php");
break;

default:
require_once("home.php");
break;
}

?>

Hoe voorkom ik dat bezoekers de bestanden rechtstreeks benaderen?
in elk bestand bovenaan:

<?php

if(basename(___FILE___) != 'index.php') die('Ga naar index.php');

// hierna de rest van je code

?>

[edit]het zou kunnen dat je ipv ___FILE___ , $_SERVER['PHP_SELF'] moet gaan gebruiken[/edit]
@Hipska, maakt het niks uit of je nou __FILE__ gebruikt of ___FILE___?
Als je voor de oplossing van Hipska gaat, zou ik een [php]header[/php]('Location: blabla.php?page=blabla'); overwegen ipv een [php]die[/php](). Dat lijkt me net iets netter.
Hipska schreef op 08.08.2007 17:00
in elk bestand bovenaan:

<?php

if(basename(___FILE___) != 'index.php') die('Ga naar index.php');

// hierna de rest van je code

?>

[edit]het zou kunnen dat je ipv ___FILE___ , $_SERVER['PHP_SELF'] moet gaan gebruiken[/edit]


Bij mij werkt dit niet helaas.

Als ik het bv in home.php bovenaan zet en klik op het menu op "Home" dan gaat ie meteen naar 'Ga naar index.php' die text zie je dan alleen maar in een blanko pagina.

De bedoeling is dat het menu gewoon werkt met "index.php?page=home" maar niet home.php rechtstreeks aangeroepen kan worden dat ie dan naar index gaat of een foutmelding mag ook.

oeps ik zie dat je nog iets eronder erbij hebt geschreven $_SERVER['PHP_SELF'] met dit werkt het wel ;)

Enorm bedankt ..!

Reageren