Je souhaite séparer mes dossiers source en deux: les dossiers contenant le code que vous tapez dans la barre d'adresse et ceux qui constituent des parties de la page (tuiles) et d'autres codes (classes, etc). Ainsi, au début de chaque fichier php j'ai ajouté:Paramètre de session et de chemin d'accès php
<?php
// index.php
include("config.php");
include("session.php");
?>
Config contient tout ce jusqu'à présent, mais me permet de développer si je besoin d'autres répertoires (journaux, etc.)
<?php
// config.php
$_PATHS["base"] = dirname(dirname(__FILE__)) . "\\";
$_PATHS["includes"] = $_PATHS["base"] . "includes\\";
ini_set("include_path", "$_PATHS[includes]");
?>
et session a entre autres choses, dans le constructeur, un appel à session_start
. Il nécessite également d'autres classes qui sont incluses ailleurs - ce qui nécessite que la config soit listée avant l'inclusion de la session. Cependant, je reçois l'erreur
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started ...
Si je passe includes autour de cette erreur particulière disparaît mais je dois commencer munging manuellement les liens vers les fichiers d'en-tête. Y at-il d'une manière ou d'une autre de définir les répertoires en premier et de pouvoir utiliser des sessions ou doit être la première chose qu'un fichier contient?
BTW, pourquoi le double appel à dirname()? –
J'ai vu plusieurs sites web (je peux en trouver deux maintenant), donc j'ai décidé que cela devait être "bonne pratique" et copié sans trop savoir pourquoi. J'apprends php4 (et avant que quelqu'un ne dise que php4 est mort, eh bien, pas sur mon serveur web ce n'est pas le cas!). –