Witam,
użyłem powyższego kodu ale niestety nie wyświetla mi się captcha... Gdzie może być błąd?
Mi ten kod wciąż działa. Na pewno zainstalowałeś pecl http?
Bez zainstalowanego pecl'a miałem błąd "Brak klasy httprequest", po instalacji ruszyło ale bez obrazka... :(
Masz włączone pokazywanie błędów?
Wklej adres obrazka bezpośrednio, pobierz go i otwórz edytorem tekstowym. Być może tam skrył się jakiś błąd PHP.
Tak, mam włączone na poziomie tworzenia aplikacji...
Nie bardzo zrozumiałem co mam zrobić z obrazkiem :(
Nie wiem czy ma to znaczenie ale instalowałem tylko php_http.dll.
Problem był po stronie serwera. Pomogło:
while (@ob_end_clean());
przed wywołaniem headera:
header('Content-type: image/jpeg');
Dzięki za pomoc...
Upewnij się, że przed <?php
nie masz żadnych białych znaków (spacji) czy UTF BOM.
Funkcja parsera danych.
Wymaga klasy simple_html_dom.php i zmiany w niej linii (nr ok 75):
$contents = file_get_contents($url, $use_include_path, $context, $offset);
na
$contents = $url;
W klasie NipRequest definujemy zmienną publiczną $iddata:
...
const REQUEST_PHASE = 3;
const COMPLETED_PHASE = 4;
public $iddata;//dodana zmienna
private $phase;
...
FUNKCJA:
public function parse_response($response) {
include ('simple_html_dom.php');
$html = file_get_html($response);
foreach ($html->find('tr') as $row) {
$ids[] = $row->find('td',1)->plaintext;
}
$this->iddata['regon'] = trim($ids[0]);
$this->iddata['nip'] = trim($ids[1]);
$this->iddata['nazwa'] = trim($ids[2]);
$this->iddata['nazwisko'] = trim($ids[3]);
$this->iddata['imie'] = trim($ids[4]);
$this->iddata['woj'] = trim($ids[5]);
$this->iddata['powiat'] = trim($ids[6]);
$this->iddata['poczta'] = trim($ids[7]);
$address = preg_replace('/\s+/', ' ',$ids[8]);
$address = trim(substr($address, 0, strpos($address,',')));
$address = str_replace('UL.', 'ul.', $address);
$address = str_replace(' lok.', '/', $address);
$this->iddata['adres'] = $address;
$this->iddata['kod'] = substr($ids[9],0,6);
$this->iddata['miasto'] = substr($ids[9],7);
}
JEJ WYWOŁANIE
$response = $request->parse_response($response);
print var_dump($request->iddata);//wyswietla w oknie tablice
Wszystko jest ok ale...
muszę uzyskać captcha przez zapytanie ajax i tu utknąłem. Nie wiem jak to obejść :(
Przygotuj sobie plik PHP, w którym w zależności od parametru będą wywoływane poszczególne metody (nie zapomnij, żeby operować cały czas na tym samym obiekcie przekazywanym w sesji).
- Gdy użytkownik zgłosi chęć pobrania danych na podstawie NIP:
$request->initialize();
. - Gdy będziesz chciał mu wyświetlić captchę:
$request->fetch_captcha();
(zwróci obrazek). - Gdy użytkownik wpisze numer nip i rozwiąże captchę:
$request->send_request(captcha, nip);
- Gdy będzie chciał odebrać dane:
$request->get_response();
.
1 i 2 oraz 3 i 4 można połączyć. Wtedy wystarczą dwa odwołania.
Dzięki za odpowiedź. Po części udało mi się opanować temat z tym że... :)
w jaki sposób pobrać obraz captcha (aktualnie otrzymuje obraz w string), próbowałem przy użyciu data:image/jpeg;base64
niestety nie działa :(
mój błąd- nie dałem base64_encode w .php.
Jeszcze prosiłbym o pomoc z ciasteczkami.
Kiedy skrypt pracuje jako osobna strona wszystko jest ok, kiedy wrzuciłem go do głównej aplikacji, captcha pobiera i wyświetla prawidłowo, dane wysyła ale za każdym razem otrzymuję informację, że moja przeglądarka ma wyłączony mechanizm cookies. Jak rozwiązać ten problem?
Wielki comback ...
Po instalacji certyfikatu ssl obrazek przestał być pobierany. httprequest zwraca:
Wystąpił błąd. Empty or too short HTTP message: ''
Jak to ominąć?
fangel napisał(a):
Jeszcze prosiłbym o pomoc z ciasteczkami.
Kiedy skrypt pracuje jako osobna strona wszystko jest ok, kiedy wrzuciłem go do głównej aplikacji, captcha pobiera i wyświetla prawidłowo, dane wysyła ale za każdym razem otrzymuję informację, że moja przeglądarka ma wyłączony mechanizm cookies. Jak rozwiązać ten problem?
Poradziłeś sobie z tym problemem ?
Utknąłem w tym samym miejscu :(
Sprzedam gotowe rozwiązanie z tym GUS-em, kontakt PW.
Zabawne... Zaczynałem swoją przygodę z tym tematem jeszcze przed rozpoczęciem tego wątku, po czym ze względu na priorytety zadanie zostało zamknięte i teraz po prawie dziewięcio-miesięcznej karencji zgłoszenie zostało ponownie otwarte, a tu widzę wątek niemal w tej samej godzinie ożył :).
Na razie jeszcze spróbuję pokombinować jeszcze coś na własną rękę, bo w zasadzie wątek nie wniósł jakichś spektakularnych nowości, które by mi otworzyły oczy :) ale z ciekawości zapytam... Za ile to gotowe rozwiązanie?
Fajnie wszystko działa, klasa i przyklad. Pobiera capcia i wyswietla dane. No ale jak to zrobic za pomoca samego CURLA i parsowaniu nagłówków. BEZ pecla. Nie kazdym hosting chce go uruchamiac.
Ktoś przedstawi przyklad na zamym CURL ?
Zatem przedstawiam przykład na samym CURlu bez Pecl
http://gus.yum.pl/gus.php
Wersja z Pecl
http://gus.yum.pl/
Możesz gdzieś zamieścić kod do działającego przykładu? Byłby bardzo przydatny ...
Trochę wody w Wiśle upłynęło od czasu, gdy dyskutowaliście nad rozwiązaniem, które pozwoli na pobieranie informacji o firmach.
W związku z tym, że w dalszym ciągu rynek wyraża zapotrzebowanie na produkt / aplikację pozwalającą na parsowanie CEIDG - zapraszam do sprawdzenia gotowego rozwiązania na www.ceidg-api.pl
http://4programmers.net/Forum/929060
tu jest działajacy przyklad na peclu i to jako klasa. przerobienie tego na CURLA dla myslącego nie zajmie dluzej niz 1 wieczor. Prosze przeczytac caly temat i myśleć . Tu sa wystarczajace podpowiedzi.
Niestety powyższy kod już nie działa. Na wyjściu zwrócona jest co prawda strona z wynikiem, jednak jest ona "pusta". W sensie nie ma żadnych danych o firmie, którą szukamy.
GUS chyba zmienił coś w swoim "api", jeszcze nie wiem co, mój kod też przestał działać
Mój ciągle działa. Zauważyłem ostatnio jedną zmianę, ale nie byłem pewien, czy to wina GUS-u, czy tego że zaktualizowałem cURL'a. Cały Header z treścią cookies był wcześniej oddzielony kilkoma \n, natomiast teraz zupełnie ich nie ma - wszystko jest w jednej linii. Jeśli rozdzielaliście Header i treść na podstawie tych linii to prawdopodobnie dlatego nie działa.
Fajny skrypt, chcialem wykorzystać ale mam problem z instalacją pecla na najnowszej wersji xamppa. Próbowałem wszystkie wersje ze strony: http://windows.php.net/downloads/pecl/releases/http/2.1.2/
I za kazdym razem jest problem. Prosze o pomoc ... ;/
Dzień dobry,
Nasza firma oferuje zaawansowaną aplikację, klasę PHP, która pozwala na bezobsługowe pobieranie danych firm z Centralnej Ewidencji i Informacji o Działalności Gospodarczej, należącej do Ministerstwa Gospodarki.
Więcej informacji pod adresem www.ceidg-api.plpi.pl lub adresem e-mail: [email protected]
Masz tutaj gotowca:
http://allegro.pl/show_item.php?item=5607500887
Dam za to 50 dych - > [email protected]