Несмотря на то что сеансы в РНР — очень простое в использовании средство, существует много тонкостей и настроек, предназначенных для получения максимальной гибкости этого механизма. В этом разделе рассматриваются конфигурационные директивы и связанные с сеансами функции, не рассмотренные ранее, и разъясняется их использование в реальных PHP-сценариях.
Разобравшись с основами использования сеансов, давайте внимательно изучим их внутреннее устройство. По умолчанию РНР предлагает три внутренних метода хранения данных сеанса, указываемые в session.save_handler: внутренний формат файла PHP-сеанса (определенный php), внутри базы данных SQLite (определенный sqlite) и формат пакета WDDX (определенный wddx).
Создание контента – один из главных этапов в создании сайтов. Однако многие разработчики отодвигают его на второй план, и в результате заказчик получает готовый, но пустой сайт. То есть ресурс вполне может начать работу, только без контента от него не будет абсолютно никакого толка. Кроме того, такой сайт практически невозможно продвинуть в поисковых системах.
Теперь, когда вы представляете, как работают сеансы, давайте разберемся, что же практически нужно для корректной работы с сеансами. Как известно, каждый сеанс идентифицируется в РНР через идентификатор сеанса, который обычно сохраняется на клиентской машине в виде HTTP cookie-набора. Если поддержка cookie-наборов отсутствует, идентификатор сеанса должен передаваться через URL.
Количество зеркал не влияет на нее. Google в настоящее время индексирует (именно индексирует) все, до чего добирается его робот. Более того, Google в настоящее время даже не рекомендует закрывать от индексации зеркала или внутренние дубли с помощью файла robots.txt или иных способов. Google должен автоматически определять, что разные адреса имеют одинаковое содержание, чтобы самому решать, какой из адресов показывать в выдаче.
Другая необходимость, возникающая при работе с сеансами — определить, были ли зарегистрированы сеансовые переменные. Это можно сделать с помощью оператора isset, позволяющего проверить существование соответствующего ключа в массиве $_SESSION, или функции session_is_registered(): session_is_registered($name) где $name — строка, представляющая имя сеансовой переменной, которую нужно проверить. Эта функция возвращает true, если переменная была зарегистрирована, и false — если нет.
Существуют моменты (например, когда пользователь покидает сайт), когда сеансовые переменные нужно удалить. Это можно сделать, уничтожив весь сеанс или удалив только некоторые сеансовые переменные. Для удаления определенных переменных можно использовать оператор unset, удаляющий элемент из суперглобального массива
К сайтам размещенным на Ucoz предвзятое отношение и многие партнерские программы не работают с ними или на прямую завышают показатели посещаемости, чтобы утвердить сайт третьего уровня на своем ресурсе и зарегистрировать его как партнера. Но в работе с данными сайтами я нашел и преимущества.
В этом разделе обсуждаются основы регистрации, отмены регистрации и работы с сеансовыми переменными в РНР. Важно заметить, что манипулирование сеансовыми переменными с помощью представленных здесь функций, таких как