Intereting Posts
Удалить / Скрыть Woocommerce Добавлен в корзину Сообщение, но Keep / Display Coupon Applied Message Важно ли проверять, является ли загруженный файл фактическим файлом изображения? Как использовать php-intl для преобразования кодов стран в локализованные названия стран Не ожидая ответа от Guzzle Использование неопределенной константы CURLOPT_POST – предполагается 'CURLOPT_POST' Оптимизация размера файла JPG – PHP, ImageMagick и скорость страницы Google Есть ли способ ограничить количество представлений для php-формы? xdebug не остановится в точке останова Подключение к удаленной DB2 на i5 / os через php-клиент на Windows-машине с использованием pdo_ibm или ibm_db2 php-расширений Настройка cookie с php внутри JS дает мне ошибку в строке 29, возвращая переменную из PHP-кода? Ошибка в объявлении объекта при расширении класса PDO Константное выражение содержит недопустимые операции Каковы допустимые примеры использования goto в PHP? Могут ли серверы блокировать запросы на завивки? Счетчик страниц cookie в php

PHP: я получаю совершенно пустую страницу, я не знаю, как отлаживать это в PHP

У меня возникли некоторые проблемы, чтобы отладить это в php. Когда я включаю эту строку:

require_once("http://" . $_SERVER["HTTP_HOST"] . "/dompdf/dompdf_config.inc.php"); 

то, что я получаю, просто пустая страница, я не получаю никакого html-кода в качестве ответа. Может быть, сообщения об ошибках скрыты?

Вы не должны требовать / включать удаленный файл, подобный этому. Вместо этого укажите локальный абсолютный или относительный путь.

Хотя это небезопасно и не рекомендуется, технически это возможно, если установлены определенные параметры конфигурации. (Allow_url_include)

См. Другие ответы ниже относительно display_errors для будущих проблем отладки. Я часто использую интерпретатор командной строки PHP, чтобы получить реальную ошибку, не допуская, чтобы данные об ошибках были представлены веб-посетителям.

Довольно часто, когда вы получаете WSOD (белый экран смерти) , это потому, что есть Fatal Error, и она не отображается на стандартном выходе – то есть сгенерированной странице.

Чтобы он отображался, вам необходимо:

  • установить error_reporting на нужный уровень
  • и включить display_errors

Легкий способ сделать это в верхней части вашего PHP-скрипта, с частью кода, подобной этой:

 error_reporting(E_ALL); ini_set('display_errors', 'On'); 

В вашем конкретном случае вы пытаетесь включить / потребовать что-то через HTTP; который часто отключается.

См. Директиву allow_url_include , об этом.

Возможность заключается в том, чтобы включить это в настройку вашего PHP … Но это вообще не считается хорошей идеей: он отключен по соображениям безопасности.
И отправка HTTP-запроса для включения файла происходит медленно – и означает, что ваше приложение больше не будет работать, если удаленный сервер не отвечает!

Кроме того, здесь вы пытаетесь включить файл с удаленного сервера, который является $_SERVER["HTTP_HOST"]

… Итак, вы пытаетесь включить файл с удаленного сервера, который на самом деле является вашим собственным сервером? т.е. не удаленный?

Если это так, вы не должны пытаться включать через HTTP; вместо этого вы должны работать с локальным файлом; таким образом (потребуется некоторая настройка) :

 require_once dirname(__FILE__) . "/dompdf/dompdf_config.inc.php"; 

Сюда :

  • Нет сетевого ненужного запроса (вы просто будете читать с локального диска) => быстрее и безопаснее
  • И нет необходимости включать allow_url_include

Я должен также добавить:

  • При включении локального файла .php содержимое файла .php входит в вашу страницу; например, если он скопирован
  • При включении файла .php через HTTP вероятность того, что удаленный сервер будет интерпретировать PHP-код и отправит вам обратно
    • Это означает, что код PHP не будет включен в ваш скрипт
    • Но только результат, который вы получите, выполнив этот PHP-код!

Это очень необычный и небезопасный способ включения файлов, но, если вы все еще хотите его использовать, убедитесь, что файл, который вы включаете, не выполняется на удаленном сервере, поскольку вы, вероятно, нацеливаете исходный код php на require_once здесь не окончательный вывод.

Параметр для оператора require_once должен быть путь к файлу, а не URL.

Вы сообщаете веб-серверу, чтобы он импортировал файл из файловой системы, а не клиент, чтобы импортировать файл из Интернета.

Он задокументирован на странице описания включения .

Попробуйте добавить это как первую строку вашего скрипта (очевидно, после <? Php):

 error_reporting(E_ALL);