задался таким вопросом, на сайте в отдельные моменты, само собой по необходимости, может создаться около 50 переменных массива $_SESSION...т.к. на сайте много сквозных ссылок случайно ошибся и назвал одну и туже, но разные по смыслу одним именем...короче потерял пол-дня пока нашел проблему, решил, чтоб они не помешали друг другу, ну не наложились например удалять за собой, чистить ... не задействованные при входе на скрипт и вот такой вопрос:
Как лучше чистить белым списком? или черным? Как быстрее?
Вот пример черного т.е. удалить все кроме того, что в if
foreach ($_SESSION as $i=>$val)
{
if (
$i=="aaa" ||
$i=="sss" ||
$i=="ddd" ||
$i=="fff"||
$i=="ggg"
)
{
continue;
}
else
{
unset($_SESSION[$i]);
}
}
или наоборот вычислить все переменные, а ненужные объявить массивом и удалять так же через foreach к примеру?
Спустя 2 минуты, 52 секунды (29.08.2011 - 17:10) Игорь_Vasinsky написал(а):
destroy_session() - нет сессий - нет проблем... а если серъёзно - не было необходимости стока сессионных создавать...
Спустя 5 минут, 13 секунд (29.08.2011 - 17:15) GET написал(а):
Игорь_Vasinsky
...да их не 50..ну максимум сказал...там 2 режима регистрационная форма-14 полей + обязательные 3 + вспомогательные 2
destroy_session() все уничтожит, а мне нужно, чтоб осталисб за логин отвечающие...
...да их не 50..ну максимум сказал...там 2 режима регистрационная форма-14 полей + обязательные 3 + вспомогательные 2
destroy_session() все уничтожит, а мне нужно, чтоб осталисб за логин отвечающие...
Спустя 27 минут, 50 секунд (29.08.2011 - 17:43) Игорь_Vasinsky написал(а):
даж трудно на вскидку сказать... не сталкивался - как проверить ключ 'login' - что это login из $_SESSION['login']??? реально вообще это?
Спустя 5 минут, 24 секунды (29.08.2011 - 17:48) GET написал(а):
Приведу пример...
зашли на страницу A /
затем на страницу B/
затем на страницу С
на странице С заполнили форму в 14 полей отправили на обработчик D...на обработчике нашлась ошибку данные xthtp СЕССИИ отправили обратно в C на корректировку...но там юзер передумал ее заполнять, а вернулся по хлебным крошкам на B или А ...затем там выбрал другую деталь и пошел снова на С зашел туда и увидел ... все то, что он заполнял в первый раз для другой уже детали.
Это хорошо Игорь?...
Не думаю...
это реально
зашли на страницу A /
затем на страницу B/
затем на страницу С
на странице С заполнили форму в 14 полей отправили на обработчик D...на обработчике нашлась ошибку данные xthtp СЕССИИ отправили обратно в C на корректировку...но там юзер передумал ее заполнять, а вернулся по хлебным крошкам на B или А ...затем там выбрал другую деталь и пошел снова на С зашел туда и увидел ... все то, что он заполнял в первый раз для другой уже детали.
Это хорошо Игорь?...
Не думаю...
это реально
Спустя 2 минуты, 17 секунд (29.08.2011 - 17:50) Xes написал(а):
да какая ... разница делай как хочешь уничтожай когда совпадате или когда не совпадет.
Если те надо уничтожить. Нафига такой изврат стандартные POST переменные че не юзать. Либа я чето не доганяю че ты делаешь.
Если те надо уничтожить. Нафига такой изврат стандартные POST переменные че не юзать. Либа я чето не доганяю че ты делаешь.
Спустя 3 минуты, 23 секунды (29.08.2011 - 17:54) GET написал(а):
Xes
...ну POST переменные пришли и испарились...как ты их отправишь на предидущую страницу, на другой скрипт без формы?
Я вот и думаю...когда он весь массив перебирает т.е. не уничтожает только объявленные это долго или нет...не могу понять..как это по времени...на локалхост все летает а в реале потом не придется глаза на белый экран пучить
...ну POST переменные пришли и испарились...как ты их отправишь на предидущую страницу, на другой скрипт без формы?
Я вот и думаю...когда он весь массив перебирает т.е. не уничтожает только объявленные это долго или нет...не могу понять..как это по времени...на локалхост все летает а в реале потом не придется глаза на белый экран пучить
Спустя 5 минут, 11 секунд (29.08.2011 - 17:59) Игорь_Vasinsky написал(а):
чёт я снова твою мысль потерял...
вопрос как: как быстро избавиться от ненужных сессионных переменных ?
или что то ещё...
unlink() unset() - долго или нет? ... есть функция в php что то про использование ресурсов - скрипта - не помню как пишется (но она из стандартных) - проведи тесть - посмотри скока ресурсов тратится...
вопрос как: как быстро избавиться от ненужных сессионных переменных ?
или что то ещё...
Спустя 4 минуты, 59 секунд (29.08.2011 - 18:04) GET написал(а):
Игорь_Vasinsky
...я в плане перебирать хорошие переменные или плохие, а потом отдавать unset() ...вот этот момент foreach ($_SESSION as $i=>$val) мне удобно так, но я не знаю, как долго foreach копирует в себя весь массив чтоб потом выборочно из него удалять или же перечислять плохие в массиве скажем $var и их отдавать в unset()
...я в плане перебирать хорошие переменные или плохие, а потом отдавать unset() ...вот этот момент foreach ($_SESSION as $i=>$val) мне удобно так, но я не знаю, как долго foreach копирует в себя весь массив чтоб потом выборочно из него удалять или же перечислять плохие в массиве скажем $var и их отдавать в unset()
Спустя 2 минуты, 42 секунды (29.08.2011 - 18:07) Игорь_Vasinsky написал(а):
Цитата |
есть функция в php что то про использование ресурсов - скрипта - не помню как пишется (но она из стандартных) - проведи тесть - посмотри скока ресурсов тратится... |
Спустя 2 минуты, 13 секунд (29.08.2011 - 18:09) Xes написал(а):
Не загоняйся такими мелочами, сначала сделай.
Спустя 4 минуты, 23 секунды (29.08.2011 - 18:13) GET написал(а):
Ок...спасибо.
Спустя 14 часов, 11 минут, 48 секунд (30.08.2011 - 08:25) linker написал(а):
Группируй сессионные переменные по страницам:
$_SESSION['страница А'] = array(писок переменных)Если ты переходишь назад, то удаляй сразу группу, например был на странице В и перешёл на Б, то делай
$_SESSION['страница Б'] = array(писок переменных)
$_SESSION['страница В'] = array(писок переменных)
... т.д.
unset($_SESSION['страница В']);т.д. по аналогии.
Спустя 23 часа, 8 минут, 36 секунд (31.08.2011 - 07:34) GET написал(а):
linker
Спасибо, отличная идея!!! А вот если не знаешь с какой страницы зашел, ну к примеру работал в регистрации детали, а потом после сформирования сессий нажал не на ссылку из хлебных крошек, а на поиск детали скажем, тогда сессии повиснуть могут и всплыть позже, как думаешь не особо тяжело для скрипта воспользоваться обратным удалением т.е. удалить все кроме
и за разъяснение, что fоreach не копирует массив в себя, я почитал ваш пост.
Спасибо, отличная идея!!! А вот если не знаешь с какой страницы зашел, ну к примеру работал в регистрации детали, а потом после сформирования сессий нажал не на ссылку из хлебных крошек, а на поиск детали скажем, тогда сессии повиснуть могут и всплыть позже, как думаешь не особо тяжело для скрипта воспользоваться обратным удалением т.е. удалить все кроме
$_SESSION['страница А']если я зашел на эту страницу A?
и за разъяснение, что fоreach не копирует массив в себя, я почитал ваш пост.
Спустя 1 час, 46 минут, 5 секунд (31.08.2011 - 09:20) linker написал(а):
Имхо стартовать нужно всегда с первой, либо по наличии групп в сессии определять на какой остановился и стартовать со следующей. Т.е. если в сессии хранится инфа о странице А и Б, то при заходе перебрасываешь на страницу В.
Спустя 16 минут, 53 секунды (31.08.2011 - 09:37) GET написал(а):
linker
т.е. если у меня несколько ссылок (взаимных) на странице то в каждой из них мне нужно хранить инфу о всех других группах сессиях(других страницах) и удалять их
... гм все же кажется лучше поставить
где name1...nameN - необходимые на этой страницы сессии.
т.е. если у меня несколько ссылок (взаимных) на странице то в каждой из них мне нужно хранить инфу о всех других группах сессиях(других страницах) и удалять их
... гм все же кажется лучше поставить
foreach ($_SESSION as $i=>$val)
{
if ($i=='name1'||$i=='name2'$i=='name3')
{
continue;
}
else
{
unset($i);
}
}
где name1...nameN - необходимые на этой страницы сессии.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.