Последовательность событий:
- Браузер запрашивает главную веб-страницу.
- PHP запускает главную страницу и отправляет содержимое в браузер.
- Браузер получает страницу.
- Браузер просматривает страницу и отправляет запросы на загрузку графики и т. Д.
- PHP запускает graph.php и отправляет изображение в браузер.
- Браузер вставляет изображение на страницу.
Важная вещь, на которую следует обратить внимание, это то, что весь пункт 2 возникает до того, как произойдет любой из пунктов 5. Это означает, что все, что делает graph.php с $ _SESSION, не будет видно для кода на главной странице, что приведет к эффекту, который вы видите.
Такова природа веб-страницы: графические файлы отделены от основной программы PHP.
Вы не можете обойти это, используя отдельный графический файл так, как вы это делаете.
Есть один способ, которым я могу думать о достижении этого, но это будет полное переписывание (решать вам, стоит ли оно того!)
Можно создать график, используя Javascript. Если вы сгенерируете код javascript для этого на главной странице, вы можете установить $ _SESSION во время кода генерации графа, и он будет доступен позже в программе.
Если вы решили сделать это, вам следует обратиться к библиотеке gRaphael , чтобы помочь вам.
Надеюсь, это поможет.