Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]wysłanie ciastka na inny serwer?
Forum PHP.pl > Forum > Przedszkole
kubek15
Witam
Jak mogę wysłac ciastko na www.strona.pl?
bo odczytałem że tam jest ciastko i pisze xx=kamil pitem na dole host www.strona.pl
ja robie tak
  1. $cookie2 = 'sessid=' . urlencode('wartość1') . '; sessid2=' . urlencode('wartość2');
  2. $c = curl_init('http://strona.pl');
  3. curl_setopt($c, CURLOPT_HEADER, 1);
  4. curl_setopt($c, CURLOPT_COOKIE, $cookie2);
  5. curl_exec($c);
  6. curl_close($c);


i mi to nie wysyła . Dlaczego?

Ogólnie to mam jakies logowanie curl juz działa elegancko sa 3 przekierowania i na pocżatku pobieram id sesji ale niewiem jak pobrac ciastka z 2 i 3 przekierowania.
kipero
A skąd pewność, ze nie wysyła?
kubek15
bo włączam ff i potem daje pokaż ciacha i jest tylko jedno a tego co przesyłam tym wyżej to nie ma.

mam taki kto który zastepuje mi follow location

  1. function curl_redirect_exec($ch, &$redirects, $curlopt_returntransfer = false, $curlopt_maxredirs = 4, $curlopt_header = false) {
  2. $cookie = dirname(__FILE__) .'/cookie';
  3. curl_setopt($ch, CURLOPT_HEADER, true);
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  5. curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie );
  6. curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie );
  7. curl_setopt($ch, CURLOPT_POST, 1);
  8. curl_setopt($ch, CURLOPT_POSTFIELDS, 'username=kubek&password=xxx&submitlogin=Zaloguj');
  9. $data = curl_exec($ch);
  10. $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  11. $exceeded_max_redirects = $curlopt_maxredirs > $redirects;
  12. $exist_more_redirects = false;
  13. if ($http_code == 301 || $http_code == 302) {
  14. if ($exceeded_max_redirects) {
  15. list($header) = explode("\r\n\r\n", $data, 2);
  16. $matches = array();
  17. preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches);
  18. $url = trim(array_pop($matches));
  19. $url_parsed = parse_url($url);
  20. if (isset($url_parsed)) {
  21. curl_setopt($ch, CURLOPT_URL, $url);
  22.  
  23. $redirects++;
  24. return curl_redirect_exec($ch, $redirects, $curlopt_returntransfer, $curlopt_maxredirs, $curlopt_header);
  25. }
  26. }
  27. else {
  28. $exist_more_redirects = true;
  29. }
  30. }
  31. if ($data !== false) {
  32. if (!$curlopt_header)
  33. list(,$data) = explode("\r\n\r\n", $data, 2);
  34. if ($exist_more_redirects) return false;
  35. if ($curlopt_returntransfer) {
  36. return $data;
  37. }
  38. else {
  39. echo $data;
  40.  
  41.  
  42. if (curl_errno($ch) === 0) return true;
  43. else return false;
  44. }
  45. }
  46. else {
  47. return false;
  48. }
  49. }


i zaloguje sie nim na stronę ale jak patrze w ciastka to wysle się tylko id sesji ale nazwa juz się nie wyśle.
Oglądałem to live http i patrzyłem co jest wysyłane.
I ogólnie sa 3 przekierowania
na pierwszym logowaniu dostaje id na drugim dostaje numer , a na trzecim dostaje (chyba nowe id sedji) i ten sam numer.

Jak to odplae w przedlądarce to wyśle sie tylko id sesji. Może cos źle dodałem bo robie to i robie juz kilka h i dalej nic
kipero
CURL nie może utworzyć ciasteczek w Twojej przeglądarce. On jest sam jakgdyby przeglądarką i tworzy ciasteczka do własnego użytku.
kubek15
a sądzisz że na www.boo.pl działało by followlocation ? bo niewiem czy tam jest safe_mode on. Bo bez followlocation chyba tego nie przejde.

Oglądałem co jest wysyłane Live HTTP i tak
jak wpisze link to się wykonuje i w ciastach jest do sesji to mi spisuje elegancko, ale po przejsciu w filelocation jest znowu ciastko a właściwie dwa w jedym to samo id sesji a w drugim numer i jak zrobić aby ciastka wysyłało z przekierowania a nie z tego pierwszego linku?

Ciastka zapisują mi si tak:
Kod
# Netscape HTTP Cookie File
# http://curlm.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.

haha.gif2.strona.pl    FALSE    /    FALSE    0    PHPSESSID    1bccacc0ffa0fe8a3123c5dd3f131640
haha.gif2.strona.pl    FALSE    /    FALSE    0    wunr    14312222


ale wysyła się tylko pierwsze czyli id sesji. dlaczego?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.