Задать вопрос
Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (14)

Лучшие ответы пользователя

Все ответы (13)
  • Клавиатурный тренажер под Linux и большие тексты?

    cronfy
    @cronfy
    Альтернатива Клавогонкам: klava.org. Свой текст тоже можно добавлять.
    Ответ написан
    Комментировать
  • Создавать сессии только для залогиненых пользователей?

    cronfy
    @cronfy
    Следствие присутствия session_start() в начале скрипта таково: если клиент не поддерживает куки, то файл сессии создается на каждый запрос. А всякие роботы довольно часто куки не поддерживают.

    Еще раз — на каждый запрос робота создается новый файл сессии.

    Если у вас сессии хранятся, скажем, 24 минуты (по умолчанию), то это еще не очень сказывается. Но когда вы решите увеличить время хранения сессии до месяца, чтобы пользователя из корзины не выбрасывало, то довольно скоро у вас в tmp/ накопится под миллион файлов. В результате PHP при открытии страницы или очистке мусора будет работать медленно и ощутимо тратить ресурсы сервера.

    Поэтому рекомендация такая: храните сессии для пользователей, которые сохраняют ваши куки. Ставим куку, проверяем на следующем запросе, есть ли эта кука, если есть — можно запускать session_start().

    Вариант проще, без кук, и будет создаваться еще меньше сессий: создавать сессию только для того, кто авторизовался. То есть, пока не совпал логин и пароль пользователя, не запускаем session_start().

    Всякие не очень важные данные, которые вам нужны для всех пользователей (например, город, из которого пришел пользователь), храните в куках.

    Если у клиента есть куки с session id, значит клиент залогинен то запускать session_start()
    Если куки нет — значит не залогинен, сессию не запускаем.


    Если есть куки с ID сессии, значит, вы уже вызвали session_start(), а значит, файл сессии уже создался. Проверять нунжо как-нибудь по-другому (например, совпадением введенного логина и пароля, как описано выше).
    Ответ написан
    2 комментария
  • Менеджер паролей php + https?

    cronfy
    @cronfy
    Еще можно (чтобы опознавать конкретный браузер) использовать клиентский сертификат. И на nginx в зависимости от наличия/отсутствия клиентского сертификата отдавать либо одно, либо другое.
    Ответ написан
    Комментировать
  • .htaccess и engine.php уровнем выше, как?

    cronfy
    @cronfy
    .htaccess не поможет. Он умеет перенаправлять только внутри DocumentRoot. Выход наружу через ../ правилами .htaccess невозможен.

    Так что остается только править VirtualHost, если есть доступ. Или, как посоветовали выше — симлинки или фейковый index.php.
    Ответ написан
    Комментировать
  • filemtime() и реальная дата изменения файла

    cronfy
    @cronfy
    Все времена изменения файлов (и доступа к ним) показывает stat(). Если там нет — значит, нигде нет.
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (1)