За последние 24 часа нас посетили 39093 программиста и 1286 роботов. Сейчас ищут 1019 программистов ...

Передача значений переменных из php скрипта на вызвавшую его страницу

Тема в разделе "PHP для новичков", создана пользователем Alex870, 27 сен 2016.

  1. Alex870

    Alex870 Новичок

    С нами с:
    8 дек 2013
    Сообщения:
    121
    Симпатии:
    2
    Уважаемы Модераторы! Ну хорош надо мной издеваться!!!
    Я прекрасно знаю что такое суперглобальные массивы. Допускаю, что не знаю некоторых особенностей работы с ними. Но то, что это именованный массив, содержащий значения я понимаю.
    Я не понял вот этого:
    .
    Я В начале этой темы выложил свой код, потом, после совета Игоря я написал тестовый код (упрощенный) чтобы просто сделать работоспособную передачу переменной сессии. Потом по пунктам расписал что я делаю и как я это понимаю.
    В итоге никто не читает мои посты и я получаю такой вопрос:
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    прости. удачи.
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Тогда давай вернёмся к истокам, ибо на 3-ей странице уже никто не знает о чём речь.

    Тут дискуссия вертелась вокруг сессий, НО, *ЛЯ! Сессии в их родной реализации, характерны блокированием сессионного файла. Долгие запросы и сессии поэтому в контрах друг с другом. Пока одна "страница" не завершит работу, другая "страница" этого же пользователя будет висеть и ждать!!! Неважно аякс это или *уякс.

    Вывод: в долгом процессе не используй сессии или вызывай session_write_close() где-то в начале. Помещай "процент прогресса" в какое-нибудь место, которое не боится блокировки.
    — К.О.

    Вот тебе простое как валенок решение: долгий процесс-писатель пишет в лог-файл, после каждой операции записи делает flush чтобы данные реально сбросились на диск. Наблюдающий процесс читает размер файла лога и делает свои предположения о прогрессе. Читатель не боится блокировки в таком случае. Пусть писатель удаляет за собой лог в конце, а читатель не найдя лога поймёт, что дело сделано.
     
    #53 artoodetoo, 14 окт 2016
    Последнее редактирование: 14 окт 2016
    Alex870 нравится это.
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
    Я об этом и пытался сказать, но Игорь упорно предлагал сессии, и я подумал, может он знает что-то, что я не знаю :)
     
    Alex870 нравится это.
  5. Alex870

    Alex870 Новичок

    С нами с:
    8 дек 2013
    Сообщения:
    121
    Симпатии:
    2
    Спасибо большое!
    Я реализовал это через БД, пишу в неё раз в 200 итераций. Просто очень хотелось изучить другие походы, может они проще и быстрее.
    Ну та же фигня :).
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    @mkramer я как-бэ давно написал, что переменные сессии сейвятся после завершения работы скрипта. Из этого можно сделать вывод, что сохранение данных в сессию должно носить принудительный характер. Такой алгоритм решает задачу через сессии:
    PHP:
    1. for ($i = 0; $i < 100; $i++) {
    2.   $_SESSION['k'] = $i;
    3.  
    4.   sleep(1);
    5. }
    но это же не раздел "сделайте за меня" %)
    плюс в том, что в скрипте Б достаточно стартовать сессию, не надо лезть в базу или файлы. Но похоже на говнокод, я за файлы =)
     
    Alex870, mahmuzar и igordata нравится это.
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    никогда не думал об этом. Тогда APCu. =)
     
  8. Alex870

    Alex870 Новичок

    С нами с:
    8 дек 2013
    Сообщения:
    121
    Симпатии:
    2
    Вот оно оказывается как! Попробую.
    А чем сессия не файлы? Тоже ведь запись в файл идет.
     
  9. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    @Alex870
    каким образом вызывается функция?
     
  10. Alex870

    Alex870 Новичок

    С нами с:
    8 дек 2013
    Сообщения:
    121
    Симпатии:
    2
    include модуль;
    функция();
    Ну в принципе всё в коде на первой странице темы.
     
  11. ArsNet

    ArsNet Новичок

    С нами с:
    24 май 2016
    Сообщения:
    288
    Симпатии:
    24
    Адрес:
    Владивосток
    Я так понимаю речь шла про прелоудер?