Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]PHP cURL problem
Forum PHP.pl > Forum > Przedszkole
MrJelly
witam serdecznie czy jest ktos w stanie pomoc mi z tym kodem bo juz trace sily nie wiem co jest nie tak

  1. <?php
  2. class download{
  3. const URL_MAX_LENGHT = 2050;
  4. protected function cleanurl($url) {
  5. if (isset($url)) {
  6. if (!empty($url)) {
  7. if (strlen($url) < self:: URL_MAX_LENGHT){
  8. return strip_tag($url);
  9. }
  10. }
  11. }
  12. }
  13.  
  14. protected function isurl($url){
  15. $url = $this ->cleanurl($url);
  16. if (isset($url)) {
  17. if (filter_var($url,FILTER_VALIDATE_URL)) {
  18. return $url;
  19. }
  20. }
  21. }
  22.  
  23. protected function returnextention($url) {
  24. if ($this ->isurl($url)) {
  25. $end = end(preg_split("/[.]+/",$url));
  26. if (isset($end)){
  27. return $end;
  28. }
  29. }
  30. }
  31.  
  32.  
  33. public function downloadfile($url) {
  34. if ($this ->isurl($url)) {
  35. $extension = $this ->returnextension($url);
  36. if ($extension){
  37. $ch = curl_init();
  38. curl_setopt($ch,CURLOPT_URL,$url);
  39. curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
  40. $return = curl_exec($ch);
  41. curl_close($ch);
  42. $destinadion = "downloads/file.$extension";
  43. $file = fopen($destination,"w+");
  44. fputs($file,$return);
  45. if (fclose($file)) {
  46. echo"file downloaded";
  47. }
  48. }
  49. }
  50. }
  51.  
  52.  
  53. }
  54.  
  55. $obj = new download();
  56. if (isset($_POST['url'])) {$url = $_POST['url']; }
  57. ?>
  58. <form action="http://192.168.1.109/curl/index.php" method="post">
  59. <input type="text" name="url" maxlenght="2000"/>
  60. <input type="submit" value="download"/>
  61. </form>
  62. <?php if (isset($url)) { $obj ->downloadfile($url); } ?>
Octobus
No a co się dzieje ? Spróbuj ustalić w którym miejscu się zatrzymuje skrypt.
MrJelly
wlasnie o to chodzi ze nic , po wcisnieciu download powinno pobierac a tu nic
Geniesis
Raportowanie błędów masz na pewno włączone?
  1. ini_set("display_errors", 1);

Zmienna jest poprawnie pobierana?
Bez znalezienia miejsca w którym skrypt zatrzymuje się ciężko cokolwiek stwierdzić.
MrJelly
Fatal error: Call to undefined function strip_tag() in /volume1/web/curl/index.php on line 8
kapslokk
No to chyba wszystko jasne? strip_tags()
KsaR
Cytat(MrJelly @ 8.09.2015, 15:55:47 ) *
Fatal error: Call to undefined function strip_tag() in /volume1/web/curl/index.php on line 8

Bo nie ma takiej funkcji.

strip_tags(); jest.

Poza tym nie rób tyle zagnieżdzeń if. lepiej
zamiast if(){if(){if(){ zrobic zwyczajnie if(xxx && yy && zz){}
Czyli zamiast:
  1. if (isset($url)) {
  2. if (!empty($url)) {
  3. if (strlen($url) < self:: URL_MAX_LENGHT){
  4. return strip_tag($url);
  5. }
  6. }
  7. }


Zrób:
  1. if (isset($url[0]) && !isset($url[self:: URL_MAX_LENGHT]))
  2. {
  3. return strip_tags($url);
  4. }

Powinno dzialac identycznie.
MrJelly
Fatal error: Call to undefined method download::returnextension() in /volume1/web/curl/index.php on line 35
Geniesis
Nie masz zadeklarowanej metody 'returnextension', musisz ją stworzyć albo zmienić nazwę (istnieje 'returnextention')
MrJelly
dzieki wielkie wszystkim za pomoc,jeszcze duzo nauki przede mna,tak wiec bld po bledzie wyskakuje teraz mam

Strict Standards: Only variables should be passed by reference in /volume1/web/curl/index.php on line 22 Notice: Undefined variable: destination in /volume1/web/curl/index.php on line 40 Warning: fopen(): Filename cannot be empty in /volume1/web/curl/index.php on line 40 Warning: fputs() expects parameter 1 to be resource, boolean given in /volume1/web/curl/index.php on line 41 Warning: fclose() expects parameter 1 to be resource, boolean given in /volume1/web/curl/index.php on line 42
kapslokk
Mistrzu, wybacz ale skoro bierzesz się za programowanie to musisz liczyć się z tym, że będą Ci wyskakiwały błędy. Zamiast pisać na forum po kolei każdy z nich spróbuj rozwiązać ten problem sam (z użyciem translatora czy googli).

Strict Standards: Only variables should be passed by reference in /volume1/web/curl/index.php on line 22
google translate: Surowych norm: Tylko zmienne powinny być przekazywane przez referencję w /volume1/web/curl/index.php on line 22
Chyba wszystko jasne?

Itd itd. Można się domyślić o co chodzi smile.gif
MrJelly
no wlasnie nie moge sam tego ogarnac dlatego pisze
kapslokk
Strict Standards: Only variables should be passed by reference in /volume1/web/curl/index.php on line 22
Przekazujesz przez referencje (&) coś co nie jest zmienną.

Notice: Undefined variable: destination in /volume1/web/curl/index.php on line 40
Używasz zmiennej destination która nie jest zadeklarowana. (deklarujesz $destinadion)

Warning: fopen(): Filename cannot be empty in /volume1/web/curl/index.php on line 40
Nazwa pliku nie może być pusta (destinadion)

Warning: fputs() expects parameter 1 to be resource, boolean given in /volume1/web/curl/index.php on line 41
funkcja fputs() oczekuje, że pierwszy parametr będzie uchwytem do pliku, a podałeś boolean.

Warning: fclose() expects parameter 1 to be resource, boolean given in /volume1/web/curl/index.php on line 42
Jak wyżej.
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.