web_demon, ну смотри. Нужно работать в рамках ID'ек постов, а не с точки зрения страниц и пагинации. Количество постов в теме изменяется, поэтому на эту величину нельзя опираться. А ID'шки уникальны.
Давай будем отталкиваться от какого-то примера.
PostID
1 — первая страница
2
3
8
14 — конец первой страницы
15 — вторая страница
16
28
101
102 — конец второй
103
...
Страницы у меня — это 5 постов. В URL находится что-то такое:
/id64-<PostID>. Этот PostID указывает на первый пост, который будет отображаться на странице (например, 1 или 15).
В чём плюс: пользователи могут иметь хоть 200 постов на одной странице, это не изменит ситуацию — первый пост всегда один и тот же. То есть, исходная проблема решается (UPD: смотри ниже).
Есть ещё одна проблема, связанная с количеством (даже на этом форуме), допустим, есть такая ситуация:
POST
1 — первая страница
2
3
4
5
7
8 — вторая страница, даём на неё ссылку вида /id64?page=2
9
10
А потом админы подчистили посты с первого по 7, так что вторая страница фактически становится первой, но ссылка
/id64?page=2 всё ещё указывает на вторую страницу, которой не существует! Если бы ссылка основывалась на PostID, то этого бы не произошло.
Что ещё? Допустим, модер подчистил и 8 пост, на которой основывалась ссылка
/id64-8 — в таком случае нужно просто выводить посты с PostID равным 9. Ну, то есть следующие существующие.
UPD: Решается наполовину, без модификаций.
User1: имеет размер страницы в 10 постов.
User2: имеет размер страницы в 100 постов.
Сценарий1: User1 заходит на страницу 6 на форуме, и даёт на неё ссылку. Все 10 постов шестой страницы также отобразятся и у User2. Здесь проблема решена.
Сценарий2: User2 заходит на страницу 6 и даёт на неё ссылку. Все 100 постов у User1 не отобразятся, только первые 10. Проблема решена частично, но можно прокрутить следующие 90 постов, если у User1 есть желание. И это в общем-то логично.
Решение: либо добавлять в URL ещё один параметр
/id64-<PostID>-<Size>, который будет обозначать, сколько постов нужно обязательно отобразить. Если Size стандартный (скажем, в 20 постов), то его указывать не нужно.
Решение2: при прокрутке страницы вниз, обновлять показатель Post-ID.