Я нахожусь в процессе создания собственной системы управления сеансами и хочу создать свой собственный идентификатор перед началом сеанса с помощью функции session_create_id (), хотя я не уверен в том, как работает префикс, проблема в том, что я Имея, если я повторю session_create_id с префиксом, я увижу префикс с идентификатором сессии, хотя, когда я ввожу этот session_create_id в функцию session_id, я вижу только стандартный идентификатор длины 26, когда echo'ed. Эта статья, которую я нашел на https://wiki.php.net/rfc/session-create-id, объясняет, почему я вижу только стандартную длину, которую я установил в своем конфигурационном файле. Но я не уверен, откуда я знаю, что этот префикс есть и, по сути, добавляет ли он более безопасный session_id.
Эта информация из статьи, которая наполняет часть моего любопытства.
ПРИМЕЧАНИЕ. Длина префикса не считается частью session.sid_length. Длина идентификатора сеанса стала «длина префикса» + session.sid_length. Общая длина должна быть не более 256 символов.
Код:
//SessionRegeneration
function sess_regenration(){
if (session_status() == PHP_SESSION_NONE){
//CreateRandomStringForPrefix
$RandomizerForPreFix = str_split("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
shuffle($RandomizerForPreFix);
$EmptyStringToAppenRandomizer = '';
foreach($RandomizerForPreFix as $Element ){
$EmptyStringToAppenRandomizer .= $Element;
}
//CreateNewSessionIdWithPrefix
$CreatedId = session_create_id($EmptyStringToAppenRandomizer);
session_id($CreatedId);
//StartSession
session_start();
echo session_id();
}
}