За последние 24 часа нас посетили 22870 программистов и 1232 робота. Сейчас ищут 752 программиста ...

Шальное "echo"

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

  1. Babyka

    Babyka Новичок

    С нами с:
    13 июл 2016
    Сообщения:
    26
    Симпатии:
    0
    Здравствуйте, помогите со скриптом получения информации из vk.com средствами API.
    Его суть:
    В скрипт передаются параметры (id_ok - id группы, NameDataBase, NameTable - Имя базы данных и таблицы, куда будет добавляться информация из API).
    Далее идет отправка запрос в вк и получение ответа.
    Распарсивание происходит нормально, вся информация получается.
    После этого в переменную $node добавляется необходимая распарсеная информация и выводится в echo.
    И добавляется в базу данных.
    Это работает на многих группах ВК, но есть такие группы, где информация в БД добавляется, но echo $node ничего не выводит, а если закоментировать вывод echo $node то все работает. Подскажите почему так?
    Выкладываю файл скрипта.

    База данных MySQL, таблицы: group_info и project
     

    Вложения:

  2. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
  3. Babyka

    Babyka Новичок

    С нами с:
    13 июл 2016
    Сообщения:
    26
    Симпатии:
    0
    У меня включен показ ошибок. Самое интересное что при выполнении скрипта ошибок не возникает! и скрипт даже не выводит мои остальные echo. А если закоментировать echo $node то все выводится.
     
  4. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    ты не хочешь самостоятельно перепроверить полностью каждый шаг твоего скрипта? за тебя мало кто это сделает.
    или ты думаешь что отладка это включить отображение ошибок и всё?
     
  5. Babyka

    Babyka Новичок

    С нами с:
    13 июл 2016
    Сообщения:
    26
    Симпатии:
    0
    Самостоятельно я уже проверил каждую строчку и не увидел ошибок! Именно поэтому я и спрашиваю на форуме.
     
  6. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Значит всё работает как ты хотел. В чём тогда проблема?
     
  7. Babyka

    Babyka Новичок

    С нами с:
    13 июл 2016
    Сообщения:
    26
    Симпатии:
    0
    Если по существу нечего предложить, зачем разводить флуд?
     
  8. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    @Babyka как может быть такая ситуация, когда ты перепроверяешь все данные которые попадают в скрипт и проследуешь за их изменениями, но не видишь момент когда что-то идёт не твоему плану?
    Я дал 3 ссылки, и ты за 20 минут всё прочитал, вник и выучил? Установил IDE и провёл построчную отладку?
    Может напихал в скрипт var_dump во все возможные места чтобы проследить за выполнение скрипта? Где тогда этот скрипт?

    Ты этот скрипт писал?
     
  9. Babyka

    Babyka Новичок

    С нами с:
    13 июл 2016
    Сообщения:
    26
    Симпатии:
    0
    IDE не устанавливал. Подставлял echo на каждой строчке и обнаружил, что в строчке под номером 96, тоесть "echo $node;" - беда.
    Все что находится до нее выполняется без ошибок, так же все что после без ошибок. А вот с ней косяк.

    Скрипт с кучей echo выкладывать нет смысла.

    Скрипт написал полностью сам методом проб и ошибок.
     
  10. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Если ты сам не понимаешь досконально как он работает, то тебе будет очень сложно помочь. Я не злой, просто реальность такая.

    Тогда после 93 строки сделай var_export($node); и посмотри что там содержится.
     
  11. Babyka

    Babyka Новичок

    С нами с:
    13 июл 2016
    Сообщения:
    26
    Симпатии:
    0
    Не правильно выразился значит. Я понимаю что делает каждая строчка и понимаю как это все работает. А "методом проб и ошибок" написал потому что пишу на php с нуля. Раньше никогда на нем не писал.

    Сделал как вы сказали, как только подставляю "var_export($node);" происходит та же беда что и с echo. Ничего не выводится:)
     
  12. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    может в бесконечный цикл уходит? у тебя 93 линия это while ($flag); а значение этой переменной вроде как меняется в цикле ду-вайл. Добавь var_dump($flag); перед закрывающейся скобкой тела этого цикла (между 91 и 92 линиями) и посмотри какое актуальное значение флага у тебя получается перед завершением каждой из итераций.
     
  13. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    PHP:
    1. var_export($node); die;
    лучше ставить, чтоб выполнение останавливалось. Можно var_export сменить на print_r, бывают случаи, когда var_export не работает, а print_r работает. Но у var_export удобнее формат вывода.
     
  14. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
  15. Babyka

    Babyka Новичок

    С нами с:
    13 июл 2016
    Сообщения:
    26
    Симпатии:
    0
    Добавил die;, все равно ничего не изменилось.
     
  16. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    а сразу после 93 линии если вставить var_dump($flag); die; что будет?
     
  17. Babyka

    Babyka Новичок

    С нами с:
    13 июл 2016
    Сообщения:
    26
    Симпатии:
    0
    то же false.
     
  18. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    отлично. а если после 93 строки вставить var_dump(isset($node)); die; - чо покажет?
     
  19. Babyka

    Babyka Новичок

    С нами с:
    13 июл 2016
    Сообщения:
    26
    Симпатии:
    0
    bool(true)
     
  20. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    и теперь просто var_dump($node); die;
     
  21. Babyka

    Babyka Новичок

    С нами с:
    13 июл 2016
    Сообщения:
    26
    Симпатии:
    0
    Вот веришь или нет, но скрипт выполнился, но ничего не произошло. Ни один echo ни var_dump, ничего не вывелось
     
  22. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    а в журнале ошибок на этот счет что сказано?
     
  23. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    @Ganzal советую новичкам var_export вместо var_dump так как они смогут давать массив и его можно будет удобно использовать в коде.
     
    Ganzal нравится это.
  24. Babyka

    Babyka Новичок

    С нами с:
    13 июл 2016
    Сообщения:
    26
    Симпатии:
    0
    Этот скрипт запускает программа написанная на delphi, поэтому не могу журнал ошибок посмотреть
     
  25. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    ну пайпни STDERR в файл какой-нибудь. или запусти в консоли с теми параметрами, с которыми дельфи-скрипт его запускает.
     
    denis01 нравится это.