Hallo PHP'ers,

Ik ben bezig met een webapplication in PHP. In het verre begin liep ik al eens tegen de deze foutmelding aan. Ik heb hem toen kunnen verhelpen, maar nu kom ik er niet uit.

De fout is:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/xxx/domains/xxx/public_html/xx/index.php:1) in /home/xxx/domains/xxx/public_html/xxx/secure/config.php on line 2


De bestanden die hierbij zijn:

index.php

<?php
include('secure/safe.php');
include('includes/core/document_head.php');
?>
	<div id="pjax">
		<div id="wrapper" data-adminica-nav-top="1" data-adminica-side-top="1">
			<?php include 'includes/components/topbar.php'?>
			
			<?php include 'includes/components/stackbar.php'?> </div>

			<div id="main_container" class="main_container container_16 clearfix">
			<?php if ($_SESSION['licentiedagen'] <= 5) { 
				
				if ($_SESSION['taal'] == "nl") { ?>

<div class="alert dismissible alert_red">
								<img height="24" width="24" src="images/icons/small/white/alert_2.png">
								Let op! Uw licentie verloopt over <b><?php echo $_SESSION['licentiedagen']; ?> dag(en)</b>. Verleng uw licentie tijdig.
								</div>
<?php } else { ?>

<div class="alert dismissible alert_red">
								<img height="24" width="24" src="images/icons/small/white/alert_2.png">
								Attention! Your license expires in about <b><?php echo $_SESSION['licentiedagen']; ?> day(s)</b>. Please renew your license.
								</div>

<?php } } ?>

				<?php include 'includes/components/navigation.php'?>
				<div class="flat_area grid_16">
					<img src="images/icons/small/grey/home.png" align="left"/><h2><?php echo $lang['DASHBOARD_HEAD']; ?>

...


Config.php

<?php
session_start();
ob_start();
// Error reporting zetten we uit, het is niet echt netjes je bezoekers errors voor te schotelen
ERROR_REPORTING(0);
// MySQL
$db_user = "xxx"; // Gebruiker voor MySQL
$db_pass = "xxx"; // Wachtwoord voor MySQL
$db_host = "localhost"; // Host voor MySQL; standaard localhost
$db_db = "xx"; // Database
mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db($db_db);
?>


Ik heb al geprobeerd de enters overal weg te halen en opzoek te gaan naar een andere session_start(); maar ter vergeefs. Wie kan mij te hulp schieten?

Danku!
index.php include (net als andere pagina's) secure/safe.php.

In safe.php wordt config gewoon ge-include:

include("config.php");

Hij geeft alleen de fout bij index.php? Wat doe je andere bij index.php dan bij andere pagina's? Staat er nog ergens output in index.php boven de include?
Nee, heb het zelfs apart gedaan; index.php:


<?php
require_once('secure/safe.php');
?>
<?php include 'includes/core/document_head.php'?>
Waarom php sluiten en dan weer openen? dat kan juist voor problemen zorgen door extra witregels en bende.


 <?php
	include_once 'secure/safe.php';
	include_once 'includes/core/document_head.php'; 
?>


En ga eens een beetje netjes programmeren, denk om inspringen, ene keer gebruik je ( ) zoals bij require_once en bij include gebruik je weer geen ( ). Waarom? Heb je hier een reden voor? Denk ook om SQL foutafhandeling, en ob_start() is nergens voor nodig.
Klopt. Nee geen reden. Meer om alles te proberen wat in me opkomt omdat ik gewoon de fout niet kan vinden.

EDIT: Ik heb alles gekopieerd, en in een nieuwe file geplakt. Raar genoeg werkt het nu wel weer.

Reageren