Cannot send session cache limiter
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:
Code (php)
1
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
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?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']; ?>
...
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
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?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);
?>
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!
Gewijzigd op 26/04/2013 20:16:12 door Rick de Jong
Niemand?
Wouter J op 29/04/2013 16:48:37:
Wat leesvoer voor je: http://www.phphulp.nl/php/tutorial/php-algemeen/header-already-sent/738/
Had ik inderdaad naar gekeken. Zoals ik al post heb ik alles gedaan wat ik me opkwam.
Sla de boel eens opnieuw op...
- Aar - op 29/04/2013 17:06:04:
Dan vermoed ik dat de B-O-M (Byte-order-mark) in de weg ligt.
Sla de boel eens opnieuw op...
Sla de boel eens opnieuw op...
Server legen en alles opnieuw uploaden?
Opslaan als UTF-8 zonder BOM. Kan elke goede editor wel.
Probleem is ook plots ontstaan. Ik had geen last van deze fout. Nadat ik alleen pagina-text had veranderd heb ik er last van
Gewijzigd op 29/04/2013 17:16:43 door Rick de Jong
Waar en hoe is config.php geincluded?
Gewijzigd op 29/04/2013 17:27:36 door Rick de Jong
Maar waar en hoe word config.php geinclude?
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?
Code (php)
1
2
3
4
2
3
4
Code (php)
1
2
3
4
2
3
4
<?php
include_once 'secure/safe.php';
include_once 'includes/core/document_head.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.
Gewijzigd op 29/04/2013 17:44:25 door Joakim Broden
EDIT: Ik heb alles gekopieerd, en in een nieuwe file geplakt. Raar genoeg werkt het nu wel weer.
Gewijzigd op 29/04/2013 18:17:38 door Rick de Jong
Oftewel wat Aar zei