Så er jeg gået igang med at lave lidt om således at jeg kan modificere min header information inden der sendes nogen form for output.
Min index.php ser således ud:
- <?php
- include 'core/init.php';
- include 'core/inc/head.inc.php';
- switch ($get_url[0]) {
- case 'login':
- include 'core/inc/login.inc.php';
- break;
- case 'admin':
- include 'core/inc/admin.inc.php';
- break;
- case 'logout':
- log_out();
- include 'core/inc/content.inc.php';
- break;
- default :
- include 'core/inc/content.inc.php';
- break;
- }
- include 'core/inc/footer.inc.php';
- ?>
Jeg kører nu en funktion kaldet
initialize(); i min init.php som ser således ud:
- <?php
- /*
- * File that includes all files needed for initial functions
- */
- error_reporting(E_ALL);
- session_start();
- //Require DB connection
- require 'functions/db.func.php';
- //Require file containing core functions
- require 'functions/generic.func.php';
- //$page_id = (isset($_GET['q'])) ? $_GET['q'] : 1;
- $init = array();
- $get_url;
- if(isset($_GET['q'])) {
- $get_url = explode('/', $_GET['q']);
- }
- else {
- $get_url[0] = 'home';
- }
- $_SERVER['DOCUMENT_ROOT'] = "/new_cms";
- $site_data = getSiteConfig();
- $user_data = array();
- if(logged_in() === true) {
- $session_user_id = $_SESSION['user_id'];
- $user_data = getUserData($session_user_id);
- if(user_active($user_data['username']) === false) {
- not_active_logout();
- }
- }
- initialize(&$init);
- ?>
I min initialize funktion har jeg sat
header('HTTP/1.1 403 Forbidden'); som det eneste kode og så forsøgt at indlæse side.
Er vi enige om at jeg nu sender header information før jeg sender output?
De øvrige funktioner er blot funktioner der henter information fra en SQL-database og gemmer i variabler og arrays.
Eftersom at jeg indlæser init.php før nogen af de andre filer, så er der ikke lavet noget output som er sendt til siden, men det er blot blevet gemt i variabler.
Dog sender den mig ikke videre til min 403-error side som er defineret i
.htaccess.
Laver jeg derimod
header('Location: somefile.php'); så sendes jeg til somefile.php.
Så det ser ud som om at der stadig er noget der går galt.