Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Curl a przesyłanie ciasteczek
Mayka
post
Post #1





Grupa: Zarejestrowani
Postów: 304
Pomógł: 1
Dołączył: 12.01.2009
Skąd: Kanapa

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


Mam takie pytanie czy da się jakoś zrobić żeby pobierane ciastko przez curl'a zostało pobrane i zapisane u użytkownika ?
Bo mam strone która coś tam wyswietla i wysyła ciastko, ale potrzebuje ją pobrać przez skrypt i wyświetlić z moim kodem w przeglądarce.. da sie jakoś ?
Generalnie chodzi mi o to żeby to było całkowicie przeźroczyste dla użytkownika..

Ten post edytował Mayka 13.12.2012, 15:07:07
Go to the top of the page
+Quote Post
!*!
post
Post #2





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


http://php.pl/Wortal/Artykuly/PHP/Bibliote...ol-HTTP/Ciastka
Cytat
Generalnie chodzi mi o to żeby to było całkowicie przeźroczyste dla użytkownika..

Co to znaczy?


Ten post edytował !*! 13.12.2012, 14:32:36
Go to the top of the page
+Quote Post
Mayka
post
Post #3





Grupa: Zarejestrowani
Postów: 304
Pomógł: 1
Dołączył: 12.01.2009
Skąd: Kanapa

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


No dobra mam funkcje zapisującą do pliku :

curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookies.txt');

i funkcje wysyłającą do użytkownika dalej ciastko

curl_setopt($ch, CURLOPT_COOKIE, $cookie)

a jak zrobić zeby w $cookie znalazło się to co zostało przesłane ? Nie da się tego jakoś jednym czy dwoma zapytaniami ?
Bo teraz musze zapisać do pliku i zrobić odczyt z pliku i wygenerować takie samo ciastko jak jest na stronie z której pobieram tak ?

@ !*! Chodzi mi o to żeby user oglądajacy strone A nie wiedział ze treść jest pobrana ze strony B, bo tak w tej chwili jest tylko brakuje mi tych ciastek...

Ten post edytował Mayka 13.12.2012, 14:39:46
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #4





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Nic nie rozumiem.
Go to the top of the page
+Quote Post
!*!
post
Post #5





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Mayka - ogarnij się chłopie, bo to już któryś chaotyczny post z Twojej strony. Przejrzałeś plik cookies.txt? Operuj na nim.
Go to the top of the page
+Quote Post
Mayka
post
Post #6





Grupa: Zarejestrowani
Postów: 304
Pomógł: 1
Dołączył: 12.01.2009
Skąd: Kanapa

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


Ojejku..
Mam strone A która generuje sobie jakiś kod i wysyła ciastko.
I napisałem sobie strone B która pobiera to co generuje ta pierwsza i dodaje swój kod do niej przerabia co nieco i wyświetla użytkownikowi.
Tylko teraz mam problem jak przesłać ciastko ze strony A do użytkownika przez strone B

Może teraz bardziej obrazowo (IMG:style_emoticons/default/tongue.gif)

Cytat(!*! @ 13.12.2012, 14:44:05 ) *
Mayka - ogarnij się chłopie, bo to już któryś chaotyczny post z Twojej strony. Przejrzałeś plik cookies.txt? Operuj na nim.


Hahaha dobra już sie ogarniam (IMG:style_emoticons/default/tongue.gif)
No mam plik cookie.txt ale interesuje mnie czy nie można tego zrobić bez tego pliku ?
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #7





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Niestety, nadał tylko szum i trzask.
Go to the top of the page
+Quote Post
Mayka
post
Post #8





Grupa: Zarejestrowani
Postów: 304
Pomógł: 1
Dołączył: 12.01.2009
Skąd: Kanapa

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


Cytat(wNogachSpisz @ 13.12.2012, 14:48:13 ) *
Niestety, nadał tylko szum i trzask.


ehh..
To poprostu czy da się pobrać ciastko za pomocą curla i wysłać je do przeglądarki bez pliku ?
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #9





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Co to znaczy "bez pliku"?

Może chodziło Ci o "plik bezu".
To nie jest forum ogrodnicze.

Ten post edytował wNogachSpisz 13.12.2012, 14:56:23
Go to the top of the page
+Quote Post
Mayka
post
Post #10





Grupa: Zarejestrowani
Postów: 304
Pomógł: 1
Dołączył: 12.01.2009
Skąd: Kanapa

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


Cytat(wNogachSpisz @ 13.12.2012, 14:54:11 ) *
Co to znaczy "bez pliku"?

Może chodziło Ci o "plik bezu".
To nie jest forum ogrodnicze.


Jak co to znaczy ? Nie rozumiesz dwóch prostych wyrazów ? Nie wykożystując do tego pliku cookie.txt jeśli nic ciekawego nie masz do powiedzenia to po co piszesz ? I nie chodziło mi o forum ogrodnicze..
skoro jest funkcja do zapisu do pliku CURLOPT_COOKIEFILE i CURLOPT_COOKIEJAR to pytam czy jest możliwość zrobienia tego jakąś inna funkcją
która pobiera i wysyła, nie wykożystując przy tym pliku.
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #11





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Teraz już wiadomo co masz na myśli pisząc "bez pliku".
Wcześniej nie było.

Ja używam PEAR::HTTP_Request2, który korzysta z CURLa tyle że za pośrednictwem abstrakcyjnej klasy "adapter".

  1. $request = new HTTP_Request2;
  2. $request->setMethod( HTTP_Request2::METHOD_GET );
  3.  
  4. // pierwsze połączenie
  5. $request->setUrl( 'http://example.com' );
  6. $response = $request->send();
  7. retain_cookies( $request, $response ); // zachowujemy cookie
  8.  
  9. // drugie połączenie
  10. $request->setUrl( 'http://example.com/path' );
  11. $response = $request->send();
  12. retain_cookies( $request, $response ); // zachowujemy cookie
  13.  
  14. // trzecie połączenie...
  15.  
  16. function retain_cookies( HTTP_Request2 $request, HTTP_Request2_Response $response ) {
  17.  
  18. $response_cookies = $response->getCookies();
  19.  
  20. foreach ( $response_cookies as $cookie ) {
  21. $request->addCookie( $cookie['name'], $cookie['value'] );
  22. }
  23. }

http://pear.php.net/package/HTTP_Request2/redirected

P.S.
To nie moja wina że nie potrafisz się wysłowić.

Ten post edytował wNogachSpisz 13.12.2012, 15:36:21
Go to the top of the page
+Quote Post
Mayka
post
Post #12





Grupa: Zarejestrowani
Postów: 304
Pomógł: 1
Dołączył: 12.01.2009
Skąd: Kanapa

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


No i widzisz można było (IMG:style_emoticons/default/smile.gif) Dzieki śliczne, tylko teraz jeśli za pomocą zewnętrznej biblioteki się da to nieda się za pomocą samego curla ?

Bo rozważałem to rozwiązanie z plikiem, tylko co w w momencie gdy 2 osoby otworzą strone jednocześnie ? Blokujemy plik na czas odczytu i do drugiego nie wysyłamy w ogóle ?
może ktoś ma koncepcje jak nie ładować do wysyłania ciastka całej biblioteki którą dał wNogachSpisz ?
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #13





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Dlaczego po prostu nie użyjesz HTTP_Request? Jakiś konkretny powód czy prymitywny strach przed nieznanym?
Go to the top of the page
+Quote Post
Mayka
post
Post #14





Grupa: Zarejestrowani
Postów: 304
Pomógł: 1
Dołączył: 12.01.2009
Skąd: Kanapa

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


Cytat(wNogachSpisz @ 14.12.2012, 11:08:36 ) *
Dlaczego po prostu nie użyjesz HTTP_Request? Jakiś konkretny powód czy prymitywny strach przed nieznanym?


Tak jak mowisz, prymitywny strach przed nieznanym (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
Kofel
post
Post #15





Grupa: Zarejestrowani
Postów: 99
Pomógł: 22
Dołączył: 14.12.2007
Skąd: Wyszków

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


To może już nie zagłębiając się w porady Pana Mądrego (który nota bene nie potrafi zrozumieć paru prostych zdań), mam tu dla Ciebie małą ciekawostkę:

  1. $ch = curl_init('http://php.pl/');
  2. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  3. curl_setopt($ch, CURLOPT_HEADER, 1);
  4.  
  5. $m = null;
  6. preg_match('/^Set-Cookie: (.*?);/m', curl_exec($ch), $m);
  7.  
  8. var_dump( $m[1] );

Go to the top of the page
+Quote Post
Mayka
post
Post #16





Grupa: Zarejestrowani
Postów: 304
Pomógł: 1
Dołączył: 12.01.2009
Skąd: Kanapa

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


Cytat(Kofel @ 14.12.2012, 15:12:46 ) *
To może już nie zagłębiając się w porady Pana Mądrego (który nota bene nie potrafi zrozumieć paru prostych zdań), mam tu dla Ciebie małą ciekawostkę:

  1. $ch = curl_init('http://php.pl/');
  2. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  3. curl_setopt($ch, CURLOPT_HEADER, 1);
  4.  
  5. $m = null;
  6. preg_match('/^Set-Cookie: (.*?);/m', curl_exec($ch), $m);
  7.  
  8. var_dump( $m[1] );


Oo jest i ciastko (IMG:style_emoticons/default/wink.gif) No czyli jednak da się (IMG:style_emoticons/default/wink.gif) czyli można je teraz w headerze do strony wynikowej wysłać ?
Go to the top of the page
+Quote Post
Kofel
post
Post #17





Grupa: Zarejestrowani
Postów: 99
Pomógł: 22
Dołączył: 14.12.2007
Skąd: Wyszków

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


Możesz (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #18





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Gratulacje, kolejna proteza która pewnego razu nie zadziała
i cały dzień zajmie szukanie źródła problemu...
Dobrze że to nie mój problem. Dobrze że nikt z Was dla mnie nie pracuje (IMG:style_emoticons/default/smile.gif)

Wiadomośc dla potomnych:
Przedstawione wyżej rozwiązanie jest nieprawidłowe, nie zadziała nigdy albo spiepszy się któregoś dnia bez ostrzeżenia. Proponuję HTTP_Request2 gdzie odpowiednia logika dba o utrzymanie ciastek w szyku.

Ten post edytował wNogachSpisz 14.12.2012, 22:01:53
Go to the top of the page
+Quote Post
Kofel
post
Post #19





Grupa: Zarejestrowani
Postów: 99
Pomógł: 22
Dołączył: 14.12.2007
Skąd: Wyszków

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


Kurde, kolego. Argumenty.
"która pewnego razu nie zadziała"
Tzn. kiedy?
Go to the top of the page
+Quote Post
pyro
post
Post #20





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Cytat(wNogachSpisz @ 14.12.2012, 18:11:30 ) *
Gratulacje, kolejna proteza która pewnego razu nie zadziała
i cały dzień zajmie szukanie źródła problemu...
Dobrze że to nie mój problem. Dobrze że nikt z Was dla mnie nie pracuje (IMG:style_emoticons/default/smile.gif)

Wiadomośc dla potomnych:
Przedstawione wyżej rozwiązanie jest nieprawidłowe, nie zadziała nigdy albo spiepszy się któregoś dnia bez ostrzeżenia. Proponuję HTTP_Request2 gdzie odpowiednia logika dba o utrzymanie ciastek w szyku.


Zadziała zawsze. Chyba, że serwer nie wyśle żadnych nagłówków, ale wtedy nic takiego serwera nie obsłuży.

Też bym nie chciał, żebyś dla mnie pracował, skoro nie potrafisz zrozumieć 2 prostych zdań, nie znasz się, a drążysz dalej bez sensu i do tego nie znasz podstaw gramatyki ("spieprzy", a nie "spiepszy").
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.12.2025 - 20:22