0

Во время отладки $_SERVER['REQUEST_URI'] равна null и вылетает предупреждение PHP Warning: Undefined array key "REQUEST_URI" in /var/www/haruproject.space/index.php on line 2. Но когда я получаю ее значение через var_dump($_SERVER), то я получаю 'REQUEST_URI' => string '/' (length=1) - то есть все работает без проблем.

Вопрос - что нужно сделать чтобы получать значения переменной $_SERVER во время отладки?

Вот код:

<?php
    $path = explode('/', $_SERVER['REQUEST_URI']);
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <h1><?= var_dump($_SERVER) ?></h1>
    </body>
</html>

1 2 3 4 5 6 7 8

  • Уже не первый вопрос об одном и том же..... и везде ни один раз уже вам сказали: REQUEST_URI нет только если запускать код из консоли........ к отладке это не имеет никакого отношения – Алексей Шиманский Nov 25 '22 at 15:03
  • @АлексейШиманский я бы и рад не задавать их)) но что мне делать если код не работает, а чтобы найти ошибку нужен отладчик, который тоже не работает)) после прошлого вопроса и нескольких часов гуглежа я хотя бы нашел где смотреть эти переменные, может и после этого раза что-то новое смогу узнать. В доках по xdebug нашел это https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc --- но ни тебе гайда ни доков по тому как этим пользоваться, хотя судя по тому что написано в документации по xdebug - это вероятно могло бы помочь решить мою проблему – Reiji Akkerman Nov 25 '22 at 15:18
  • Какой код не работает? Если запустить php-код из вопроса в браузере (типа localhost/index.php) то все выведется, все будет видно. – u_mulder Nov 25 '22 at 15:35
  • @u_mulder Речь о коде из предыдущих недавних вопросов Алексей вкурсе) – Reiji Akkerman Nov 25 '22 at 15:41
  • @ReijiAkkerman я давал ссылку на то как настроить отладчик и настроить тот же phpstorm - там всё написано...... более того даже писал как происходить процесс запроса страницы из браузера на сервер и что никакие расширения не нужны........ 1) нужно настроить отладик на сервере - ссылку я давал. 2) нужно настроить отладку в IDE - по ссылке как минимум есть Phpstorm. 3) ставим брейкпойнт, перезагружаем страницу в браузере и брейкпойнт подхватывается. всё ..................... теперь вопрос: зачем ты из консоли что-то запускаешь? – Алексей Шиманский Nov 25 '22 at 15:43
  • @u_mulder думаю лучше перефразировать свой вопрос) если Вас не затруднит - расскажите как Вы отлаживаете php код когда вам нужно знать во время отладки что находится в глобальных переменных, какими инструментами вы пользуетесь? через что вы вообще все это запускаете и т д – Reiji Akkerman Nov 25 '22 at 15:45
  • 1
    @ReijiAkkerman он, как и большинство наверняка использует xdebug и какую-то IDE. .... об этом всём написано тут https://ru.stackoverflow.com/a/701146/191482 ..... о чём я уже давал ссылку – Алексей Шиманский Nov 25 '22 at 15:48
  • @АлексейШиманский Проблема как раз таки в том что брейкпоинт не подхватывается, страница как загружалась до настройки отладчика без остановки так и после настройки также загружается от и до без остановки – Reiji Akkerman Nov 25 '22 at 15:50
  • @АлексейШиманский Я уже не знаю что гуглить, все доки перевернул и примеры рабочих конфигураций гуглил - но их просто нет - что я должен прописать в настройках xdebuga чтобы он начал останавливать загрузку страницы на брейкпоинте – Reiji Akkerman Nov 25 '22 at 15:54
  • 1
    Ты всё сделал что описано в инструкции? И убедился что phpinfo выводит информацию об xdebug? ...........какую IDE используешь? – Алексей Шиманский Nov 25 '22 at 15:56
  • 1
    "Проблема как раз таки в том что брейкпоинт не подхватывается, страница как загружалась до настройки отладчика" ---- тогда как понимать твои слова "Во время отладки $_SERVER['REQUEST_URI'] равна null" ? – Алексей Шиманский Nov 25 '22 at 15:58
  • @АлексейШиманский VSCode, все настройки из той ссылки что вы мне тогда прислали я прописал ( все фото прикрепил к вопросу) по поводу $_SERVER['REQUEST_URI'] = NULL фото там же – Reiji Akkerman Nov 25 '22 at 16:13
  • 1
    А что на счёт вопроса про "Проблема как раз таки в том что брейкпоинт не подхватывается, страница как загружалась до настройки отладчика" ---- тогда как понимать слова "Во время отладки* $_SERVER['REQUEST_URI'] равна null*" ? – Алексей Шиманский Nov 25 '22 at 16:25
  • @АлексейШиманский фото прикрепил, $_SERVER['REQUEST_URI']=null Но это как я понимаю значение по умолчанию когда 'PHP Warning: Undefined array key "REQUEST_URI" ' – Reiji Akkerman Nov 25 '22 at 16:29
  • 1
    Никаких REQUEST_URI на фото нет........... Что ты в целом подразумеваешь под отладкой? ты пишешь Во время отладки $_SERVER['REQUEST_URI'] равна null. Что ты делаешь что ты считаешь отладкой? – Алексей Шиманский Nov 25 '22 at 16:39
  • @АлексейШиманский фото передобавил теперь должно отображаться. На данный момент доступный для меня способ отладки это в VSCode выставить брейкпоинты в местах где предположительно ошибка, здесь же перехожу на вкладку Run & Debug, нажимаю на кнопку отладки - программа останавливается в нужном мне месте – Reiji Akkerman Nov 25 '22 at 16:45
  • @АлексейШиманский и соответственно проходя по коду где-то построчно где-то прыгая по брейкпоинтам смотрю что находится в этот момент в переменных пытаясь найти ошибку – Reiji Akkerman Nov 25 '22 at 16:47
  • 1
    И это и есть отладка, то есть всё же отладка работает)) Только скорее она на уровне отладки скрипта, а не приложения. А нужно наверное настроить так, чтобы отладить именно приложение (как это настроить в VS Code не смогу сказать )........... вообще в целом могу написать следующее: 1) версия дебага новая и она работает на порту 9003 - а не 9001 как старый. То есть в настройках скорее это нужно указать....2) попробуй пхпшторм)) 3) https://habr.com/ru/post/310708/ настройка VS Code с отладкой... 4) самое главное - надо именно приложение отлаживать. при отладке скрипта есессно REQUEST_URI нет – Алексей Шиманский Nov 25 '22 at 16:53
  • @АлексейШиманский Очань вам благодарен))) напоследок - в чем разница для отладчика между скриптом и приложением? P.S. порт уже 9003 но это не помогает)) – Reiji Akkerman Nov 25 '22 at 17:02
  • 1
    в локальности....... примерно как: поискать предмет исключительно на полке в шкафу и поискать предмет во всей квартире обыскав любые закоулки уголки шкафы полки балконы и пр......как-то так – Алексей Шиманский Nov 25 '22 at 17:25

0 Answers0