[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: CURL, POST запрос, проблема с русскими смиволами
z668
Добрый вечер, есть скрипт следующего содержания:

<?php

////////////////////////////////////////////////
$user = fopen("user.txt", "r");
$fgets_u = fgets($user);
$text = fopen("text.txt", "r");
$fgets_t = fgets($text);
////////////////////////////////////////////////

////////////////////////////////////////////////

$url = "http://example.com/includes/ajax/message.php?opt=addpost";
$postdata = "comment_message=". htmlentities(urlencode($fgets_t)) . "+&pid=" . $fgets_u;
$referer = "http://example.com/index.php";
$user_cookie_file = fopen("cookie.txt", "w");
chmod("cookie.txt", 0777);
$cookie_file = "cookie.txt";
$ip = "192.168.12.12";
////////////////////////////////////////////////


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT,
'Internet Explorer/6.0 (X11; U; Windows XP SP2; en-US; rv:1.7.2) Gecko/20040804');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Language: ru,en;q=0.7,de-de;q=0.3',
'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5',
'X-Forwarded-For: ' . $ip));
curl_setopt($ch, CURLOPT_REFERER, $referer);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
$page = curl_exec($ch);
curl_close($ch);

echo $page;

echo "<meta http-equiv=\"refresh\" content=\2; URL=http://example.ru/add_post.php\" /> ";


При передаче post запроса возникла проблема, кирилические символы не передаются, латинские же передаются без ошибок. В чем может быть проблема?



Спустя 12 минут, 21 секунда (27.03.2011 - 23:18) YVSIK написал(а):
Это что такое, из какой оперы и вообще вы об чем?
ну тут нет ни одной буквы по РУССКИ
П,К, в огороде бузина а В Киеве дядька дА?

надобно экстрасенсам в догадки,
вы про что?

Спустя 3 минуты, 33 секунды (27.03.2011 - 23:21) z668 написал(а):
Цитата (YVSIK @ 27.03.2011 - 20:18)
Это что такое, из какой оперы и вообще вы об чем?
ну тут нет ни одной буквы по РУССКИ
П,К, в огороде бузина а В Киеве дядька дА?

надобно экстрасенсам в догадки,
вы про что?

Вот строка post запроса

$postdata = "comment_message=". htmlentities(urlencode($fgets_t)) . "+&pid=" . $fgets_u; 


произвольные данные берутся из текстовых файлов

$user = fopen("user.txt", "r");
$fgets_u = fgets($user);
$text = fopen("text.txt", "r");
$fgets_t = fgets($text);


Спустя 6 минут, 51 секунда (27.03.2011 - 23:28) YVSIK написал(а):
Вот строка post запроса

$postdata = "comment_message=". htmlentities(urlencode($fgets_t)) . "+&pid=" . $fgets_u; 

тут нет ни слова про пост и тем более про запрос
лучше переведите по слову что тут написано
(примено так переменной $postdata присвоено значение и т.д.)

Спустя 3 минуты, 16 секунд (27.03.2011 - 23:32) z668 написал(а):
Цитата (YVSIK @ 27.03.2011 - 20:28)
Вот строка post запроса

$postdata = "comment_message=". htmlentities(urlencode($fgets_t)) . "+&pid=" . $fgets_u; 

тут нет ни слова про пост и тем более про запрос
лучше переведите по слову что тут написано
(примено так переменной $postdata присвоено значение и т.д.)

Переменной присвоено значение:
$postdata = "comment_message=". htmlentities(urlencode($fgets_t)) . "+&pid=" . $fgets_u; 

сам post запрос осуществляется тут:
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);

Спустя 7 минут, 50 секунд (27.03.2011 - 23:39) Trianon написал(а):
z668
вероятно просто текст в файлах записан не в той кодировке, в которой ожидает данные сайт, к которому скрипт пытается обратиться.

Спустя 3 минуты, 19 секунд (27.03.2011 - 23:43) z668 написал(а):
Цитата (Trianon @ 27.03.2011 - 20:39)
z668
вероятно просто текст в файлах записан не в той кодировке, в которой ожидает данные сайт, к которому скрипт пытается обратиться.

Благодарю, попробую проверить кодировку файла.

Спустя 5 минут, 42 секунды (27.03.2011 - 23:48) z668 написал(а):
Цитата (Trianon @ 27.03.2011 - 20:39)
z668
вероятно просто текст в файлах записан не в той кодировке, в которой ожидает данные сайт, к которому скрипт пытается обратиться.

К сожалению не помогло. Кодировка файла windows-1251. Заголовки сервера:
HTTP/1.1 302 Found Server: nginx Date: Sun, 27 Mar 2011 20:47:49 GMT Content-Type: text/html; charset=windows-1251 Connection: keep-alive X-Powered-By: PHP/5.1.6 Expires: Thu, 19 Nov 1981 08:52:00 GMT

Спустя 36 минут, 41 секунда (28.03.2011 - 00:25) Trianon написал(а):
а почему 302-й?
и почему заголовок в линию вытянут?
Полагаете, так его легче читать?

Собственно, кодировку стоит смотреть той страницы, на которой форма...

Спустя 20 минут, 36 секунд (28.03.2011 - 00:46) z668 написал(а):
Цитата (Trianon @ 27.03.2011 - 21:25)
а почему 302-й?
и почему заголовок в линию вытянут?
Полагаете, так его легче читать?

Собственно, кодировку стоит смотреть той страницы, на которой форма...

Кодировка формы какраз windows-1251. Вопрос решился, igordata подсказал использовать iconv. Кодировка оказалась UTF-8. Вопрос снят. Все работает.

Спустя 5 минут, 3 секунды (28.03.2011 - 00:51) Trianon написал(а):
чушь.
Сайт обязан воспринимать данные именно в той кодировке, в которой генерировал форму перед запросом.
Другой вопрос, что форму Вы не запрашивали, а значит, в общем и целом, и отправлять её данные, формально, не вправе. Вернее - рассчитывать на детерминированный результат.

Спустя 1 час, 6 минут, 36 секунд (28.03.2011 - 01:57) Guest написал(а):
Цитата (Trianon @ 27.03.2011 - 21:51)
чушь.
Сайт обязан воспринимать данные именно в той кодировке, в которой генерировал форму перед запросом.
Другой вопрос, что форму Вы не запрашивали, а значит, в общем и целом, и отправлять её данные, формально, не вправе. Вернее - рассчитывать на детерминированный результат.

Не обязательно обязан. С формы данные могут идти в любой кодировке, другое дело в какую кодировку скрипт обрабатывает эти данные и в какой кодировке записывает в базу.

Спустя 22 часа, 6 минут, 5 секунд (29.03.2011 - 00:03) Trianon написал(а):
Guest
Чушь пороть не надо!
С формы данные пойдут не в любой, а именно в кодировке контента содержащего её документа.
И если скрипт их (данные) таковыми не воспримет, они окажутся либо искажены либо утеряны. Смысл обрабатывать в таком разе теряется напрочь.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.