Реализация функции «Keep Me Logged In» означает, что вам необходимо точно определить, что это будет означать для пользователя. В простейшем случае я бы использовал это, чтобы означать, что время сеанса намного больше: 2 дня (скажем) вместо 2 часов. Для этого вам понадобится ваше собственное хранилище сеансов, возможно, в базе данных, поэтому вы можете установить время истечения срока действия для данных сеанса. Затем вам нужно убедиться, что вы установили cookie-файл, который будет храниться в течение нескольких дней (или дольше), а не истекает при закрытии браузера.
Я слышу, как вы спрашиваете: «Почему 2 дня? Почему не 2 недели?». Это потому, что использование сессии в PHP автоматически отодвигает срок действия обратно. Это связано с тем, что истечение срока сеанса в PHP на самом деле является временем простоя.
Теперь, сказав это, я, вероятно, реализовал бы более жесткое значение тайм-аута, которое я храню в самом сеансе и через 2 недели или около того, и добавил бы код, чтобы увидеть это и принудительно аннулировать сеанс. Или, по крайней мере, выйти из них. Это будет означать, что пользователю будет предложено периодически входить в систему. Yahoo! делает это.