>>153
クライアント側のCookieが消えるとか、セッションタイムアウトとか可能性はある。

>>154
前戻りだけなら、読んだ時に前のデータを変数に格納しておけばいいけど、
前後とも表示したいならforeachよりもfor使った方が簡単。

配列の端での動作によってソース変わってくるけど、
端でも前後あわせて3つずつ表示する場合は
for($i = 1; $i < (count($arr)-1); $i++);
で無条件に $i-1, $i, $+1 を表示。

端では2つずつ表示する場合は
for($i = 0; $i < count($arr); $i++);
で、基本は上と一緒だけど、$i <= 0 の時は $-1 の部分を、 $i >= count($arr) の時は $+1 の部分を表示しないようにする。