Так вот, я вновь вернулся к этому вопросу =)

Порылся по интернету, в итоге ориентируясь на советы собрал вот такой вот код:
читать дальше

Собственно, какие ошибки я тут допустил и как их избежать?
Что еще можно дополнить?
+ по ходу кода оставил еще несколько вопросов.

P.S. Хотел изначально весь алгоритм выложить ввиде блок-схемы, но понял что это займет черезчур много времени.
P.P.S. Касательно передачи идентификатора сессии через get-запросы, то думаю что лучше вообще этого не делать, так как черезчур легко украсть.