Блин... Ты не заметил что в твоих вопросах уже есть ответ?
По всей логике, прежде чем проверить, есть ли что-то в переменной, не мешало бы проверить, а переменная вообще есть?
Если ты используешь массивы GET, POST, SESSION..., то сначала смотришь, есть ли в них такая ячейка, потом смотришь, в ячейке то, что тебе нужно? И если все ОК, тогда используешь эту ячейку (переменную) по назначению. А так ты используешь переменную, в которой не известно что.
IllusionMH пишет:
дальше учите что такое тренарный оператор
Господи! Какой тернарный? Тут надо учить isset и empty
чисто теоретически на многих хостингах стоит 64 битный линукс, ну и для тестов я не думаю что большая проблема поставить вин64.
Код должен быть кроссплатформенным, 32 битные системы еще не скоро вымрут (Добавление)
собственно работать с числами до 0xFFFFFFFF включительно можно, но не нужно, так как это костыли.
Для примера можете попробовать, кому интересно
уж такого я никак не ожидал (Добавление)
Ну что, всем спасибо, особенно teddy
Просто я писал функцию шифрования чисел в буквенную строку. В теле функции много побитовых операций, и вот столкнулся с траблом больших чисел.
Всегда старался переменные явно приводить к числам, перед тем как совершать с ними мат.операции, но тут вот оно как...
PHP странный язык...
Всем привет.
Вот на какой косяк я наткнулся сейчас.
Есть к примеру в базе таблица "integer" с одним единственным полем: "id" - INT(10) UNSIGNED
записал я в это поле значение более 0x7FFFFFFF, дальше попытался выбрать это значение в скрипте.
PS
А в сессии можно хранить че хош, только позаботься о безопасности сессионной куки и никогда не передавай session_id через query_string. По поводу тормозов сессий (файлов сессий) на "высоконагруженных проектах" (слово-то какое...), ниче не скажу. Но многие говорят, что тормоза есть. Не зря ведь есть алгоритмы автоматического создания директорий, чтобы много файлов не скапливалось в одной папке. Но и много директроий тоже не есть хорошо, тут говорят нужно искать золотую середину. Но я ее пока не искал - не нужна пока (Добавление)
likvidator пишет:
Ну вы конечно можете втирать заказчику или при приеме на робу,что процедурка - это не какашка,а вполне себе юзабельный стиль программирования,но я бы не советовал
Да мне просто пока плевать на заказчиков. Я пока учусь писать хорошо, и чтоб работало везде и быстро. Придет время и классы заюзаю, куда ж без них. Как сказала одна моя знакомая (хороший программист) - использовать ООП везде и всюду, все равно что на танке за огурцами ездить. И оно так и есть.
А заказчики да - им пофиг на реалии, им надо чтоб было "расширяемо", только в какое место расширять...
likvidator
А зачем вообще тогда база? Можно все хранить в файлах... незнаю, .ini .dat .txt .blabla...
Чем база хуже сессии? Мне кажется наоборот.
Вот я тоже первый сайт пишу - блог. Сессии не использую вообще, нет необходимости. Для хранения данных юзера есть куки. Нет, я не храню в куках данные пользователя, я там храню тикет, по которому вытаскиваю из базы данные... да, да, каждый раз вытаскиваю. Ты наверно забыл (не знал) про кэширование? Если ты каждый раз делаешь один и тот же запрос, то тебе отдаются данные из кэша, а сервер БД в это время курит. Попробуй в страшном черном окне сделай одинаковый запрос несколько раз, и сравни время первой выборки и последующих. Я те сразу скажу, время последующих выборок будет равно 0.00.
Сессия - это кука. Тебе нужна кука. Зачем стартовать сессию ради куки?
Я даже сообщения между header() передаю через базу. Что плохого? Сгенерировал сообщение, кинул его в практически пустую таблицу, в куку или в query_string кинул id сообщения. Дальше достал сообщение, показал и удалил (к вопросу о передаче данных между редиректами).
База - это не только хранилище постоянных данных. Что мешает передавать через нее временные данные?
PS Кстати, говоришь тестовый сайтик пишешь? А ООП зачем? Напиши на функциях, а ООП затронешь тогда, когда поймешь, что тебе реально нужны классы. Простой сайт на функциях будет жрать гораздо меньше памяти и работать будет быстрее.
Сделал таблицу:
mod_name | activation | position | param
В папке каждого модуля есть файл run.php, в файле есть функция runModName()
Контроллер смотрит в таблицу и выбирает имена модулей, у которых activation = 1. Далее контроллер проверяет наличие функции runModName() (runUsers, runLastArt, runMenu...) и дергает в цикле все эти функции. Стартовые функции модулей отрабатывают и возвращают имена функций для вывода их данных. Контроллер собирает имена функций для вывода и складывает их в массив $SIDEBAR.
В шаблоне эти функции дергаются в цикле и выводят че у них есть. То есть контроллер передает так сказать представления с готовыми данными в шаблон, где все это остается только нарисовать.
Короче работает, но допиливаю еще, как-то пока не очень нравится. (Добавление)
С позициями пока тоже не определился. Пока все отрисовывается в колонке сайдбара в соответствии с позициями из поля position.
Ubuntu
Разрешение экрана? А пых это может?
На самом деле кроме юзер агента и IP ничего у тебя нет, если речь идет об авторизации. Да и то, эти два параметра также не гарантированы.
Однако вариантов у тебя масса - главное фантазия. Если хочешь предотвращать попытки долбежки, то пиши какой-то свой алгоритм, как ты будешь блочить того, кто явно не по-человечески хочет войти. У тебя есть IP, UserAgent, логин, пароль, время между попытками входа и т.д и т.п...
Hapson, в время работы скрипта функции берут память и освобождают её. Всю эту динамику вы этим кодом не сможете отследить. Да и не требуется это в вашем случае. Обычно всех интересует время генерации страницы и максимальный объём памяти, который выделялся для скрипта. Для этих целей ваш способ вполне подойдет.
Да, теперь понял. Функция сожрала, функция освободила.
Сейчас проверил. Добавлял внутрь функции переменную и запускал функцию в цикле.
С одной и с двумя переменными Memory не меняется, а Max Memory увеличивается.
Значит действительно, memory_get_usage бесполезна
А вот Memory... что-то я сомневаюсь, что она врет. Здесь подсчитывается, сколько памяти было выделено во время выполнения скрипта. И в эту обертку попадают как все телодвижения, так и все определения функций, классов и прочее.
Нет, это не так - и Вы видели это на примере, который сами же и привели. Такой способ не учтёт ничего, что определено внутри окружения функций/методов
Ну тогда я не понимаю, откуда берется эта цифра http://clip2net[dot]com/s/6bn1FT
У меня все действия происходят до подключения шаблона. Все происходит внутри функций. Наружу выходят только те переменные, которые нужно вывести в шаблоне.
Неужто 300 кБ используется для нескольких переменных и штук 10 подключенных черех include файлов?