PHP curl запрос к файлу localhost в той же папке не возвращает данных и ошибок - PullRequest
0 голосов
/ 13 октября 2019

Я пытаюсь использовать правильное разделение между интерфейсом и бэкендом, так как мой интерфейсный код взаимодействует с БД только через HTTP-вызовы. Я помню, как это работало в прошлом, и думал, что это был какой-то параметр Apache, поэтому я установил свою конфигурацию на это и перезапустил:

DocumentRoot "d:/working/htdocs"
<Directory "d:/working/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride All
    Allow from 127.0.0.1
</Directory>

Это моя функция php (основана на различных источниках в сети):

        $ch = curl_init();
        $url = url_root.'backend.php';
        echo $url;

        switch ($method)
        {
            case "POST":
                curl_setopt($ch, CURLOPT_POST, 1);

                if ($data)
                    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
                break;
            case "PUT":
                curl_setopt($ch, CURLOPT_PUT, 1);
                break;
            default:
                if ($data)
                    $url = sprintf("%s?%s", $url, http_build_query($data));
        }

        // Optional Authentication:
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
        curl_setopt($ch, CURLOPT_TIMEOUT, 10);
        curl_setopt($ch, CURLOPT_VERBOSE, 1);


        if (!$result = curl_exec($ch)) {
            pre_r(curl_getinfo($ch));
            echo 'Cerr: '.curl_error($ch);
        }

        curl_close($ch);

        return $result;

Результат вызова для получения пользователя таков:

Array
(
    [url] => http://localhost:80/proj/backend.php?get_user=1
    [content_type] => text/html; charset=UTF-8
    [http_code] => 200
    [header_size] => 354
    [request_size] => 95
    [filetime] => -1
    [ssl_verify_result] => 0
    [redirect_count] => 0
    [total_time] => 1.031
    [namelookup_time] => 1.0E-6
    [connect_time] => 0.016
    [pretransfer_time] => 0.016
    [size_upload] => 0
    [size_download] => 0
    [speed_download] => 0
    [speed_upload] => 0
    [download_content_length] => 0
    [upload_content_length] => -1
    [starttransfer_time] => 1.031
    [redirect_time] => 0
    [redirect_url] => 
    [primary_ip] => ::1
    [certinfo] => Array
        (
        )

    [primary_port] => 80
    [local_ip] => ::1
    [local_port] => 63492
)

Cerr: 

Я не вижу данных, которые бы указывали мне, в чем заключается проблема или как ее исправить,Нет ошибок, нет кодов, нет отзывов, просто мертвость. Я просматривал SO сообщения в течение часа, и все они по сути имеют одинаковую информацию: «просто проверьте ошибки» или «добавьте этот параметр» или что-то ... все, что я пробовал. И что теперь?

1 Ответ

0 голосов
/ 27 октября 2019

В случае сомнений используйте error_reporting (E_ALL). Я не думал, что критические ошибки будут в разделе «ЗАМЕЧАНИЯ», и отключил это в своем тестировании, но когда я изменил его на E_ALL, он показал, что у меня есть две функции с одинаковым именем. Вздох ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...