Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> 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
 
Start new topic
Odpowiedzi
wNogachSpisz
post
Post #2





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

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


Bo parsowanie nagłówków powinno wyglądać tak:

  1. public function parseHeaderLine($headerLine)
  2. {
  3. $headerLine = trim($headerLine, "\r\n");
  4.  
  5. if ('' == $headerLine) {
  6. // empty string signals the end of headers, process the received ones
  7. if (!empty($this->headers['set-cookie'])) {
  8. $cookies = is_array($this->headers['set-cookie'])?
  9. $this->headers['set-cookie']:
  10. array($this->headers['set-cookie']);
  11. foreach ($cookies as $cookieString) {
  12. $this->parseCookie($cookieString);
  13. }
  14. unset($this->headers['set-cookie']);
  15. }
  16. foreach (array_keys($this->headers) as $k) {
  17. if (is_array($this->headers[$k])) {
  18. $this->headers[$k] = implode(', ', $this->headers[$k]);
  19. }
  20. }
  21.  
  22. } elseif (preg_match('!^([^\x00-\x1f\x7f-\xff()<>@,;:\\\\"/\[\]?={}\s]+):(.+)$!', $headerLine, $m)) {
  23. // string of the form header-name: header value
  24. $name = strtolower($m[1]);
  25. $value = trim($m[2]);
  26. if (empty($this->headers[$name])) {
  27. $this->headers[$name] = $value;
  28. } else {
  29. if (!is_array($this->headers[$name])) {
  30. $this->headers[$name] = array($this->headers[$name]);
  31. }
  32. $this->headers[$name][] = $value;
  33. }
  34. $this->lastHeader = $name;
  35.  
  36. } elseif (preg_match('!^\s+(.+)$!', $headerLine, $m) && $this->lastHeader) {
  37. // continuation of a previous header
  38. if (!is_array($this->headers[$this->lastHeader])) {
  39. $this->headers[$this->lastHeader] .= ' ' . trim($m[1]);
  40. } else {
  41. $key = count($this->headers[$this->lastHeader]) - 1;
  42. $this->headers[$this->lastHeader][$key] .= ' ' . trim($m[1]);
  43. }
  44. }
  45. }


nastomiast parsowanie cookie tak:
  1. protected function parseCookie($cookieString)
  2. {
  3. $cookie = array(
  4. 'expires' => null,
  5. 'domain' => null,
  6. 'path' => null,
  7. 'secure' => false
  8. );
  9.  
  10. if (!strpos($cookieString, ';')) {
  11. // Only a name=value pair
  12. $pos = strpos($cookieString, '=');
  13. $cookie['name'] = trim(substr($cookieString, 0, $pos));
  14. $cookie['value'] = trim(substr($cookieString, $pos + 1));
  15.  
  16. } else {
  17. // Some optional parameters are supplied
  18. $elements = explode(';', $cookieString);
  19. $pos = strpos($elements[0], '=');
  20. $cookie['name'] = trim(substr($elements[0], 0, $pos));
  21. $cookie['value'] = trim(substr($elements[0], $pos + 1));
  22.  
  23. for ($i = 1; $i < count($elements); $i++) {
  24. if (false === strpos($elements[$i], '=')) {
  25. $elName = trim($elements[$i]);
  26. $elValue = null;
  27. } else {
  28. list ($elName, $elValue) = array_map('trim', explode('=', $elements[$i]));
  29. }
  30. $elName = strtolower($elName);
  31. if ('secure' == $elName) {
  32. $cookie['secure'] = true;
  33. } elseif ('expires' == $elName) {
  34. $cookie['expires'] = str_replace('"', '', $elValue);
  35. } elseif ('path' == $elName || 'domain' == $elName) {
  36. $cookie[$elName] = urldecode($elValue);
  37. } else {
  38. $cookie[$elName] = $elValue;
  39. }
  40. }
  41. }
  42. $this->cookies[] = $cookie;
  43. }


Ten kod - w odróżnieniu od tego co podano wyżej - zadziała zawsze.
Jeśli ktoś ma wolne pół dnia na analizowanie linia po linii, co się w tym kodzie dzieje, to śmiało.
Ja mam ciekawsze zajęcia (na przykład tworzenie softu który dla odmiany DZIAŁA!).

Ten post edytował wNogachSpisz 15.12.2012, 13:03:34
Go to the top of the page
+Quote Post

Posty w temacie
- Mayka   Curl a przesyłanie ciasteczek   13.12.2012, 14:26:00
- - !*!   http://php.pl/Wortal/Artykuly/PHP/Bibliote...ol-HT...   13.12.2012, 14:32:00
- - Mayka   No dobra mam funkcje zapisującą do pliku : curl_s...   13.12.2012, 14:38:25
- - wNogachSpisz   Nic nie rozumiem.   13.12.2012, 14:41:24
- - !*!   Mayka - ogarnij się chłopie, bo to już któryś chao...   13.12.2012, 14:44:05
- - Mayka   Ojejku.. Mam strone A która generuje sobie jakiś ...   13.12.2012, 14:47:37
- - wNogachSpisz   Niestety, nadał tylko szum i trzask.   13.12.2012, 14:48:13
|- - Mayka   Cytat(wNogachSpisz @ 13.12.2012, 14:48...   13.12.2012, 14:49:37
- - wNogachSpisz   Co to znaczy "bez pliku"? Może chodziło...   13.12.2012, 14:54:11
|- - Mayka   Cytat(wNogachSpisz @ 13.12.2012, 14:54...   13.12.2012, 15:05:59
- - wNogachSpisz   Teraz już wiadomo co masz na myśli pisząc "be...   13.12.2012, 15:18:02
- - Mayka   No i widzisz można było Dzieki śliczne, tylko ter...   14.12.2012, 08:37:53
- - wNogachSpisz   Dlaczego po prostu nie użyjesz HTTP_Request? Jakiś...   14.12.2012, 11:08:36
|- - Mayka   Cytat(wNogachSpisz @ 14.12.2012, 11:08...   14.12.2012, 14:12:44
- - Kofel   To może już nie zagłębiając się w porady Pana Mądr...   14.12.2012, 15:12:46
|- - Mayka   Cytat(Kofel @ 14.12.2012, 15:12:46 ) ...   14.12.2012, 15:58:37
- - Kofel   Możesz   14.12.2012, 16:12:55
- - wNogachSpisz   Gratulacje, kolejna proteza która pewnego razu nie...   14.12.2012, 18:11:30
|- - pyro   Cytat(wNogachSpisz @ 14.12.2012, 18:11...   15.12.2012, 10:17:42
- - Kofel   Kurde, kolego. Argumenty. "która pewnego razu...   15.12.2012, 00:05:32
- - wNogachSpisz   Bo parsowanie nagłówków powinno wyglądać tak: [PH...   15.12.2012, 12:58:43
- - Kofel   Tak, z tym że Ty podałeś kod KTÓRY już nam przepar...   15.12.2012, 14:05:57
|- - pyro   Cytat(Kofel @ 15.12.2012, 14:05:57 ) ...   15.12.2012, 14:13:31
- - wNogachSpisz   Cytat(pyro @ 15.12.2012, 14:13:31 ) U...   15.12.2012, 15:12:17
- - Kofel   Wcale nie jest odpowiedzią. Czekam na przykłady ki...   15.12.2012, 15:16:51
- - wNogachSpisz   Cytat(Kofel @ 15.12.2012, 15:16:51 ) ...   15.12.2012, 15:23:58
- - Kofel   Jaki znasz jeszcze inny dozwolony sposób przesłani...   15.12.2012, 15:30:46
- - wNogachSpisz   To wynika z kodu który wrzuciłem wyżej   15.12.2012, 15:37:04
- - Kofel   Fakt, może być ich więcej niż jeden. Coś więcej?   15.12.2012, 15:48:33
- - wNogachSpisz   Cytat(Kofel @ 15.12.2012, 15:48:33 ) ...   15.12.2012, 16:03:03
- - Mayka   Cytat(Kofel @ 15.12.2012, 14:05:57 ) ...   17.12.2012, 09:39:48
- - Kofel   Zamiast używać setcookie, ten string "Set-Coo...   17.12.2012, 13:09:23
- - Mayka   Własnie zastanawiałem się czy tak można, dzieki Ko...   17.12.2012, 21:06:19


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: 27.12.2025 - 18:47