PHP Curl добавляет '\' к символу апострофной отправки на PHP, но на сервере ASP - PullRequest
0 голосов
/ 07 апреля 2011

У меня есть сторонний ASP-сервер, на котором есть страница PHP, которая принимает данные формы.С моей веб-страницы у меня есть скрипт PHP, который отправляет поля на страницу PHP с помощью curl.Все работает хорошо, за исключением случаев, когда пользователь включает символ апостроф в текст!В конце он принимается как "\".

Еще более странно, что он делает это только с моего веб-сайта.Когда я тестирую локально, он работает нормально.

У меня нет контроля над моим размещенным сайтом.Все, что мне нужно, чтобы работать с моей функцией php curl.

она отлично работает на моем локальном хосте.

вот пример кода

  $this->headers[] = 'Accept: '. $_SERVER['HTTP_ACCEPT'];
    $this->headers[] = 'Connection: Keep-Alive';
    $this->headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8';
    $post_var = 'post='.urlencode(stripslashes("it's Me Ali"));

    $this->ch = curl_init();
    curl_setopt($this->ch, CURLOPT_HTTPHEADER,      $this->headers);
    curl_setopt($this->ch, CURLOPT_HEADER,          FALSE);
    curl_setopt($this->ch, CURLOPT_USERAGENT,       $this->USER_AGENT);
    curl_setopt($this->ch, CURLOPT_COOKIEFILE,      $this->cookie);
    curl_setopt($this->ch, CURLOPT_COOKIEJAR,       $this->cookie);
    curl_setopt($this->ch, CURLOPT_COOKIE,          $strCookie = 'PHPSESSID=' . $_COOKIE['PHPSESSID'] . '; path=/');
    curl_setopt($this->ch, CURLOPT_ENCODING,        "gzip");
    curl_setopt($this->ch, CURLOPT_RETURNTRANSFER,  TRUE);
    curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION,  TRUE);

    curl_setopt($this->ch, CURLOPT_URL,         'http://www.example.com/form.php');
    curl_setopt($this->ch, CURLOPT_POST,        TRUE);
    curl_setopt($this->ch, CURLOPT_POSTFIELDS,  $post_var);

    $get_page = curl_exec($this->ch);
    echo $get_page;
    curl_close($this->ch);

1 Ответ

1 голос
/ 07 апреля 2011

Magic_quotes включен, и это не обязательно хорошо, так как теперь он считается устаревшим.

Вы можете включить это только в INI-файле. Если вы не можете, используйте strip_slashes, чтобы удалить их.

Вы можете циклически просматривать переменные get и post, чтобы удалить косую черту в верхней части страницы.

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