Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z uploadem - open_basedir restriction
Age1869
post 30.08.2011, 22:33:03
Post #1





Grupa: Zarejestrowani
Postów: 118
Pomógł: 6
Dołączył: 25.10.2010
Skąd: Radzyn Podlaski

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


Hej, mam taki oto skrypt (zostawiłem tylko to, co istotne przy szukaniu błędu, żeby było szybciej i łatwiej):

  1. <?php
  2. //tutaj mi generuje unikalną zmienną $name
  3.  
  4. function zapisz_plik()
  5. {
  6.  
  7. if(is_uploaded_file($_FILES['userfile']['tmp_name']))
  8. {
  9. if(!move_uploaded_file($_FILES['userfile']['tmp_name'], $location))
  10. {
  11. echo 'problem: Nie udalo sie skopiowac pliku do katalogu.';
  12. return false;
  13. }
  14. }
  15. else
  16. {
  17. echo 'problem: Mozliwy atak podczas przesylania pliku.';
  18. echo 'Plik nie zostal zapisany.';
  19. return false;
  20. }
  21. return true;
  22. }
  23.  
  24.  
  25. function sprawdz_bledy(){
  26. if ($_FILES['userfile']['error'] > 0){
  27. echo 'problem: ';
  28. switch ($_FILES['userfile']['error']){
  29. // jest wiekszy niz domyslny maksymalny rozmiar,
  30. // podany w pliku konfiguracyjnym
  31. case 1: {echo 'Rozmiar pliku jest zbyt duzy.'; break;}
  32.  
  33. // jest wiekszy niz wartosc pola formularza
  34. // MAX_FILE_SIZE
  35. case 2: {echo 'Rozmiar pliku jest zbyt duzy.'; break;}
  36.  
  37. // plik nie zostal wyslany w calosci
  38. case 3: {echo 'Plik wyslany tylko czesciowo.'; break;}
  39.  
  40. // plik nie zostal wyslany
  41. case 4: {echo 'Nie wyslano zadnego pliku.'; break;}
  42.  
  43. // pozostale bledy
  44. default: {echo 'Wystapil blad podczas wysylania.';
  45. break;}
  46. }
  47. return false;
  48. }
  49. return true;
  50. }
  51.  
  52.  
  53.  
  54. function sprawdz_typ(){
  55. if ($_FILES['userfile']['type'] != 'image/jpeg')
  56. return false;
  57. else
  58. return true;
  59. }
  60.  
  61. $last_id = mysql_query("SELECT * FROM `images` ORDER BY `id` DESC LIMIT 1");
  62. $fetching = mysql_fetch_array($last_id);
  63. $id = $fetching['id'] + 1;
  64.  
  65. if ($tytul){
  66.  
  67. if (!sprawdz_typ()) exit('Bledny typ');
  68. if (!sprawdz_bledy()) exit();
  69.  
  70. $do_bazy = mysql_query("INSERT INTO `images` (`id`, `autor`, `tytul`, `opis`, `adres`) VALUES ('$id', '$autor', '$tytul', '$opis', '$name')") or die(mysql_errno());
  71.  
  72. if (zapisz_plik()) exit('nie zapisano pliku');
  73. }
  74.  
  75. $location = '/home/xxxx/domains/xxxx/public_html/imager/photos/' . $name . '.jpg';
  76. ?>
  77.  
  78. <form enctype="multipart/form-data" method="POST">
  79. <label>Zdjęcie: </label><input name="userfile" type="file" /><br />
  80. <label>Tytuł: </label><input type="text" name="tytul" size="40"><br />
  81. <input type="hidden" name="MAX_FILE_SIZE" value="500000" /> /* maksymalna wielkosc pliku w bajtach */
  82. <label>Opis: </label><TEXTAREA name="opis" rows="10" cols="51" wrap="virtual"></TEXTAREA><br />
  83. <input type="submit" value="Wyslij" />
  84. </form>


Komunikat błędu:
  1. Warning: move_uploaded_file() [function.move-uploaded-file]: open_basedir restriction in effect. File() is not within the allowed path(s): (/home/xxxxxxxxx/:/tmp:/usr/local/lib/php/:/usr/sbin/:/usr/bin/:/usr/local/bin/:/usr/local/sbin/:/bin/:/sbin/) in /home/xxxxxx/domains/xxxxxxxxx/public_html/imager/dodaj.php on line 50


Linia 50 to ta: if(!move_uploaded_file($_FILES['userfile']['tmp_name'], $location))

Dziękuję za pomoc!

Ten post edytował Age1869 30.08.2011, 22:34:55


--------------------
Michal Zarobkiewicz Photographic Gallery
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 19:34