Прерывание работы php скрипта для получения данных с формы

Тема в разделе "PHP", создана пользователем tulvit, 12 фев 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. tulvit

    tulvit Создатель

    Регистр.:
    26 янв 2010
    Сообщения:
    30
    Симпатии:
    5
    Есть цикл, в процессе выполнения которого может потребоваться вывести информацию в браузер и получить от пользователя некоторую данные.

    PHP:
    for($i 0$i 100$i++){
    //что то выполняется...
    if(некоторое условие){
    f(); //функция, выводит форму в браузер и возвращает введенные
     //данные, без выполнения этой функции продолжение
     //выполнения цикла бессмысленно
    }
    }
    Что-то никак идеи в голову не лезут. Придумал только одно решение:

    Отдельно скрипт с циклом, отдельно скрипт с нужной функцией. Как только в цикле выполняется условие if(), скрипт завершает свою работу, пользователю выводится форма, которую он заполняет, после чего запускается скрипт с функцией f(), которая обрабатывает введенные пользователем данные, завершает свою работу и снова вызывается скрипт с циклом, который получает данные, обработанные предыдущим скриптом и продолжает свою работу. Ну и все это связать воедино ajax-ом.

    Конкретный пример, а то из предыдущих объяснений можно не понять, что требуется. Скрипт парсит, к примеру, серп яндекса, при возникновении капчи пользователю выводится капча и форма для ввода, он ее вводит и скрипт продолжает работу до нового появления капчи.

    Уже была аналогичная тема годовалой давности http://www.nulled.ws/showthread.php?t=63929 но решение в ней не нашел.
     
  2. SoMoS

    SoMoS Писатель

    Регистр.:
    18 июн 2008
    Сообщения:
    5
    Симпатии:
    1
    Как уже писали в приведенной вами теме - то что вы пытаетесь сделать абсурдно и невозможно.

    Единственный выход это использовать $_SESSION (файлы,куки из той же эпопеи) ,где хранить флаги $_SESSION['step']=1|2|3 и т.п.Опираясь на которые скрипт будет определять что надо делать
     
  3. betatest

    betatest

    Регистр.:
    3 дек 2007
    Сообщения:
    517
    Симпатии:
    127
    это достаточно просто реализуется - 2 мя скриптами

    один скрипт - это ваш основной рабочий - он выполняет работу фоном (старт и рестарт из 2го скрипта)
    и, при получении условия, для введения данных - останавливается и сохраняет все свои рабочие данные на текущий момент в файл и выставляет флаг второму скрипту - второй скрипт подцепляет эти данные и выводит запрос пользователю,
    далее, после нажатия в форме отправки данных - данные уходят, на усмотрение (смотря как реализовывать:(
    1) напрямую, обратно, в 1 скрипт
    2) также пишутся в файл, сохраняется флаг для 1 скрипта, и запускается 1 скрипт

    в отображаемой странице 2-й пхп скрипт выводит рефреш (раз в 30 сек, например), при отсутствии флага для подхвата данных, либо форму, если флаг для получения данных от пользователя найден
     
Статус темы:
Закрыта.