Почему я вижу два разных значения session_id()?

У меня есть небольшой скрипт, который работает со значениями идентификатора сеанса. Когда я хочу вставить данные session_id() в свою базу данных, я вижу в таблице значение что-то вроде 567. Но когда я хочу повторить те же данные, используя функцию session_id(), я вижу хешированное значение, состоящее из 32 символов, например d6fc8fe0c82307cc97dd2a0e94c9bb56.

В чем причина этого? Это какая-то проблема безопасности с PHP? Как я могу получить такое же значение?

Вот код:

$mysessid = session_id();

$sql = "INSERT into `mytable` (session_id) values('$mysessid')";
// when i use this sql to add the value into the db, i see a value like "7" or "251" etc in the table.

echo $mysessid;
// it outputs a hashed value like "d6fc8fe0c82307cc97dd2a0e94c9bb56"

// two different outputs...

person Sercan    schedule 06.06.2012    source источник
comment
Без кода? Я думаю, что это глобальное потепление!   -  person Oliver    schedule 07.06.2012
comment
Какой тип вы используете в БД для хранения session_id?   -  person Pethical    schedule 07.06.2012
comment
Это больше похоже на ошибку в вашем коде, чем на проблему с PHP. Пожалуйста, предоставьте пример кода.   -  person Kovo    schedule 07.06.2012
comment
Извините за это.. Я добавил код выше.. Надеюсь, я объяснил..   -  person Sercan    schedule 07.06.2012
comment
Используете ли вы тип int в своей базе данных для session_id?   -  person Oliver    schedule 07.06.2012
comment
Да. Это было причиной, я думаю. Нет, я изменил его на varchar и попробую еще раз. Можно ли использовать varchar? @Оливер   -  person Sercan    schedule 07.06.2012
comment
Спасибо, ребята, изменение типа данных решило проблему. Извините за беспокойство.   -  person Sercan    schedule 07.06.2012
comment
Может быть, лучше использовать char(32), потому что в большинстве случаев это быстрее, чем varchar в тех случаях, когда значение всегда одинаковой длины.   -  person Oliver    schedule 07.06.2012


Ответы (1)


Похоже, ваша структура базы данных не отформатирована для шестнадцатеричной строки. Какой тип поля вы используете для поля session_id?

person Mike Mackintosh    schedule 07.06.2012