PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (14): В начало « ... 2 3 4 5 [6] 7 8 9 10 ... » В конец

> Найдено сообщений: 202
Contr Отправлено: 07 Июля, 2014 - 19:05:35 • Тема: Перебрать все файлы сессии • Форум: Работа с файловой системой и файлами

Ответов: 18
Просмотров: 4472
Мелкий пишет:
Contr, прокомментируйте всё-таки вот это:
LIME пишет:

Раз Лайм пишет, вот и пускай коментирует )))
Я не понимаю о чем он пишет:
Кто собранный? Кто будет удален?
Суть в том, что в моем проекте (да и даже на этом форуме) при каждом запросе к серверу происходит проверка на доступность пользователя к своему функционалу. Задача: удалить выкинуть пользователя на страницу авторизации. Проще всего это сделать удалив файл сессии.

А насчет БД, ну этой хз)) То что теперь при каждом запросе надо создавать объект БД (PDO) - это выйдет дороговато. К тому же не все запросы вообще проходят класс "модель" с подклассом "БД" - в проекте есть "легкие" контроллеры, возвращающие сразу одной или два значений.
(Добавление)
Contr пишет:
session_write_close
за это спасибо
Contr Отправлено: 07 Июля, 2014 - 18:44:47 • Тема: Перебрать все файлы сессии • Форум: Работа с файловой системой и файлами

Ответов: 18
Просмотров: 4472
esterio пишет:
Я когда-то пробовал и мне не удавалось получить содержимое фала сессии
Его и нельзя получить: он занят (если хоть раз в скрипте произошла инициализация сессии)
А вот чужие файлы читать и удалять никто не мешает
(Добавление)
свой тоже можно, если в скрипте не было обращения к сесиии
Contr Отправлено: 07 Июля, 2014 - 18:29:48 • Тема: Перебрать все файлы сессии • Форум: Работа с файловой системой и файлами

Ответов: 18
Просмотров: 4472
esterio пишет:
Contr
не срабортает. Думал такое будет работать но нет.
Проще делать так

как-то так

Ну так перебирать сессии все равно надо. Откуда вы возьмете сессион ид?
Там то вся фишка в том, чтобы перебрать файлы сессии.
Что вы предложили, заменит только последнюю строчку: вместо unlink (удалить файл) написать сессион дестрой
(Добавление)
Так почему не сработает? У меня срабатывает. Все нормуль
Contr Отправлено: 07 Июля, 2014 - 14:37:45 • Тема: Перебрать все файлы сессии • Форум: Работа с файловой системой и файлами

Ответов: 18
Просмотров: 4472
Напишу решение:
(Добавление)
PHP:
скопировать код в буфер обмена
  1.  
  2. $dir = ini_get("session.save_path") . "/";
  3. $a = array_diff(scandir($dir), ['.', '..']);
  4.  
  5. foreach ($a as $v) {
  6.     if ('sess_' . session_id() !== $v) {
  7.         $a = file_get_contents($dir . $v);
  8.        
  9.         $arr = session::unserialize($a);
  10.         foreach ($arr as $val){
  11.             if(isset($val['b']) && $val['dbname'] === "S-H-V"){
  12.                 unlink ($dir . $v);
  13.             }
  14.         }
  15.     }
  16. }

(Добавление)
Как Вам такое решение? Хорошо
(Добавление)
Сам метод:
Спойлер (Отобразить)
Contr Отправлено: 05 Июля, 2014 - 12:31:08 • Тема: Перебрать все файлы сессии • Форум: Работа с файловой системой и файлами

Ответов: 18
Просмотров: 4472
LIME пишет:
можно делать любые выкрутасы
Возможно...
LIME пишет:
хотя может тебе не нужно
наверно...
Да и создание объекта ПДО постгре при простеньком запросе тоже не вариант
Contr Отправлено: 05 Июля, 2014 - 12:23:20 • Тема: Перебрать все файлы сессии • Форум: Работа с файловой системой и файлами

Ответов: 18
Просмотров: 4472
Мелкий, фишка в том, что session destroy надо вызвать с другой сессии.
(Добавление)
Мелкий пишет:
А потом окажется
не окажется. "машина" моя
Contr Отправлено: 05 Июля, 2014 - 11:34:30 • Тема: Перебрать все файлы сессии • Форум: Работа с файловой системой и файлами

Ответов: 18
Просмотров: 4472
Есть файлы сессий в папке $dir с таким содержимым:
CODE (htmlphp):
скопировать код в буфер обмена
  1. loggedIn|b:1;dbname|s:5:"S-H-V";pnum|d:5;depnum|i:5;smu|i:1;orgnum|i:1;time|s:1:"4";name|s:11:"Федот";objects|a:2:{i:0;a:3:{s:6:"objnum";i:1;s:7:"objname";s:27:"лч";s:7:"objtype";s:4:"line";}i:1;a:3:{s:6:"objnum";i:2;s:7:"objname";s:6:"УРГ";s:7:"objtype";s:2:"cs";}}objnum|i:1;objtype|s:4:"line";;

требуется удалить все файлы, в которых dbname === "S-H-V"
Есть ли готовые функции php для превращения из "этого" массива? самому писать лень Не понял
Contr Отправлено: 04 Июля, 2014 - 13:11:04 • Тема: apach не подхватывает php • Форум: Apache и другие веб-серверы

Ответов: 4
Просмотров: 550
Установи все по-отдельности ) Хорошо
Contr Отправлено: 30 Июня, 2014 - 12:59:11 • Тема: получение ID при наведении • Форум: JavaScript & VBScript

Ответов: 8
Просмотров: 1529
CODE (javascript):
скопировать код в буфер обмена
  1. var info= document.getElementById('info');
  2. var tds = document.getElementsByTagName('td');
  3. for(var i = 0; i < tds.length; i++){
  4. tds[i].onmouseover = function (){info.innerHTML = this.id;};
  5. }

?
Contr Отправлено: 30 Июня, 2014 - 10:03:03 • Тема: Каркас для разработки приложений. Ваше мнение • Форум: CMS и фреймворки

Ответов: 9
Просмотров: 1768
Так и знал, что эта тема - жирный троллинг
Contr Отправлено: 30 Июня, 2014 - 08:11:21 • Тема: получение ID при наведении • Форум: JavaScript & VBScript

Ответов: 8
Просмотров: 1529
CODE (javascript):
скопировать код в буфер обмена
  1. document.onmouseover = function (e){console.log(e.target.id)};

(Добавление)
Contr пишет:
А если еще сделать что б этот блок появлялся и исчезал плавно (за 1-2 сек) то ваще было бы шикарно.

css:
#block {
transition: opacity 2s;
}
Contr Отправлено: 24 Июня, 2014 - 08:35:17 • Тема: погружение и всплытие событий работает странно • Форум: JavaScript & VBScript

Ответов: 0
Просмотров: 869
Что в фф, что в хроме следующий код дает:
CODE (javascript):
скопировать код в буфер обмена
  1. document.addEventListener("keydown", a, true);
  2. function a(e){
  3.   console.log("Документ погружение");
  4. }
  5. document.addEventListener("keydown", b, false);
  6. function b(e){
  7.   console.log("Документ всплытие");
  8. }
  9. var body = document.getElementsByTagName('body')[0];
  10. body.addEventListener("keydown", c, true);
  11. function c(e){
  12.   console.log("боди погружение");
  13. }
  14. body.addEventListener("keydown", d, false);
  15. function d(e){
  16.   console.log("боди всплытие");
  17. }

Дает такие результаты (будем считать, что <input> вложен в <div>, далее идет<body>, а потом document)
При фокусе на инпут и нажатии клавиши:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Документ погружение
  2. боди погружение
  3. боди всплытие
  4. Документ всплытие
Здесь все по фен-шую.
При фокусе на <div>:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Документ погружение
  2. боди всплытие
  3. боди погружение
  4. Документ всплытие

Почему события на Боди срабатывают в другом порядке? Не понял
(Добавление)
Сам спросил, сам ответ нашел
https://developer[dot]mozilla[dot]org/en[dot][dot][dot]addEventListener
Цитата:
Note: For event listeners attached to the event target; the event is in the target phase, rather than capturing and bubbling phases. Events in the target phase will trigger all listeners on an element regardless of the useCapture parameter.

На целевом элементе (что вызвал срабатывание) функции вызываются без соблюдения порядка
Contr Отправлено: 23 Июня, 2014 - 21:25:19 • Тема: Добавление обработчика на onclick • Форум: JavaScript & VBScript

Ответов: 4
Просмотров: 826
Да, Арманчо, если только так ) Мне просто нужно было убедиться, что я правильно думаю
Спасибо, плюсую
Contr Отправлено: 23 Июня, 2014 - 20:57:40 • Тема: Добавление обработчика на onclick • Форум: JavaScript & VBScript

Ответов: 4
Просмотров: 826
Contr пишет:
на не позволяет мне указать переменную "m", т.е. вызвать вот так:

?
Contr Отправлено: 23 Июня, 2014 - 19:31:39 • Тема: Добавление обработчика на onclick • Форум: JavaScript & VBScript

Ответов: 4
Просмотров: 826
Я правильно понимаю, что это простая запись привязать функцию на онклик:
CODE (javascript):
скопировать код в буфер обмена
  1. div.onclick = a;
  2. function a(m) {
  3. alert(m);
  4. }

и она не позволяет мне указать переменную "m", т.е. вызвать вот так:
CODE (javascript):
скопировать код в буфер обмена
  1. div.onclick = a(1);

?
Меня всегда удивляла, что так записать можно:
CODE (html):
скопировать код в буфер обмена
  1. <div onclick="a(1);"></div>

а так - нет:
CODE (javascript):
скопировать код в буфер обмена
  1. div.onclick = a;
  2. function a(m) {
  3. alert(m);
  4. }

Записи с addEventListener не предлагать

Страниц (14): В начало « ... 2 3 4 5 [6] 7 8 9 10 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB