Ik zit met een irritant probleempje: Ik krijg een lege pagina, op welke plek ik ook tekst zet. Uit zichzelf moet het script '<h1>Hello world</h1>' weergeven, en bij een ingevoerde waarde in de url iets anders, maar hij weergeeft helemaal niets.
index.php
config.php
security/hijack.php
error/404.php
pages/home.php
config.php en hijack.php zijn getest, en geven output, maar index.php geeft niets terug, waar je de echo ook zet. Zelfs als je iets buiten de php tags neerzet.
Serverfout? Parserfout?
Ik gebruik MAMP met php versie 5.3.2, op Mac OS X 10.6.6
index.php
PHP:
<?php
// index.php
// Set error reporting to all for debugging
ini_set('display_errors', 1);
error_reporting(E_ALL);
// include important files
include 'config.php';
include 'security/hijack.php';
// Show requested content
if(isset($_GET['page'])) && !empty($_GET['page'])) {
$page = trim($page);
// Filter request for injections
$forbidden = array('/', '.');
$replacers = array('!', '!');
$page = str_replace($forbidden, $replacers, $page);
// Build location
$location = 'pages/ ' . $page .'.php';
// Check location
if(file_exists($location)) {
// Include requested page
include $location;
} else {
// Include 404 error page
include 'error/404.php';
}
} else {
// Include homepage
include 'pages/home.php';
}
?>
config.php
PHP:
<?php
// Config.php
// Start sessions
session_start();
// Set database information
$database['server'] = 'localhost'; // Server
$database['username'] = '******'; // Username
$database['password'] = '********'; // Password
$database['dbname'] = '*********'; Database
// Connect with MySQL
if(mysql_connect($database['server'], $database['username'], $database['password'])) {
// Connect with database
if(mysql_select_db($database['dbname'])) {
// Connection established
} else {
echo 'MySQL connection error: Database does not exist!';
}
} else {
echo 'MySQL connection error: Could not connect with database!';
}
// Unset database information variables
unset($database);
?>
security/hijack.php
PHP:
<?php
// Check login
if(isset($_SESSION['username']) && isset($_SESSION['userid']) && isset($_SESSION['ip'])) {
$username = $_SESSION['username'];
$userid = $_SESSION['userid'];
$ip = $_SESSION['ip'];
$user['check'] = mysql_query("SELECT userid FROM users WHERE userid='".$userid."' AND username='".$username."'");
// Check if more of less users exists
if(mysql_num_rows($user['check']) != 1) {
// HiJack detected
echo 'HiJack alert!';
// Unset al session contents
foreach($_SESSION as $sessionname => $sessioncontent) {
unset($_SESSION[$sessionname]);
}
// Unset foreach contents
unset($sessionname);
unset($sessioncontent);
// Destroy session
session_destroy();
die();
}
// Check ip
if($ip == $_SERVER['REMOTE_ADDR']) {
// HiJack detected
echo 'HiJack alert!';
// Unset al session contents
foreach($_SESSION as $sessionname => $sessioncontent) {
unset($_SESSION[$sessionname]);
}
// Unset foreach contents
unset($sessionname);
unset($sessioncontent);
// Destroy session
session_destroy();
die();
}
}
?>
error/404.php
PHP:
<h1>Page not found</h1>
pages/home.php
PHP:
<h1>Hello world</h1>
config.php en hijack.php zijn getest, en geven output, maar index.php geeft niets terug, waar je de echo ook zet. Zelfs als je iets buiten de php tags neerzet.
Serverfout? Parserfout?
Ik gebruik MAMP met php versie 5.3.2, op Mac OS X 10.6.6