Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] aktualizator cen z hurtowni
clp
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.04.2007

Ostrzeżenie: (0%)
-----


Witam

Pisze program, który ma aktualizować ceny w sklepie pobierając je z hurtowni. Tyle wstępu.
Po w miare łatwym zrobieniu hurtowni ab.pl i abcdata.com.pl rozwaliła mnie hurtownia incom.pl ...
Chodzi o to, że :
  1. <?php
  2. $sajt="http://online.incom.pl/NBWeb/Login.aspx";
  3. login_on(GetUrlOnline($sajt));
  4. ?>

najpierw laczy sie i pobiera sobie jakas tam zmienna potem sie loguje uzupelnia ciastko i wszystko jest super

$sajt='http://online.incom.pl/NBWeb/Main.aspx';
// taka strone pobierze
$sajt='http://online.incom.pl/NBWeb/Produkty/CennikProd.aspx';
// taka tez

$sajt='http://online.incom.pl/NBWeb/Produkty/TowaryG.aspx?producent=58&typ=1';
$sajt='http://online.incom.pl/NBWeb/Produkty/CennikGrupy.aspx?kod=203934';
$sajt='http://online.incom.pl/NBWeb/Produkty/TowaryG.aspx?producent=203934&grupa=2234';
// a takich za chuja (za przeproszeniem) wyrzuca mnie i pisze mi ze invalid session i resetuje mi ciastko z authem
  1. <?php
  2. $dane=GetUrlOnline($sajt);
  3. echo $dane;
  4. // tak pobieram
  5. ?>


Jak by ktoś miał blade pojecie o co może chodzić to bym dzwięczał do końca życia winksmiley.jpg
Aha ta ichnia aplikacja to jakies asp.net

a tu moje funkcje które to robią
  1. <?php
  2. function login_on($dane){
  3. $pat1='!<input type="hidden" name="__VIEWSTATE" value="(.+?)" />!is';
  4. preg_match($pat1,$dane,$viewstate);
  5. $data['post']['__VIEWSTATE']=$viewstate[1];
  6. $data['post']['txtLogin']='xxxxxxxxx';
  7. $data['post']['txtPassword']='xxxxxxx';
  8. $data['post']['ButtonLogin']='Zaloguj się';
  9. $sajt="http://online.incom.pl/NBWeb/Login.aspx";
  10. return GetUrlOnline($sajt,$data);
  11. }
  12. function GetUrlOnline($url,$data=FALSE){
  13. $cookie_file_path='/path/tu/ciasto/ciasto';
  14. $c=curl_init();
  15. curl_setopt($c, CURLOPT_URL, $url);
  16. if (is_array($data['post'])){
  17. curl_setopt($c, CURLOPT_POST, 1);
  18. curl_setopt($c, CURLOPT_POSTFIELDS, createPostString($data['post']));
  19. }else {
  20. curl_setopt($c,CURLOPT_HTTPGET,1);
  21. }
  22. curl_setopt($c, CURLOPT_HEADER, 1);
  23. $ua= 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3';
  24. curl_setopt($c, CURLOPT_USERAGENT,$ua);
  25. // curl_setopt($c, CURLOPT_REFERER, $url);
  26. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  27. curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);
  28. curl_setopt($c, CURLOPT_COOKIEFILE, $cookie_file_path);
  29. curl_setopt($c, CURLOPT_COOKIEJAR, $cookie_file_path);
  30. $dejta=curl_exec($c);
  31. curl_close($c);
  32. return $dejta;
  33. }
  34. function createPostString($aPostFields) {
  35. foreach ($aPostFields as $key => $value) {
  36. $aPostFields[$key] = urlencode($key) . '=' . urlencode($value);
  37. }
  38. return implode('&', $aPostFields);
  39. }
  40. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Luke_Star
post
Post #2





Grupa: Zarejestrowani
Postów: 129
Pomógł: 2
Dołączył: 17.01.2005

Ostrzeżenie: (0%)
-----


z tym cistkiem wydaje sie jest cos nie tak, wyglada to troche tak jakby po zalogowaniu nie było juz czytane. Bo po zalogowaniu zdaje sie ze skrypt zostaje wykonany i tak trzyma w pamieci, a po odswiezeniu lub zienieniu adresu, strona nie potrafo odczytac cookies'a który ma w sobie sid'a, wiec zostajesz rozpoznany jako niezalogowany.

Ten post edytował Luke_Star 7.05.2007, 14:59:46


--------------------
Słowa, słowa, słowa... - Hamlet || Funkcje, funkcje, funkcje... - Luke Star
--------------------------------------
Portal Literacki: ( |||------- ) 30%
Go to the top of the page
+Quote Post
clp
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.04.2007

Ostrzeżenie: (0%)
-----


No ale co ciastko nie działa przy adresach z zmiennymi GET? Jakoś tak bez sensu.
Btw. łącząc sie linksem/firefox(bez js żeby nie było) da sie wszędzie wejść i wszystko działa
Go to the top of the page
+Quote Post
Luke_Star
post
Post #4





Grupa: Zarejestrowani
Postów: 129
Pomógł: 2
Dołączył: 17.01.2005

Ostrzeżenie: (0%)
-----


Bo chodzi chyba o to ze przegladarka jako0 taka potem wysyła zawartość swojego ciastka na komputerze lokalnym, a w tym wypadku kod tej hurtowni nie potrafi go zlokalizowac. Oczywiście moze byc inaczej, nie twierdze z etak jest. Poprostu tak mi sie wydaje, dobrze żeby tez inni zabrali głos bo ja sie guru nie czuje.

Ten post edytował Luke_Star 7.05.2007, 15:06:58


--------------------
Słowa, słowa, słowa... - Hamlet || Funkcje, funkcje, funkcje... - Luke Star
--------------------------------------
Portal Literacki: ( |||------- ) 30%
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 16:19