#php #curl
#php #curl
Вопрос:
У меня есть сторонний сервер на базе 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. Исправьте проблему в
http://www.myhostsite.com/form.php
, а не в вызове curl.2. у меня нет доступа к myhostsite.com/form.php его сервис, который я должен использовать без каких-либо привилегий
3. Если у вас нет доступа, вы не сможете решить проблему с их magic_quotes. Ответ на вопрос. Проблема не решена.
Ответ №1:
Magic_quotes включен, и это не обязательно хорошо, поскольку теперь он считается устаревшим.
Вы можете включить это только в ini-файле. Если вы не можете, используйте strip_slashes, чтобы удалить их.
Вы можете перебрать свои переменные get и post, чтобы удалить косые черты в верхней части страницы.