C'est particulier, je poste ici car je n'arrive pas à créer une erreur.
En effet, sous PHP 5.3 j'effectue un session_start(); à la fin de ma page (donc après des sorties client ce qui devrait poser problème) et je n'ai aucun warning d'afficher ?
[fr.php.net] Note: Si vous utilisez des sessions basées sur les cookies, vous devez appeler session_start() avant d'afficher quoi que ce soit au navigateur.
Est-ce une nouveauté ? Peut-on désormais démarrer la session à n'importe quel endroit ? Si oui, depuis quelle version de PHP ?
Non tu ne peux pas et ce n'est pas une question de version. Si ca fonctionne, c'est que : soit tu as fait un appel à session_start() au début puis un à la fin, soit tu n'affiches pas les warnings, soit tu utilises la bufferisation de sortie (retarder l'affichage) avec les ob_start et autres, soit tu ne vois pas le warning à l'écran (regardes dans la source).
Quoi qu'il en soit, si par miracle ça marche sur ton serveur, il y a 99% de chances que ça ne fonctionne pas en ligne, sur tout autre serveur. Donc de toute façon, tu dois le mettre au début du fichier.