Знаю, что избитая тема.
И даже изучил тесты по теме: https://gist.github.com/resurtm/4583515
Вопрос в следующем. На страницу приходит GET['a'] (числовой параметр от 2 до 8 символов) на основе этой переменной загружается своя форма. После отправки формы, в обработчике, на основе POST из формы создаются SESSION и перенаправляются на ту же первоночальную страницу с уже заполненной формой.
Имена SESSION также привязаны к GET['a'], делается это для того, чтоб если юзер в этот момент изменил GET['a'], то форма бы оказалось пустой, т.к. для той формы нужны были свои SESSION.
Короче:
1. Помня о том, что особо длинные имена переменных делает не следует.
2. Помня о том, имена SESSION должны быть уникальными, решил создать обобщенную переменную $var от которой и создавать переменные (будет присоединятся от 2-х до 5-и символов).
Сначала я ее делал так:
1. $var=mb_substr(md5(GET['a']),0,2);//
В итоге достаточно уникальная и всего два символа, но решил, что слишком медленно из-за md5.
Потом так:
2.
class get
{
//.....
public static function v($a)
{
if(!isset($_SESSION['VAR'][$a]))$_SESSION['VAR'][$a]=rand(0,99);
return $_SESSION['VAR'][$a];
}
}
$var=get::v(GET['a']);
т.е. генерировать случайный параметр двузначный. И его выводить.
И вот думаю, чего я вообще заморачиваюсь, может так все оставить:
$var=GET['a'];
Ну будет максимум переменная длинной 8+5=13 символов, не так уж и опасно с современной памятью...к тому же тесты показывают совсем незначительный расход.
Что думаете?
Спасибо.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.