У меня есть сторонний 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);
Magic_quotes включен, и это не обязательно хорошо, так как теперь он считается устаревшим.
Вы можете включить это только в ini-файле. Если вы не можете, используйте strip_slashes для их удаления.
Вы можете прокручивать свои столбцы для получения и публикации, чтобы удалить косые черты в верхней части страницы.