можно заменить error handler на ErrorException и запускать сессию в try
function exception_error_handler($errno, $errstr, $errfile, $errline ) {
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler("exception_error_handler");
try {
session_start();
}
catch(ErrorException $e) {
die('Не удалось запустить сессию. Возможно, неверный идентификатор');
}
11, не сказал бы, что это идеальный вариант - так как придется ловить все ошибки.
11 Май 2011, 10:14а почему бы и нет?) как по мне, так удобней работать с ErrorExcepton, нежели собачить всё подряд)
11 Май 2011, 10:43у мя имена сессий $_SESSION['user'],$_SESSION['pass'], а как вывести их идентификаторы в зашифрованном виде, чтоб потом можно было их фильтровать
походу разобрался, так правильно будет
if(preg_match("/[^0-9a-zA-Z_]+/",session_id())){
echo 'Некоректные символы в сессии
';
include 'inc/foot.php';
exit();
}
if(strlen(session_id())>32){
echo 'длина сессии более 32 символов';
include 'inc/foot.php';
exit();
}
gogman, а разве пользователь генерирует символы сессии, что ты ему 'exit' делаешь? Ты их сам генерируешь, так что генерируй их по-другому.
11 Май 2011, 11:27а как по другому?Я же идентификатор сессии проверяю на наличие ошибок. Разве не так нада?
11 Май 2011, 11:35gogman, русский язык учить надо. Идентификатор сессии создаёшь ты. Значит ты можешь изменить алгоритм его создания, чтобы не допустить ошибки.
11 Май 2011, 11:44