Т.е. для начала в принципе мой способ нормальный? А потом уже можно будет переделать, если что? И кстати, не знаете, $_SERVER['REMOTE_ADDR'] клиент может сам подделать, т.е. может ли он содержать что-то отличное от ip адреса?
awox, счётчики у Вас в Вашем коде не обнуляются. Вот идёт выполнение программы...
Все циклы проходит, доходит до последнего. Он его обрабатывает, и переходит к предпоследнему, но счётчик последнего не сбрасывает, и поэтому let3 == 12, а условие let3 < 12, и отсюда следует, что последний цикл больше никогда не запустится. И так же с остальными...