Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] cURL wykonywanie skryptu
thede
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 28.04.2009

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


Witam.

Mój problem polega na tym, że chcę wywołać skrypt na innej stronie.

Próbuję przez cURL:

  1. <?php
  2. $curl = curl_init();
  3. curl_setopt($curl, CURLOPT_URL, $site);
  4. curl_setopt($curl, CURLOPT_REFERER, $site);
  5. curl_setopt($curl, CURLOPT_HEADER, true);
  6. @curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
  7. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  8. curl_setopt($curl, CURLOPT_USERAGENT, UA);
  9. $strona = curl_exec($curl);
  10. curl_close($curl);
  11. ?>


i treść strony, która byłaby widoczna w przeglądarce jest wczytywana do zmiennej strona,
ale np. wywoływany na stronie skrypt nie tworzy ciasteczka z identyfikatorem sesji i nie tworzy wpisu do bazy (a przy wywoływaniu przez przeglądarkę wszystko jest w porządku).

Chodzi mi o to, żeby wszystko na wywoływanej stronie wykonało się tak, jakbym wszedł na nią przez przeglądarkę.

Oczywiście mogę otworzyć ją w ukrytym iframe i wtedy wszystko gra, ale znowu treść musi się załadować a to przecież trwa...

Jeśli ktoś byłby w stanie mi pomóc byłbym bardzo wdzięczny (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)
Go to the top of the page
+Quote Post
bim2
post
Post #2





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Hmm, nie ma możliwości, że nie dodaje nic do bazy. Sesji nie stworzy bo nie wskazałeś miejsca gdzie mają leżec ciasteczka od curla (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) (google -> curl cookies php). Może jakiś zmiennych nie wysyłasz?
Go to the top of the page
+Quote Post
thede
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 28.04.2009

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


Sorry, rzeczywiście w bazie zapisuje, ale ciasteczka nie tworzy, mimo że dopisałem:

  1. <?php
  2. curl_setopt($curl, CURLOPT_COOKIEFILE, 'cookiefile');
  3. curl_setopt($curl, CURLOPT_COOKIEJAR, 'cookiefile');
  4. ?>
Go to the top of the page
+Quote Post
MiChaSSs
post
Post #4





Grupa: Zarejestrowani
Postów: 65
Pomógł: 4
Dołączył: 6.09.2007

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


u mnie dziala cos takiego:

  1. <?php
  2. curl_setopt($handle, CURLOPT_COOKIEFILE, 'Skrypty/cookies.txt');
  3. curl_setopt($handle, CURLOPT_COOKIEJAR, 'Skrypty/cookies.txt');
  4. ?>


sprobuj podac pelna nazwe sciezki, oczywiscie musisz miec tam odpowiednie prawa do zapisu/odczytu

Ten post edytował MiChaSSs 26.05.2009, 18:59:53
Go to the top of the page
+Quote Post
thede
post
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 28.04.2009

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


Teraz stworzyłem sobie dwa pliki.
Pierwszy:
  1. <?php
  2. $curl = curl_init();
  3. curl_setopt($curl, CURLOPT_URL, $site);
  4. curl_setopt($curl, CURLOPT_REFERER, $site);
  5. curl_setopt($curl, CURLOPT_HEADER, true);
  6. @curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
  7. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  8. curl_setopt($curl, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookiefile');
  9. curl_setopt($curl, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookiefile');
  10. $strona = curl_exec($curl);
  11. curl_close($curl);
  12. echo nl2br($strona);
  13. ?>

Drugi:
  1. <?php
  2. ?>

gdzie w $site jest adres drugiego.
I teraz po wywołaniu drugiego pliku oczywiście tworzy się ciasteczko z PHPSESSID.
Natomiast przy wywołaniu pierwszego nie tworzy się żadne cookie.
Dlaczego??
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Bo ciasteczko sesyjne ma domyślnie długość sesji przeglądarki? Tzn. po jej zamknięciu jest kasowane. Tak samo z cURL, to jakby wystąpienie przeglądarki, które jest zamykane w ramach działania jednego skryptu. IMHO musiałbyś przechwycić ciastko i zmienić długość jego przydatności do spożycia. ;]
Go to the top of the page
+Quote Post
MiChaSSs
post
Post #7





Grupa: Zarejestrowani
Postów: 65
Pomógł: 4
Dołączył: 6.09.2007

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


sprobuj z czyms takim (u mnie na kompie funkcja ktora z tego korzysta dziala bez problemow):

  1. <?php
  2.    $timeout = 3;
  3.    $handle = curl_init($url);
  4.    $headers = array('User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008110416 Gentoo Firefox/3.0.3r\n',
  5.                     'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8r\n',
  6.                     'Accept-Language: en-us,en;q=0.5r\n',
  7.                     'Accept-Encoding: gzip,deflater\n',
  8.                     'Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7r\n',
  9.                     'Keep-Alive: 300r\n',
  10.                     'Connection: keep-aliver\n');
  11.  
  12.    curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, $timeout);
  13.    curl_setopt($handle, CURLOPT_TIMEOUT, $timeout);
  14.    curl_setopt($handle, CURLOPT_FRESH_CONNECT, true);
  15.    curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
  16.    curl_setopt($handle, CURLOPT_HEADER, false);
  17.    curl_setopt($handle, CURLOPT_ENCODING, 'gzip');
  18.    curl_setopt($handle, CURLOPT_ENCODING, 'deflate');
  19.    curl_setopt($handle, CURLOPT_COOKIEFILE, 'Skrypty/cookies.txt');
  20.    curl_setopt($handle, CURLOPT_COOKIEJAR, 'Skrypty/cookies.txt');
  21.    curl_setopt($handle, CURLOPT_FOLLOWLOCATION, true); // follow redirection
  22.  
  23. /*                               do metody GET
  24.  
  25.     curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
  26.     curl_setopt($handle, CURLOPT_HTTPGET, true);
  27. */
  28.  
  29. /*                               do metody POST
  30.  
  31.         curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
  32.         curl_setopt($handle, CURLOPT_POST, true);
  33.         curl_setopt($handle, CURLOPT_POSTFIELDS, $post_msg);
  34. */
  35.  
  36.    $output = curl_exec($handle);
  37. ?>


Ten post edytował MiChaSSs 27.05.2009, 21:49:11
Go to the top of the page
+Quote Post
thede
post
Post #8





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 28.04.2009

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


już wszystko działa.
thx wszystkim
Go to the top of the page
+Quote Post
MiChaSSs
post
Post #9





Grupa: Zarejestrowani
Postów: 65
Pomógł: 4
Dołączył: 6.09.2007

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


napisz chociaz co bylo nie tak i jak to rozwiazales (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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: 15.09.2025 - 06:51