PHPでセッションが保存されない、もしくは保存されたりされなかったりする。 

セッションに値を保存後、ロケーションしている場合はexit();しましょう。


header('Location: /');

exit;

 

他の記事でこれはセッションには関係ないと書かれていましたが再現されました。

php 5.4だからかもしれません。
同じコードでphp5.6では起こりませんでした。