У меня есть код веб-сайта, в котором используется cURL (не совсем «моя» .. часть проекта с открытым исходным кодом) и после загрузки сайта на локальном хосте моей виртуальной машины для первый раз в месяцах, потому что я хочу помочь с недавней проблемой, которая возникла, которая не связана с cURL, я исправил одну локальную проблему, которая была очевидна для меня, и теперь, когда я пытаюсь войти на сайт, я получаю эту ошибкуPHP curl_setopt() error недопустимые символы
curl_setopt(): Curl option contains invalid characters (\0)
Независимо от того, что я испортил, это, похоже, происходит, пытаясь загрузить любую страницу, а не только страницу входа. Это строка кода, он указывает на
curl_setopt($re, CURLOPT_COOKIE, "slim_session=".$_COOKIE['slim_session'].";");
Если это помогает, через error_log()
«ИНГ я обнаружил, что значение $_COOKIE['slim_session']
является a:4:{s:10:"slim.flash";a:0:{}s:11:"AccessToken";O:48:"SolasMatch\\Common\\Protobufs\\Models\\OAuthResponse":4:{s:8:"
К сожалению завиток не мой конек, но я могу предоставить больше информации о ситуации по мере необходимости. Вы можете увидеть полную функцию вышеприведенного кода от here.
Да, файл cookie содержит нулевой байт (после s: 8 :). Вам нужен код, который проверяет и дезинфицирует файл cookie, прежде чем передавать его в CURL. – georg
Вы не должны сериализовать объекты таким образом, потому что частные и защищенные свойства имеют нулевой символ в их имени. –
У вас есть идеи, почему этот код мог работать до или на разных машинах и т. Д.? Есть ли что-то, что произошло в довольно недавнем обновлении PHP или cURL? Просто FYI, моя виртуальная машина находится на Ubuntu 14.04 LTS, в то время как машины, над которыми я работал бы раньше, на месте, где у меня было место работы, где был установлен сайт, находятся на некоторой версии 12.04 LTS, поэтому, возможно, из-за этих версий PHP и таких могут быть разными .. –