svk__wlad
Создатель
- Регистрация
- 21 Мар 2012
- Сообщения
- 33
- Реакции
- 1
- Автор темы
- #1
Прошу подсказать по моему вопросу.
Пишу скрипт для размещения новостей на сайте ucoz. Нашел скрипт, который делает тоже самое, что и мой будет. Немного переделал:
С curl где $ch и $ch1, все понятно. А вот с $ch3 вопрос: Почему при передаче данных в POSTFIELDS в виде ассоциативного массива не указывается параметр POST (1 или true)?
Или параметр POST (1 или true) надо указывать только когда отправка данных в POSTFIELDS идет в таком виде: 'para1=val1¶2=val2&...'.
Если поставить POST (1 или true) то вылетает 411 ошибка.
Пишу скрипт для размещения новостей на сайте ucoz. Нашел скрипт, который делает тоже самое, что и мой будет. Немного переделал:
PHP:
<?php
header("Content-Type: text/html;charset=utf-8");
$login = 'тут логин';
$passwd = 'пароль';
define ('DS',DIRECTORY_SEPARATOR);
echo getcwd().DS.'cookie.txt';
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_USERAGENT, 'Opera 10.00');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, "http://сайт/index/sub/");
curl_setopt($ch, CURLOPT_POSTFIELDS, 'user='.$login.'&password='.$passwd.'&rem=1'.'&a=2'.'&ajax=1'.'&_tp_=xml&'.rand(100,999));
$res = curl_exec($ch);
curl_close($ch);
$ch1= curl_init();
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch1, CURLOPT_USERAGENT, 'Opera 10.00');
curl_setopt($ch1, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch1, CURLOPT_URL, "http://сайт/news/0-0-0-0-1");
curl_setopt($ch1, CURLOPT_POST, 0);
$stranica_for_ssid = curl_exec($ch1);
curl_close($ch1);
if (preg_match_all(
'#<input type="hidden" name="ssid" value="(.+)" />#i',
$stranica_for_ssid,
$res))
{
$ssid=$res[1][0];
}
else
{
echo 'ssid не получен';
}
$filds = array(
'a'=> 2,
'jkd428'=> 1,
'jkd498'=> 1,
'title'=> '<b>заголовок новости</b>32434<br>',
'message' => html_entity_decode('<b>заголовок новости</b>32434<br>текст1efww8888888888888wwwwwwwwwwwwwwwwww'),
'format_message' =>1,
'edttmessage'=>2,
'html_message' =>1,
'coms_allowed'=>1,
'ssid' => $ssid
);
$ch3= curl_init();
curl_setopt($ch3, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch3, CURLOPT_USERAGENT, 'Opera 10.00');
curl_setopt($ch3, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch3, CURLOPT_URL, "http://wm-ginza.ru/news/0-0-0-0-1");
curl_setopt($ch3, CURLOPT_POSTFIELDS, $filds);
$res1 = curl_exec($ch3);
?>
С curl где $ch и $ch1, все понятно. А вот с $ch3 вопрос: Почему при передаче данных в POSTFIELDS в виде ассоциативного массива не указывается параметр POST (1 или true)?
Или параметр POST (1 или true) надо указывать только когда отправка данных в POSTFIELDS идет в таком виде: 'para1=val1¶2=val2&...'.
Если поставить POST (1 или true) то вылетает 411 ошибка.