Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
Session_id может действительно быть дублирован, но вероятность является очень низкой. Если у Вас есть веб-сайт со справедливым трафиком, это может происходить однажды в Вас жизнь веб-сайта и будет просто раздражать одного пользователя для одной сессии.
Это не стоит для заботы о том, если Вы не ожидаете создавать веб-сайт очень интенсивного трафика или сервис для промышленности банка.
Это не очень уникально, как поставлено. В конфигурации по умолчанию это - результат хеша различных вещей включая результат gettimeofday (который не ужасно уникален), но если Вы волнуетесь, необходимо настроить его для рисования некоторой энтропии из/dev/urandom, как так
ini_set("session.entropy_file", "/dev/urandom");
ini_set("session.entropy_length", "512");
поиск "php_session_create_id" в код для фактического алгоритма, который они используют.
Отредактированный для добавления: существует генератор случайных чисел DFA, отобранный изодромным с предварением, смешанным со временем в мкс. Это не твердое условие уникальности особенно с точки зрения безопасности . Используйте энтропийную конфигурацию выше.
Обновление:
PHPС PHP 5.4.0 значения по умолчанию сессии entropy_file к/dev/urandom или/dev/arandom, если это доступно. В PHP 5.3.0 этих директивы оставляют пустыми по умолчанию. Руководство
Можно установить альтернативную функцию поколения хеша, если Вы хотите настроить способ, которым идентификатор сгенерирован (это - число на 128 битов, сгенерированное через MD5 по умолчанию). См. http://www.php.net/manual/en/session.configuration.php#ini.session.hash-function
Для получения дополнительной информации о сессиях PHP, попробуйте эту превосходную статью http://shiflett.org/articles/the-truth-about-sessions , который также связывается с другими статьями о фиксации сессии и налете.
Я не нашел подтверждение на этом, но я верю проверкам php, если идентификатор сессии уже существует прежде, чем создать один с тем идентификатором.
люди проблемы перехвата сеанса волнуются по поводу, когда кто-то узнает идентификатор сессии активного пользователя. Это может быть предотвращено во многих отношениях для большего количества информации, на которой Вы видите эта страница на php.net и данная статья на фиксации сессии
Нет, идентификатор сессии не является GUID, но два пользователя не должны получать тот же идентификатор сессии, как они хранятся на стороне сервера.