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