PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (5): « 1 2 [3] 4 5 »

> Найдено сообщений: 63
Delovoy Отправлено: 01 Июня, 2011 - 12:32:52 • Тема: Curl и Content-Type: multipart/form-data • Форум: Работа с сетью

Ответов: 21
Просмотров: 13496
OrmaJever вы написали правильный код, он у меня тоже работает на локальной машине

что касается данного поста, то вопрос не в том, чтобы отправить файлы на сервер, точнее не только в том

если посмотреть приведенный протокол обмена, то видно
что целевой сайт допускает отправку запроса и без файлов (а именно name="image_1"; filename="")

другое дело, что принимающий механизм обрабатывает данные в формате
Content-Type: multipart/form-data; boundary=

и в ответ я получаю что
Empty reply from server

если я делаю то же самое из браузера, то перехожу на страницу предварительного просмотра поданного объявления
....
help Огорчение
Delovoy Отправлено: 01 Июня, 2011 - 11:44:30 • Тема: Curl и Content-Type: multipart/form-data • Форум: Работа с сетью

Ответов: 21
Просмотров: 13496
не хотел тащить листинг, но видно по другому не получиться

итак, исходный материал, по которому строю отправку методом POST

Цитата:
http://slando[dot]com[dot]ua/post/

POST http://slando[dot]com[dot]ua/post/ HTTP/1.1
Host: slando.com.ua
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Proxy-Connection: keep-alive
Referer: http://slando[dot]com[dot]ua/post/?categ[dot][dot][dot]11035&type=1
Cookie: b=b; browser_session=BQgDAAAAAQQDAAAAAwoYU2xhbmRvOjpTZXNzaW9uOjpCcm93c2VyAAAACmNsYXNzX25hbWUKEzIw%0aMTEtMDUtMzEgMDc6MDA6NTcAAAAEZGF0ZQokQkM1MDZGRTAtOEI1My0xMUUwLTlENTQtRjIxNDND%0aNjkyMzNFAAAAA2tleQAAABhTbGFuZG86OlNlc3Npb246OkJyb3dzZXI%3d; __utma=186062070.772520765.1306825266.1306854268.1306912655.4; __utmz=186062070.1306825266.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); auth_session=BQgDAAAAAQQDAAAAAwoVU2xhbmRvOjpTZXNzaW9uOjpBdXRoAAAACmNsYXNzX25hbWUKEzIwMTEt%0aMDUtMzEgMTI6NDY6NDIAAAAEZGF0ZQokMDk0OUQ0NUEtOEI4NC0xMUUwLTlCRjUtRjIxNDNDNjky%0aMzNFAAAAA2tleQAAABVTbGFuZG86OlNlc3Npb246OkF1dGg%3d; __utmc=186062070; b=b; __utmb=186062070.3.10.1306912655
Proxy-Authorization: Basic a292YWxza2l5OmJlcmdoZWFz
Content-Type: multipart/form-data; boundary=----------------------- ----287032381131322
Content-Length: 4616
-----------------------------287 032381131322
Content-Disposition: form-data; name="category_id"

11035
-----------------------------287 032381131322
Content-Disposition: form-data; name="type"

1
-----------------------------287 032381131322
Content-Disposition: form-data; name="type_changed"

0
-----------------------------287 032381131322
Content-Disposition: form-data; name="select_child"

UA-KIEV-kiev
-----------------------------287 032381131322
Content-Disposition: form-data; name="region_key"

UA-KIEV-kiev
-----------------------------287 032381131322
Content-Disposition: form-data; name="location"

Соломенская
-----------------------------287 032381131322
Content-Disposition: form-data; name="price"

2600
-----------------------------287 032381131322
Content-Disposition: form-data; name="tit1e"

Обычная квартира
-----------------------------287 032381131322
Content-Disposition: form-data; name="body"

45/19/8. 2/9эт. Капитальный ремонт, удобная мебель, современная бытовая техника.Рядом метро, рынок.15 минут крещатик. Цена 4500грн. Александр 0675514832
-----------------------------287 032381131322
Content-Disposition: form-data; name="day_posting_date"

01
-----------------------------287 032381131322
Content-Disposition: form-data; name="month_posting_date"

06
-----------------------------287 032381131322
Content-Disposition: form-data; name="year_posting_date"

2011
-----------------------------287 032381131322
Content-Disposition: form-data; name="cf_number_of_rooms_44"

1
-----------------------------287 032381131322
Content-Disposition: form-data; name="cf_total_area_45"


-----------------------------287 032381131322
Content-Disposition: form-data; name="cf_total_living_area_46"


-----------------------------287 032381131322
Content-Disposition: form-data; name="cf_kitchen_area_47"


-----------------------------287 032381131322
Content-Disposition: form-data; name="cf_floor_48"

2
-----------------------------287 032381131322
Content-Disposition: form-data; name="cf_total_floors_49"


-----------------------------287 032381131322
Content-Disposition: form-data; name="image_1"; filename=""
Content-Type: application/octet-stream


-----------------------------287 032381131322
Content-Disposition: form-data; name="image_action_1"


-----------------------------287 032381131322
Content-Disposition: form-data; name="image_2"; filename=""
Content-Type: application/octet-stream


-----------------------------287 032381131322
Content-Disposition: form-data; name="image_action_2"


-----------------------------287 032381131322
Content-Disposition: form-data; name="image_3"; filename=""
Content-Type: application/octet-stream


-----------------------------287 032381131322
Content-Disposition: form-data; name="image_action_3"


-----------------------------287 032381131322
Content-Disposition: form-data; name="image_4"; filename=""
Content-Type: application/octet-stream


-----------------------------287 032381131322
Content-Disposition: form-data; name="image_action_4"


-----------------------------287 032381131322
Content-Disposition: form-data; name="image_5"; filename=""
Content-Type: application/octet-stream


-----------------------------287 032381131322
Content-Disposition: form-data; name="image_action_5"


-----------------------------287 032381131322
Content-Disposition: form-data; name="image_6"; filename=""
Content-Type: application/octet-stream


-----------------------------287 032381131322
Content-Disposition: form-data; name="image_action_6"


-----------------------------287 032381131322
Content-Disposition: form-data; name="video_url"


-----------------------------287 032381131322
Content-Disposition: form-data; name="email"

steel_d@mail.ru
-----------------------------287 032381131322
Content-Disposition: form-data; name="contact_method"

1
-----------------------------287 032381131322
Content-Disposition: form-data; name="other_contact"


-----------------------------287 032381131322
Content-Disposition: form-data; name="captcha_image"

e632dc0c50ad744ac4edc69f464cdc8e .png
-----------------------------287032381131322
Content-Disposition: form-data; name="captcha_guess"

3966
-----------------------------287 032381131322
Content-Disposition: form-data; name="preview"

Предварительный просмотр
-----------------------------287 032381131322--

HTTP/1.0 200 OK
Server: Apache
X-Slando-Unq: NO CODE
X-Slando-Host: w4a1
P3P: policyref=http://www[dot]slando[dot]ru/p3p[dot]xml,CP="NOI DEVa OUR BUS UNI"
Pragma: no-cache
Expires: Fri, 20 May 2011 17:32:26 GMT
X-Slando-GQ: 9b22cdc2078a8496684c2b85ba23e5e9 ef16a13c
Vary: Accept-Encoding
Content-Length: 8161
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Date: Wed, 01 Jun 2011 07:19:06 GMT
X-Varnish: 996529691
Age: 0
Via: 1.1 varnish
X-Cache: MISS, MISS from mx.cis.net.ua
Proxy-Connection: keep-alive


собственно мой код:

PHP:
скопировать код в буфер обмена
  1. // объявляем набор параметров объявления для передачи
  2.     $postdata = array(
  3.         'category_id' => '11035',
  4.         'type' => '1',
  5.         'type_changed' => '0',
  6.         'select_child' => 'UA-KIEV-kiev',
  7.         'region_key' => 'UA-KIEV-kiev',
  8.         'location' => 'Соломенская',
  9.         'price' => '2600',
  10.         'tit1e' => 'Простая квартира',
  11.         'body' => '45/19/8. 2/9эт. Капитальный ремонт, удобная мебель, современная бытовая техника.Рядом метро, рынок.15 минут крещатик. Цена 4500грн. Александр 0675514832',
  12.         'day_posting_date' => '01',
  13.         'month_posting_date' => '06',
  14.         'year_posting_date' => '2011',
  15.         'cf_number_of_rooms_44' => '1',
  16.         'cf_total_area_45' => '',    // необязательный
  17.         'cf_total_living_area_46' => '', // необязательный
  18.         'cf_kitchen_area_47' => '', // необязательный
  19.         'cf_floor_48' => '2',
  20.         'cf_total_floors_49' => '', // необязательный
  21.         'image_1' => '',
  22.         'image_action_1' => '',
  23.         'image_2' => '',
  24.         'image_action_2' => '',
  25.         'image_3' => '',
  26.         'image_action_3' => '',
  27.         'image_4' => '',
  28.         'image_action_4' => '',
  29.         'image_5' => '',
  30.         'image_action_5' => '',
  31.         'image_6' => '',
  32.         'image_action_6' => '',
  33.         'video_url' => '',
  34.         'email' => 'steel_d@mail.ru',
  35.         'contact_method' => '1',
  36.         'other_contact' => '',
  37.         'captcha_image' => $cap_name,
  38.         'captcha_guess' => $cap_value,
  39.         'preview' => 'Предварительный просмотр'
  40.                      
  41.  );
  42.    
  43. // инициализация сеанса
  44. $ch = curl_init();
  45.  
  46. // установка URL и других необходимых параметров
  47. curl_setopt($ch, CURLOPT_URL, "http://slando.com.ua/post/");
  48.                                
  49. // установка метода передачи параметров
  50. curl_setopt($ch, CURLOPT_POST, 1);
  51.  
  52. // установка браузера
  53. curl_setopt($ch, CURLOPT_USERAGENT, "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13");
  54.  
  55. // добавляем заголовков к нашему запросу. Чтоб смахивало на настоящего пользователя :)
  56. $headers = array
  57.     (
  58.     'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  59.     'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3',
  60.     'Accept-Encoding: deflate',
  61.     'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'
  62. );
  63.  
  64. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  65.  
  66. // Подделываем значение - откуда пришли данные.
  67. curl_setopt($ch, CURLOPT_REFERER, "http://slando.com.ua/post/?category_id=11035&type=1");
  68.  
  69.  
  70. // Функции для обработки установливаемых сайтом кук.
  71. curl_setopt($ch, CURLOPT_COOKIEJAR, "d:\out\my_cookies.txt");
  72. curl_setopt($ch, CURLOPT_COOKIEFILE, "d:\out\my_cookies.txt");
  73.  
  74. // разрешить переадресацию
  75. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  76.  
  77. // параметры метода POST
  78. curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
  79.  
  80. // выводит переменную
  81. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
  82.  
  83. //настройка SSL
  84. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  85. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  86.  
  87.  
  88. // загрузка страницы и выдача её браузеру
  89. $out = curl_exec($ch);
  90.  
  91.  
  92. // отображение информации об ошибках работы cURL
  93. echo "\n\ncURL error number:" . curl_errno($ch) . " <br>";
  94. echo "\n\ncURL error:" . curl_error($ch) . " <br>";
  95.  
  96. // завершение сеанса и освобождение ресурсов
  97.  
  98. echo $out;


получаю ту же ошибку:
cURL error number:52
cURL error:Empty reply from server
Delovoy Отправлено: 01 Июня, 2011 - 10:31:29 • Тема: Curl и Content-Type: multipart/form-data • Форум: Работа с сетью

Ответов: 21
Просмотров: 13496
пока не работает
получаю в ответ:

cURL error number:52
cURL error:Empty reply from server


Задумался еще вот над чем:

CURLOPT_POST: При установке этого параметра в ненулевое значение будет отправлен HTTP запрос методом POST типа application/x-www-form-urlencoded, используемый браузерами при отправке форм.

но у меня ведь
Content-Type: multipart/form-data и еще + boundary=

кто сталкивался ?
Delovoy Отправлено: 31 Мая, 2011 - 17:57:11 • Тема: Curl и Content-Type: multipart/form-data • Форум: Работа с сетью

Ответов: 21
Просмотров: 13496
Вычитал в инете, что для передачи параметров используется массив
array("name_input" => "value");

это то что я вижу в заголовка при просмотре в браузере (пользуюсь расширение firefox для просмотра заголовков):

Цитата:
Content-Disposition: form-data; name="cf_number_of_rooms_44"

1
-----------------------------260 0251021003
Content-Disposition: form-data; name="cf_total_area_45"


-----------------------------260 0251021003
Content-Disposition: form-data; name="cf_total_living_area_46"


-----------------------------260 0251021003
Content-Disposition: form-data; name="cf_kitchen_area_47"


-----------------------------260 0251021003
Content-Disposition: form-data; name="cf_floor_48"

2
-----------------------------260 0251021003
Content-Disposition: form-data; name="cf_total_floors_49"


-----------------------------260 0251021003
Content-Disposition: form-data; name="image_1"; filename=""
Content-Type: application/octet-stream


я формирую свой массив:
PHP:
скопировать код в буфер обмена
  1. $postdata = array(
  2.         'cf_number_of_rooms_44' => '1',
  3.         'cf_total_area_45' => '',    // необязательный
  4.         'cf_total_living_area_46' => '', // необязательный
  5.         'cf_kitchen_area_47' => '', // необязательный
  6.         'cf_floor_48' => '2',
  7.         'cf_total_floors_49' => '' // необязательный
  8.       );
  9.  


а вот на том, как описать в массиве
Content-Disposition: form-data; name="image_1"; filename=""
Content-Type: application/octet-stream[/quote]


я застрял ... кто подскажет ?
Delovoy Отправлено: 31 Мая, 2011 - 12:04:45 • Тема: Помогите с регулярным выражением • Форум: Регулярные выражения

Ответов: 3
Просмотров: 191
уже заработало, вот в таком варианте

PHP:
скопировать код в буфер обмена
  1. preg_match_all("/http.*captcha.*png/iu", $slando_page, $out_arr);
Delovoy Отправлено: 31 Мая, 2011 - 11:38:32 • Тема: Помогите с регулярным выражением • Форум: Регулярные выражения

Ответов: 3
Просмотров: 191
Добрый день, уважаемый знатоки

Получаю страницу с помощью Curl и из полученной страницы нужно получить ссылку на изображение

ссылка имеет вид
http://адрес сайта/captcha/38b0ce89c37bc13d5b d705865abac40a.png

я попробовал составить регулярное выражение

PHP:
скопировать код в буфер обмена
  1. preg_match_all("/(^http.*captcha.*png$)/iu", $slando_page, $out_arr);


рассуждения были такие:
ссылка должна начинаться с http : ^http
после http может быть произвольное количество разных символов: .*
внутри этого произвольного количества должно быть слово captcha
после слова captcha тоже может быть произвольное количество символов: .*
ссылка должна заканчиваться png : png$

и два модификатора:
i - регистронезависимость (ну на всякий случай)
u - UTF-8, так как страницу я получаю в utf-8
по крайней мере надеюсь на это, так как при получении страницы в заголовке передаю
Accept-Charset: utf-8;

результат - НИ ОДНОЙ ССЫЛКИ НЕ НАЙДЕНО!

подскажите как правильно? хочу разобраться!
Delovoy Отправлено: 26 Мая, 2011 - 12:05:17 • Тема: Редакторы PHP • Форум: Программное обеспечение

Ответов: 421
Просмотров: 252042
Пользуюсь NetBeans - очень нравится, очень доволен
подсветка, автозавершение кода (ну не люблю я писать длинные названия функций и закрывающиеся теги Радость ), возможность просмотра CSS - для новичка, то что нужно!

распространяется бесплатно Радость
Delovoy Отправлено: 20 Мая, 2011 - 15:33:49 • Тема: Взаимодействие с COM сервером • Форум: Операционная система и системные вызовы

Ответов: 1
Просмотров: 1513
розобрался но не до конца, пишу в продолжении этой темы, так как они логически связанны

PHP:
скопировать код в буфер обмена
  1. $srv = new COM("ServerSocket.SMidas") or die("Unable to instantiate Srv3");
  2.  
  3.         $temp=0;
  4.  
  5.         $Object = $srv->GetPVer(&$temp);
  6.  
  7.         echo 'переменная'.$temp.'<br>';
  8.         echo 'результат '.($Object).'<br>';


сам вопрос таков:
метод GetPVer com объекта, должен перезаписать переменную $temp новым значением, но таковое не происходит ...

кто в курсе как побороть ?
Delovoy Отправлено: 17 Мая, 2011 - 15:15:35 • Тема: Взаимодействие с COM сервером • Форум: Операционная система и системные вызовы

Ответов: 1
Просмотров: 1513
На мой машине развернут COM сервер,
имеющий GUID {6DAC8693-5F1D-4B38-84DE-E53D370C36C9}
каким образом можно к нему достучаться ?

нашел в интернете пример:
PHP:
скопировать код в буфер обмена
  1. $xls = new COM("Excel.Application"); // Создаем новый COM-объект


сделал по аналогии:
PHP:
скопировать код в буфер обмена
  1. $Object = new COM("6DAC8693-5F1D-4B38-84DE-E53D370C36C9");


но так не работает ...
подскажите, кто сталкивался с подобной задачей
(Добавление)
уже разобрался Улыбка

нашел в реестре windows поиском п6DAC8693-5F1D-4B38-84DE-E53D370 C36C9
и в этом разделе есть параметр ProgID ( в моем случае имеющий значение o3.Sr3)

после чего

корректно отработало и можно было дергать методы COM сервера

тему можно закрывать
Delovoy Отправлено: 22 Февраля, 2011 - 15:00:16 • Тема: Город - Район • Форум: Программирование на PHP

Ответов: 5
Просмотров: 403
спасибо .. )
Delovoy Отправлено: 22 Февраля, 2011 - 09:53:19 • Тема: Город - Район • Форум: Программирование на PHP

Ответов: 5
Просмотров: 403
Вроде элементарная на первый взгляд вещь, но ...только на первый ... Улыбка

Есть два выпадающих списка (select-а)
В первом содержится список городов
Во втором должен отображаться список районов, конкретного города

по логике, я должен получить с помощью php на сервере список, городов и передать их на клиента
при этом список райнов передавать нет смысла, я же заранее не знаю, какой пользователь выберет город (или есть ? )

после выбора пользователя города (тут мне подсказывает интуиция должен быть java-script ... и скорее всего ajax), я получаи идентификатор города - отправляю на сервер - формирую по нему список районов и ...динамически подгружаю на страницу ?

ужос ))))
может кто-то знает более простой вариант ?
Delovoy Отправлено: 09 Февраля, 2011 - 10:47:08 • Тема: Boolean в MySQL • Форум: SQL и Архитектура БД

Ответов: 4
Просмотров: 25
все гениальное просто .. )))
Спасибо, Ch_chov !
Delovoy Отправлено: 08 Февраля, 2011 - 17:42:34 • Тема: Boolean в MySQL • Форум: SQL и Архитектура БД

Ответов: 4
Просмотров: 25
У меня есть таблица "g_user", в которой имеется поле "st" (статус) типа BOOL (т.е. 0 или 1)
мне нужно в запросе меня статус поля на противоположный
т.е. там где st=1 установить st=0
и соответственно наоборот: т.е. там где st=0 установить st=1

можно было бы получить существующее значение поля и сделать логическое отрицание

кто-то может подсказать как это реализовать в запросе ?
Delovoy Отправлено: 31 Января, 2011 - 10:02:33 • Тема: Помогите распарсить текст • Форум: Регулярные выражения

Ответов: 15
Просмотров: 932
Спасибо всем за помощь! Все получилось! )))

Отдельное спасибо
JustUserR пишет:
за анализ XML-документов в PHP-приложениях
Подмигивание
Delovoy Отправлено: 27 Января, 2011 - 12:04:05 • Тема: Помогите распарсить текст • Форум: Регулярные выражения

Ответов: 15
Просмотров: 932
Я изменил конструкцию следующим образом

PHP:
скопировать код в буфер обмена
  1. preg_match_all("/\s+[0-9.]+\s+([а-я.].+[а-я.]+)/iu", $text, $out_arr);


в результате получил, то что хотел
(даже попали в отбор такие звери, как:
Владимиро-Лыбедская и Житомирская Ивановская пл.) Улыбка

CODE (html):
скопировать код в буфер обмена
  1. Array ( [0] => 1. Александровская [1] => 2. Андрющенко [2] => 3. Б.Житомирская Ивановская )


остался вопрос как в начале отрезать цифру с номером и пробелом, но при этом чтобы она осталась как условие поиска ?

и при значении метро "Дворец Украина" в результат попадает
метро "Дворец Украина - т.е. отсутствует последняя ковычка, но присутствует первая ...


А при записи в БД получается вообще что-то интересное
метро &quot;Дворец Украина
(модераторы, сорри что не по теме про базы данных, но чтобы в одном обсуждении уже все вопросы решить)

Страниц (5): « 1 2 [3] 4 5 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB