За последние 24 часа нас посетили 57010 программистов и 1694 робота. Сейчас ищут 882 программиста ...

Не могу удалить сессии, по массиву переменных

Тема в разделе "PHP для новичков", создана пользователем A.B.C., 16 июл 2010.

  1. A.B.C.

    A.B.C. Активный пользователь

    С нами с:
    3 мар 2010
    Сообщения:
    109
    Симпатии:
    0
    PHP:
    1.  
    2. $st=array('st_1_2','st_1_3','st_2_2','st_2_3');
    3. $i=-1;
    4. do
    5. {
    6. $i++;
    7. $f=$st[$i];
    8.  
    9. if (isset($_SESSION['f'])){unset($_SESSION['f']);}
    10. }
    11. while ($i!=4)

    помогите написать скрипт удаления переменных с именами из массива

    этот мой сессии не удаляет и ошибку не пишет почему - то!??
     
  2. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    PHP:
    1. $f
    2. $_SESSION['f']
     
  3. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    PHP:
    1.  
    2. <?php
    3. $st=array('st_1_2','st_1_3','st_2_2','st_2_3');
    4. foreach($st as $f) {
    5.      if(isset($_SESSION[$f]))
    6.           unset($_SESSION[$f]);
    7. }
    8.  
     
  4. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    может хватит везде дувайл пихать, есть и другие циклы гораздо более удобные
    PHP:
    1. <?
    2. $st=array('st_1_2','st_1_3','st_2_2','st_2_3');
    3.  foreach($st as $i){
    4.    if (isset($_SESSION[$i])){
    5.      unset($_SESSION[$i]);
    6.    }
    7.  }
    upd:опаздал
     
  5. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Padaboo

    не мешай Поповцев уму разуму учить.
    =)

    пысы: а мой лучше структурирован! патаму как прабельчики...
     
  6. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    440Hz
    это из за скобок?=) Кстати он вроде как заявлял, что не поповец,а в книжке do while вычитал
    UPD: у меня тоже обычно пробелов побольше, но табуляция в редакторе настроена, так что они сюда криво копируются (
     
  7. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    врет.

    плохому табулятору?
     
  8. A.B.C.

    A.B.C. Активный пользователь

    С нами с:
    3 мар 2010
    Сообщения:
    109
    Симпатии:
    0
    Спасибо......:) вот так заробило:

    PHP:
    1. foreach ($st as $i=>$val)
    2. {
    3. if (isset($_SESSION[$val])) {unset ($_SESSION[$val]);}
    4. }
    По началу послушал Попова, но дувайлом пишу просто по быстрому когда проверяю...т.к. раньше на бейсике кодил и привык к этому...:)

    Еще раз спасибо
     
  9. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    $i=>$val ?
    Может тогда $_SESSION[$i] а не $_SESSION[$val]?
     
  10. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    вроде того что =)
    вот тут например в редакторе все ровно было, а вставилось криво, а если нажать "редактировать" то видно что все ровно
    http://www.php.ru/forum/viewtopic.php?p=219157#219157
    A.B.C.
    ду вайл нужен для того, чтобы цикл 1 раз точно проходил, в бейскике вроде как и вайл и фор есть
     
  11. A.B.C.

    A.B.C. Активный пользователь

    С нами с:
    3 мар 2010
    Сообщения:
    109
    Симпатии:
    0
    нет как у меня правильно :)
     
  12. A.B.C.

    A.B.C. Активный пользователь

    С нами с:
    3 мар 2010
    Сообщения:
    109
    Симпатии:
    0
    $_SESSION[$i] - $i - порядковый номер элемента массива...а не его значения..запись $_SESSION[$i] ничего не даст
     
  13. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    $i=>$val соответствует записи ключ=>значение. Далее ты ищешь в массиве сессий значение, а не ключ.
     
  14. A.B.C.

    A.B.C. Активный пользователь

    С нами с:
    3 мар 2010
    Сообщения:
    109
    Симпатии:
    0
    Padaboo

    там for $i=0 to 10...другой слегка синтаксис и смысл
     
  15. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    если не ошибаюсь, то isset необяз, unset не ругается на неопределенные переменные ;)
     
  16. A.B.C.

    A.B.C. Активный пользователь

    С нами с:
    3 мар 2010
    Сообщения:
    109
    Симпатии:
    0
    Ensiferum

    меня интересует $_SESSION['st_1_2']....$_SESSION['st_4_2']

    st_1_2 - это и есть значения, которые мне нужны
     
  17. A.B.C.

    A.B.C. Активный пользователь

    С нами с:
    3 мар 2010
    Сообщения:
    109
    Симпатии:
    0
    phpdude
    тем более прекрасно...спасибо за инфу..
     
  18. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    ясно.

    phpdude
    можно задобрить unset плюшкой - тогда совсем ругаться не будет.
     
  19. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    Ensiferum
    нехорошо плюшками задабривать

    например дестром объект

    PHP:
    1. class Session {
    2.  
    3. public function __unset()
    4. {
    5.    if(!DB::instance()->update("sessions", $this->data)) throw new Exception('Cannot store session to database');
    6. }
    7. }
    и все, белый экран, 5 часов дебага, пиздюли от начальства и тп. плюшками лучше детей на улице кормить, а не задабривать пхп :)
     
  20. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    блин... сравни масштабы проектов. В твоём нужно отлавливать все нотисы, события, вести лог, желательно с отчетом на мыло, менять стандартный вывод ошибок на удобоваримый...
    а тут можно просто
    PHP:
    1. @unset($_SESSION[$i]);
     
  21. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    Ensiferum
    я показал показательный пример показательной ошибки изза показательного применения собак :))
     
  22. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    блин, а меня запарили с этими логами, access.log кто то постоянно пытается найти файлы readme папки типа admin и все такое, просто по 3-4 архива накапливается за 1 такой заход
     
  23. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    Padaboo
    сканят :)
     
  24. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    phpdude
    да надоели уже, ddos'ить в ответ скоро начну если достанут
     
  25. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    а ты логи проворачивай, проворачивай...