Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] cURL
Forum PHP.pl > Forum > Przedszkole
narki1
Próbuję przebrnąć przez cURL ale jakoś nie mogę zakumać o co chodzi.
Potrzebuję wysłać formularz w dwa miejsca.
Zacząłem od małego testu i stworzyłem dwa pliki:
send.php
  1. <?php
  2. $hand = curl_init();
  3. curl_setopt($hand, CURLOPT_URL, "http://www.strona.pl/test.php");
  4. curl_setopt($hand, CURLOPT_POST, 1);
  5. curl_setopt($hand, CURLOPT_POSTFIELDS, "id=14237");
  6. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  7. curl_exec($hand);
  8. curl_close($hand);
  9. ?>


oraz test.php
  1. <?php
  2. session_register('zmienna');
  3. if(!isset($_POST['id'])) {
  4. echo 'nie istnieje zmienna';}
  5. else {
  6. $_SESSION['zmienna']=$_POST['id'];
  7. echo 'mamy'.$_SESSION['zmienna'];
  8. }
  9. ?>

Wywołuję najpierw send.php a potem test.php no i zmienna się nie przesyła.
Nie rozumiem tego albo coś źle robię.
wookieb
Kod
curl_setopt($hand, CURLOPT_RETURNTRANSFER, 1);


Nie otrzymasz wyniku poniewa sesja ustawia ciasteczka dla sesji curla a nie dla twojej przegladarki.
http://php.net/curl_setopt i przeczytaj o COOKIEJAR i podobnych. Poza tym na forum było troche o botach logujacych.
A to czy zmienna sie przesyła sprawdz tak
Kod
echo curl_exec($hand);
narki1
Odgrzewam temat ponieważ nadal z tym walczę.
Tym razem wszystko jest ok dla stron http://
Natomiast strony https:// otrzymuję pustą stronę.
Czy może serwer nie obsługiwać curl'a dla https:// czy trzeba ustawić jakieś dodatkowe opcje ?
erix
Musisz mieć skompilowany cURL z obsługą HTTPS. Sprawdź w phpinfo" title="Zobacz w manualu PHP" target="_manual.
narki1
php_info zablokowane.
Próbowałem curl_version();
I otrzymuję
Array (
[version_number] => 462852
[age] => 3
[features] => 541
[ssl_version_number] => 0
[version] => 7.16.4
[host] => i486-pc-linux-gnu
[ssl_version] => OpenSSL/0.9.8f
[libz_version] => 1.2.3
[protocols] => Array (
[0] => tftp
[1] => ftp
[2] => telnet
[3] => dict
[4] => http
[5] => file
[6] => https
[7] => ftps ) )
Czyli niby wszystko jest
erix
Cytat
php_info zablokowane.

blink.gif Zmień hosting, wstyd żeby phpinfo" title="Zobacz w manualu PHP" target="_manual było zablokowane.

A raportowanie błędów?
narki1
Raportowanie błędów działa ale żadnego błędu nie ma.
Hosting to interia.pl

A dodam ,że jak zmienię https na http to wtedy mam:
Found

The document has moved here.

Problem rozwiązałem i dodam może się komuś przyda:
  1. <?php
  2. $parameters = "id=" . $id . "&session_id=" . $_ses_id;
  3. $server='www.stonajakas';
  4. $cookie = dirname(__FILE__) .'/cookies.txt';
  5. $ch = curl_init();
  6. curl_setopt($ch, CURLOPT_URL, "https://" . $server );
  7. curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
  8. curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
  9. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  10. curl_setopt($ch, CURLOPT_HEADER, 0);
  11. curl_setopt($ch, CURLOPT_TIMEOUT, 20);
  12. curl_setopt($ch, CURLOPT_POST, 1);
  13. curl_setopt($ch, CURLOPT_POSTFIELDS, $parameters);
  14. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  15. $res = curl_exec($ch);
  16. curl_close($ch);
  17. ?>

Linia 8 i 9 była kluczowa. Dodam jeszcze ,że rozwiązanie to hula na platnosci.pl.
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.