Во-первых, это запрос - пример того, что подход с функцией лишней не есть гут.
P.S.
Он всего лишь делает следующее: выбирает пользователей, которые были зарегистрированы с..по, или же тех, чей статус нам важнее этих данных
2 valenok - в подходе, когда в самом начале скрипта делается экранирование символов у введенных переменных, есть некоторый изъян - а именно: если мы будем использовать эти переменные где-либо еще, кроме как в запросе, нам это экранирование "испортит" ввод пользователя (бывает и так, что нам нужно сохранить именно исходные данные без экранирования). В Вашем примере я бы предпочел:
Таким образом и данные сохраняются, и экранирование идет в нужном месте.
(А вообще то логин с паролем обычно нигде кроме БД не нужны ((* ... так что данный пример вполне вероятно что и так можно было оставить, но для общего случая лучше использовать экранирование только в тех местах, где оно нужно)
, экранируя спец. символы. Кроме того, никогда не использую register_globals, так как небезопасно(почему - подумайте сами ...)
Далее, рекомендуется всегда инициализировать переменные, если требуется достичь большей безопасности. Приемы нехитрые, но помогают избежать многих "тупых" ошибок.
Я так и не понял хороша или плоха идея с сохранением настроек. Ибо я в контексте веб-программирования PHP пока не придумал другой возможности, ведь, как заметил valenok, класс будет создаваться всегда, другое дело что мы можем заставить его создаваться с нужными параметрами.
Вы должны во-первых, понять, какие именно настройки при инициализации объекта Вам нужно сохранить. То есть как минимум класс должен иметь конструктор, который принимает именно эти параметры.
Ну а как организовать хранилище - тут может быть много путей.
Первое что приходит в голову (правда это зачастую не есть самое правильное) - сделать таблицу настроек в виде: "ключ"-"значение", и вместе с ней хранилище времени последнего обновления сессии. Таким образом, во время обращения к скрипту Вы делаете запрос к базе данных - выбираете время обновления, которое там записано. и далее:
0)Это время+максимальный интервал (таймаут сессии) больше чем текущее время: создаете объект по новой
1)Иначе: загружаете настройки из таблицы-хранилища и вызываете конструктор класса с этими параметрами.
phpMyAdmin 2.7.0-pl2:
если достаточно прав, то после захода в интерфейс:
0)Кликаешь название сервера
1)Кликаешь "Привилегии"
2)Кликаешь "Создать пользователя"
Дальше по моему уже все ясно должно быть (*
А Вас не смущает то, что каждый раз при загрузке страницы, скрипт выполняется заново от начала до конца, при этом переменные из "прошлого раза" не видны никоим образом, да и не могут быть видны.
Думаю, тут нужно создавать хранилище настроек класса и делать сессии по времени для пользователей. То есть есть загрузка страницы - заполняем хранилище - при следующей загрузке смотрим, не превышен ли интервал ожидания в сессии и если нет, то продолжаем использовать старые настройки. Другое дело, что я не знаю, подойдет ли Вам такой вариант.