Предлагаю использовать «более правильную» версию функции.
Несколько заметок:
- Более правильное регулярное выражение ( допускает символы в диапазоне a-z A-Z 0-9, (запятая) и - (минус) ), как описано здесь .
Регулярное выражение зависит от настроек php ini, как описано здесь и здесь .
- Использовать метод имени сеанса
Итак, обновленная версия выглядит так:
<?php
function my_session_start()
{
$sn = session_name();
if (isset($_COOKIE[$sn])) {
$sessid = $_COOKIE[$sn];
} else if (isset($_GET[$sn])) {
$sessid = $_GET[$sn];
} else {
session_start();
return false;
}
if (!preg_match('/^[a-zA-Z0-9,\-]{22,40}$/', $sessid)) {
return false;
}
session_start();
return true;
}
?>