Dane z GUS - NIP

0

Witam,
użyłem powyższego kodu ale niestety nie wyświetla mi się captcha... Gdzie może być błąd?

RE
Moderator
  • Rejestracja:około 18 lat
  • Ostatnio:11 miesięcy
0

Mi ten kod wciąż działa. Na pewno zainstalowałeś pecl http?

0

Bez zainstalowanego pecl'a miałem błąd "Brak klasy httprequest", po instalacji ruszyło ale bez obrazka... :(

RE
Moderator
  • Rejestracja:około 18 lat
  • Ostatnio:11 miesięcy
0

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.

0

Tak, mam włączone na poziomie tworzenia aplikacji...
Nie bardzo zrozumiałem co mam zrobić z obrazkiem :(

0

Nie wiem czy ma to znaczenie ale instalowałem tylko php_http.dll.

0

Problem był po stronie serwera. Pomogło:

Kopiuj
while (@ob_end_clean());

przed wywołaniem headera:

Kopiuj
header('Content-type: image/jpeg');

Dzięki za pomoc...

RE
Moderator
  • Rejestracja:około 18 lat
  • Ostatnio:11 miesięcy
0

Upewnij się, że przed <?php nie masz żadnych białych znaków (spacji) czy UTF BOM.

0

Funkcja parsera danych.
Wymaga klasy simple_html_dom.php i zmiany w niej linii (nr ok 75):

Kopiuj
$contents = file_get_contents($url, $use_include_path, $context, $offset); 

na

Kopiuj
$contents = $url;

W klasie NipRequest definujemy zmienną publiczną $iddata:

Kopiuj
...    
    const REQUEST_PHASE = 3;
    const COMPLETED_PHASE = 4;
    
    public $iddata;//dodana zmienna

    private $phase; 
...

FUNKCJA:

Kopiuj
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

Kopiuj
$response = $request->parse_response($response);
print var_dump($request->iddata);//wyswietla w oknie tablice
0

Wszystko jest ok ale...
muszę uzyskać captcha przez zapytanie ajax i tu utknąłem. Nie wiem jak to obejść :(

RE
Moderator
  • Rejestracja:około 18 lat
  • Ostatnio:11 miesięcy
0

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).

  1. Gdy użytkownik zgłosi chęć pobrania danych na podstawie NIP: $request->initialize();.
  2. Gdy będziesz chciał mu wyświetlić captchę: $request->fetch_captcha(); (zwróci obrazek).
  3. Gdy użytkownik wpisze numer nip i rozwiąże captchę: $request->send_request(captcha, nip);
  4. 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.

edytowany 2x, ostatnio: Rev
FA
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 12 lat
  • Postów:3
0

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.

edytowany 1x, ostatnio: fangel
FA
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 12 lat
  • Postów:3
0

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?

FA
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 12 lat
  • Postów:3
0

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ąć?

0
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 :(

dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:4 dni
  • Lokalizacja:Rzeszów
0

Sprzedam gotowe rozwiązanie z tym GUS-em, kontakt PW.


RI
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 11 lat
  • Postów:1
0

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?

dzek69
możesz proponować cenę na pm
T0
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 2 lata
  • Postów:40
0

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/

edytowany 1x, ostatnio: te0dor
0

Możesz gdzieś zamieścić kod do działającego przykładu? Byłby bardzo przydatny ...

0

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

T0
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 2 lata
  • Postów:40
0

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.

dzek69
w curl nie masz modyfikowania ciasteczek. trzeba pisać jakieś protezy
T0
no jak nie masz jak masz ? wysyłacz ciastka przygotowane po swojemu w nagłówkach, a takowe możesz wysłać CURLem, no chyba że się myle
dzek69
no własnie to przygotowanie po swojemu to już proteza, zamiast prostego nadpisywania ciastek metodą
0

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.

0

GUS chyba zmienił coś w swoim "api", jeszcze nie wiem co, mój kod też przestał działać

K3
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 10 lat
  • Postów:1
0

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.

D4
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 8 lat
  • Postów:122
0

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 ... ;/

CE
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:1
0

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: www.ceidg-api.pl lub adresem e-mail: kontakt@ceidg-api.pl

KR
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 9 lat
  • Postów:1
0
0

Dam za to 50 dych - > tomsiu@o2.pl

dzek69
50 dych = 500zł ;]
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)