Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Skrypt nie działa - curl?
Forum PHP.pl > Forum > Przedszkole
Manderigon
Witam.
Mam skrypt, który normalnie śmiga mi na localhoscie. Ma on za zadanie za pomocą curla zalogowac sie na stronę, pobrać przez wyrażenia regularne odpowiednie kawałki kodu, a następnie je wyświetlić. Kiedy wrzucam skrypt na hosting, który ma włączona obsługę curl i wyłączone safe mode, funkcja preg_match nagle przestaje działać. Łączy się curlem, ale nie wyświetla już danych, które ma wyciąć. (curl_exec ze źródłem strony pokazuje) Co może być przyczyną tego, że preg_match nagle przestaje funkcjonować? Ciekawostka - mimo ustawionych uprawnień 777, skrypt nie chce utworzyć mi pliku cookies.txt, a jak go sam utworze to nie chce nic w nim zapisać.
Pozdrawiam.

@ref

@ref
wtf
w 10 linijce masz blad nie zdefiniowales zmiennej.

pokaz kod
Manderigon
  1. <html><head><meta http-equiv=content-type content="text/html; charset=utf-8"></head></html>
  2. <?php
  3.  
  4.  
  5. $url = "https://m.dziennik.librus.pl/module/Common/action/Login";
  6. $ua = "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0";
  7. $ch = curl_init($url);
  8. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  9. curl_setopt ($ch, CURLOPT_USERAGENT, $ua);
  10. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  11. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
  12. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  13. curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookies.txt');
  14. curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookies.txt');
  15. curl_setopt($ch, CURLOPT_HEADER, 0);
  16. curl_setopt($ch, CURLOPT_POST, true);
  17. $login = 'login';
  18. $passwd = 'haslo';
  19. $data = "login=".$login."&passwd=".$passwd."&loginButton=1";
  20. curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  21. $output = curl_exec($ch);
  22.  
  23. curl_close($ch);
  24.  
  25. echo $output;
  26.  
  27. ?>



Na localhoscie smiga jak marzenie, na darmowych hostingach - nie. :/
Po wpisaniu poprawnych danych pokazuje białą stronę, tak jakby curl nie działał. hostingi mają włączonego curla, a safe_mode jest wylączony.
jackraymund
Włącz debugowanie kodu, błędu nie wyświetla
na safe_mode off nie można mieć followlocation
  1. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);

na darmowych hostingach żadko jest curl smile.gif sprawdz czy istnieje taka funkcja
Manderigon
No niestety dalej to samo.
jackraymund
  1. if(!function_exists("curl_init")) echo "brak curla";

Uruchom gdzieś na początku kodu, jezeli sie to wyswietli, no to wiadomo, zmień serwer.
Manderigon
No curl_init działa, więc powinno wszystko być ok. o.o
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.