Modal wlaczasz przez ja a nie php. Możesz utworzyć zmienna sesji w php ale sprawdzić i tak łatwiej w ja. Zreszta utworzenie jej w pho jest bezsensu ponieważ tworzysz zmienna dla wszystkich następnych akcji a nie tylko tej jednej strony. Są rzeczy do których php sie nie nadaje. Js tu jest szybszy i łatwiejszy
Na link do strony głównej nadajesz odpowiednie np. Id i sprawdzasz event klik itp.
Oczywiscie to nie zadziała jak ktos wpisze po prostu adres w oknie przeglądarki. Do tego musielibyśmy tworzyć zmienna nie zależnie od kliku (tutaj może byc php) ku sprawdzać history w js (nie pamiętam jak to się robilo).
Edit
Teraz widzę dopiero twój kod. Chyba cos mi się pomylilo. Twoje rozwiązanie jest na swój sposób właśnie dobre i omijamy sprawdzanie w js ale i tak modal wlaczamy przez js. Ewentualnie tworzyny zmienna w js sprawdzany czy istnieje. To zadziała.