Session_start crashed de pagina
Dan zie ik dus wel a en niet b en geen normale error like session has allready been thrown ofzo. Het ligt echt aan de session start handler. Ik gebruik gewoon de default handler dus geen eigen session module ofzo.
Ik heb error reporting etc aan via htaccess maar der wordt voor dit probleem geen log aangemaakt.
Heeft iemand enig idee?
Het is nogal een ernstig probleem
Gewijzigd op 01/10/2012 19:21:17 door Jelle -
Er mag geen enkele output naar de browser vóór header() en vóór session_start().
Gewijzigd op 01/10/2012 19:48:20 door - SanThe -
Dat weet ik maar zoals ik al aanduide is dat het probleem niet. Ook als ik niet dingen echo om te debugge krijg ik een white page. Dit was alleen om aan te duide dat het probleem de session start is.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// rest
?>
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
// rest
?>
Dat had ik al gedaan zoals aangeven ook in htaccess ik krijg geen error. Volgens google gooit de pagina een 500 error
Dan kijk je in de logfiles.
Dat heb ik ook gezet in me bericht der wordt niks gelogd over dit probleem.
Geen errors op het scherm en geen errors in de logfile. Heeft het script wel output ergens of werkt het gewoon en zie je niks?
Als ik de session start in de htaccess zet draait het hele script niet. Het is ook random heel soms krijg je een white page (1 op de 100)
Toevoeging op 01/10/2012 20:08:27:
Ik heb ook het session path al aangepast ik dacht misschien gaat het fout vanwege andere websites op de server maar dat verhielp het probleem niet. Het enige wat effect lijkt te hebben is dat als de server heel druk is komt de white page vaker voor dan is het bvb 1 op de 10 refreshes
als je het al over een server hebt waar andere websites "draaien" dan heb je het over een production server. Op een production server moet je sowieso geen code draaien waar je al van tevoren weet dat het fout is. Test het probleem op je eigen computer (developement server) en gebruik xdebug.
Jelle - op 01/10/2012 20:05:14:
Als ik de session start in de htaccess zet
Kan dat uberhaupt wel via htaccess??
http://www.php.net/manual/en/function.session-save-path.php
Zet er 1 variabele en zoek naar het session bestand, dit is je check, niet echo 'a' op de verkeerde plaats. Met die echo 'a' krijg je een headers already sent error. Er mag ook geen lege regel (enter) voor session_start() staan.
Gewijzigd op 01/10/2012 21:57:43 door Aad B
Er mag misschien geen lege regel geprint worden (output), maar er mag wel lege regels en ook andere code die geen output opleverd voor session_start() staan.
De foutafhandeling bleek daarmee in mijn geval ook moeite te hebben, want er werd nogal onlogisch een "unknown error" gemeld op regel 0 (!) van een "unknown file". Wel logisch: voor het zelf opslaan van een logbestand is er bij het optreden van de fout op dat moment ook onvoldoende schijfruimte. Ik vond de fout uiteindelijk pas door set_error_handler() in te stellen op een functie die foutmeldingen mailt.
Bedankt ik ga het proberen. Echter staat er nog 800gb vrij op de server dus het lijkt me sterk. Is er een soort van memery value wat de session handler maximaal mag gebruiken ofzo? Misschien is die vol aangezien het dus het meeste fout gaat als de server druk is. Of misschien is er een connection limit die die overschreden wordt door de session handler. In ieder geval ik ga je mailing optie proberen
In ons geval was het verkorten van de sessieduur met session_cache_expire() de oplossing. De fout trad namelijk vooral op bij intensief verkeer van robots die geen (sessie)cookies retourneren: daardoor startten ze aan de lopende band nieuwe sessies, waarvan de overgrote meerderheid feitelijk helemaal niet werd gebruikt.