Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Проблемы с хранением массива в SESSION
|
|||
|---|---|---|---|
|
#18+
Добрый день! Делаю парсер с отображением процента выполнения. Суть в том что при загрузке парсера запускается сессия session_start();, далее я нажимаю на кнопку и отправляется ajax запрос к тому же файлу, только условие if другое, в этом условии генерируется массив, который я сохраняю в сессию, и вывожу некий результат обратно, и по циклу снова отправляется ajax запрос где происходит тоже самое, только массив добавляю в сессию под другим ключом. Может что в коде не так, не могу разобраться. Помогите плиз! Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 14:34 |
|
||
|
Проблемы с хранением массива в SESSION
|
|||
|---|---|---|---|
|
#18+
session_start() должно быть отработано в любом случае до использования массива $_SESSION. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 15:42 |
|
||
|
Проблемы с хранением массива в SESSION
|
|||
|---|---|---|---|
|
#18+
Фактически я использую session_start() один раз при загрузке скрипта Код: php 1. 2. 3. 4. 5. 6. Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. Эта часть скрипта загружается во вторую очередь, т.е. через ajax. Я так понимаю, когда я задаю session_start() создается PHPSESSID, который является идентификатором сессии, и по логике получается что в файле этой PHPSESSID должны храниться данные о переменной $_SESSION, которые теряются как только вторая конструкция возвращает результат. Странно, но на мой взгляд такого происходить не должно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 16:30 |
|
||
|
Проблемы с хранением массива в SESSION
|
|||
|---|---|---|---|
|
#18+
Sublime, наверно, Вам следует начать с изучения основ программирования. Вот, смотрите на Ваш код: 1. Блок if($_POST['ret'] == 'count') содержит старт сессии. 2. В блоке if($_POST['ret'] == 'creat_table') старт сессии отсутствует. 3. Блок if($_POST['ret'] == 'count') со стартом сессии не может быть выполнен в том же вызове, что и блок if($_POST['ret'] == 'creat_table') по той простой причине, что переменная $_POST['ret'] не может иметь два различных значения одновременно. Самое простое и правильное решение - вынести старт сессии в самое начало скрипта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 16:43 |
|
||
|
Проблемы с хранением массива в SESSION
|
|||
|---|---|---|---|
|
#18+
vkle, это я понимаю. Логика следующая: Загружается страница <body onload=""> загружает скрипт, который загружает данный файл с параметром $_POST['ret'] = 'count', как только файл вернул ответ жмем на кнопку и загружается файл уже во второй раз с параметром $_POST['ret'] = 'creat_table', когда по условиям возвращается ответ, то в $_SESSION['array_result'] записывается массив и ответ идет обратно по ajax, где рекурсивно загружается функция с ajax запросом, где передается $_POST['ret'] = 'creat_table' + еще несколько параметров для определения места остановки парсинга сайта. Вы мне лучше напишите причину почему $_SESSION сбрасывается если в первой конструкции сессия уже была запущена, а во второй $_SESSION['array_result'] всего лишь должна пополняться новыми многомерными массивами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 17:24 |
|
||
|
Проблемы с хранением массива в SESSION
|
|||
|---|---|---|---|
|
#18+
Sublimevkle, это я понимаю. Логика следующая: Загружается страница <body onload=""> загружает скрипт, который загружает данный файл с параметром $_POST['ret'] = 'count', как только файл вернул ответ жмем на кнопку и загружается файл уже во второй раз с параметром $_POST['ret'] = 'creat_table', когда по условиям возвращается ответ, то в $_SESSION['array_result'] записывается массив и ответ идет обратно по ajax, где рекурсивно загружается функция с ajax запросом, где передается $_POST['ret'] = 'creat_table' + еще несколько параметров для определения места остановки парсинга сайта. Вы мне лучше напишите причину почему $_SESSION сбрасывается если в первой конструкции сессия уже была запущена, а во второй $_SESSION['array_result'] всего лишь должна пополняться новыми многомерными массивами. Не люблю такое писать ))) Но Вам в основы... SublimeФактически я использую session_start() один раз при загрузке скрипта Фактически Вы запускаете скрипт 3 раза (или сколько там), а session_start только 1 раз выполняете... так что "один раз при загрузке скрипта" - Вы так не делаете... Отсюда суть ошибки :) session_start - это запрос на старт/доступ к сессии. :) Потому его надо выполнять при каждом обращении к серверу. Иначе при очередном запросе к серверу он понятия иметь не будет, что Вы хотите обратиться к сессии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 17:40 |
|
||
|
Проблемы с хранением массива в SESSION
|
|||
|---|---|---|---|
|
#18+
Програмёр, да, сессия показывает это, сейчас поставил session start() в начало скрипта, как и ожидал изменений не произошло. Тут дело скорей не в том как сессия запускается и работает http://www.php.su/functions/?cat=session уважаемый, а в том что теряется значение или точней она сама. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 18:19 |
|
||
|
Проблемы с хранением массива в SESSION
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, вы правы, session_start() нужно запускать каждый раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 18:47 |
|
||
|
Проблемы с хранением массива в SESSION
|
|||
|---|---|---|---|
|
#18+
И еще одну ошибку нашел, вместо $_SESSION['array_result'] = $array_result; нужно было $_SESSION['array_result'][$i] = $array_result; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 19:05 |
|
||
|
Проблемы с хранением массива в SESSION
|
|||
|---|---|---|---|
|
#18+
автор Код: php 1. Это, типа, чтобы крепче запомнить и больше не использовать? ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 19:30 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=91&tid=1462946]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 216ms |
| total: | 342ms |

| 0 / 0 |
