Witam,

Mam taki problem z moim prostym uploaderem na potrzebe zamknietej grupy.
Po przebudowaniu skryptu na bardziej uniwersalny (zmiana nazw plików). Skrypt nie działa na niektorych serwerach. Np. na OVH jest wszystko ok, ale już na proserwer.pl jest problem z includowaniem pliku z index.php.

Plik upload.php:

  1. <?php
  2. // BEGIN - Zabezpieczenie przez nadpisywaniem
  3. //$nrand = '';
  4. //while (strlen($nrand)<4) $nrand.=chr(rand(97,122));
  5. //$nname = date("m_d").'_'.$nrand.'_'.($_FILES['up']['name']);
  6. // END - Zabezpieczenie przed nadpisywaniem
  7. if(isset($_POST['upaj']) AND isset($_FILES['up']))
  8. {
  9. $nname = ($_FILES['up']['name']);
  10.  
  11. function znaki($nname)
  12. {
  13. $tabela = Array(
  14. //WIN
  15. "\xb9" => "a", "\xa5" => "A", "\xe6" => "c", "\xc6" => "C",
  16. "\xea" => "e", "\xca" => "E", "\xb3" => "l", "\xa3" => "L",
  17. "\xf3" => "o", "\xd3" => "O", "\x9c" => "s", "\x8c" => "S",
  18. "\x9f" => "z", "\xaf" => "Z", "\xbf" => "z", "\xac" => "Z",
  19. "\xf1" => "n", "\xd1" => "N",
  20. //UTF
  21. "\xc4\x85" => "a", "\xc4\x84" => "A", "\xc4\x87" => "c", "\xc4\x86" => "C",
  22. "\xc4\x99" => "e", "\xc4\x98" => "E", "\xc5\x82" => "l", "\xc5\x81" => "L",
  23. "\xc3\xb3" => "o", "\xc3\x93" => "O", "\xc5\x9b" => "s", "\xc5\x9a" => "S",
  24. "\xc5\xbc" => "z", "\xc5\xbb" => "Z", "\xc5\xba" => "z", "\xc5\xb9" => "Z",
  25. "\xc5\x84" => "n", "\xc5\x83" => "N",
  26. //ISO
  27. "\xb1" => "a", "\xa1" => "A", "\xe6" => "c", "\xc6" => "C",
  28. "\xea" => "e", "\xca" => "E", "\xb3" => "l", "\xa3" => "L",
  29. "\xf3" => "o", "\xd3" => "O", "\xb6" => "s", "\xa6" => "S",
  30. "\xbc" => "z", "\xac" => "Z", "\xbf" => "z", "\xaf" => "Z",
  31. "\xf1" => "n", "\xd1" => "N", "\xC2\xA0" => "_", " " => "_");
  32.  
  33. return strtr($nname,$tabela);
  34. }
  35. $lname = znaki("$nname"); // usuwanie spacji z nazwy plików oraz podmiana polskich znaków
  36.  
  37. $mpath = '/'; // lokalizacja katalogu z uploaderem
  38. $sem = 's4'; // semestr - nazwa folderu
  39. $genre = $_POST['genre']; //unifikacja przedmiotów
  40.  
  41. //BEGIN -Zapezpieczenie przed nadpisywaniem V2
  42. $fileexists = 'http://'.$_SERVER[HTTP_HOST].'/'.$mpath.$sem.'/'.$genre.'/'.$lname;
  43. $filecheck = 'http://'.$_SERVER[HTTP_HOST].'/'.$mpath.$sem.'/'.$genre.'/';
  44. if (@fopen($fileexists, 'r')){
  45. $rozwal = explode("/", $fileexists);
  46. $liczba = count($rozwal);
  47. $tempname = $rozwal[$liczba-1];
  48. $rozwal2 = explode(".", $tempname);
  49. $liczba2 = count($rozwal2);
  50. $j=0;
  51. $bezrozsz = "";
  52.  
  53. for ($j=0; $j < ($liczba2-1); $j++){
  54. $bezrozsz .= $rozwal2[$j]."."; // plik bez rozszerzenia
  55. }
  56. $dlugoscnazwy = strlen($bezrozsz);
  57. $bezrozsz = substr($bezrozsz, 0, $dlugoscnazwy-1);
  58.  
  59. $i = 1;
  60. while ((@fopen($filecheck.$bezrozsz.'('.$i.').'.$rozwal2[$liczba2-1], 'r')))
  61. $i++;
  62. $rozsz = '.'.$rozwal2[$liczba2-1];
  63. $nname = $bezrozsz.'('.$i.')'.$rozsz;
  64. }
  65. else {
  66. $nname = $nname;
  67. }
  68.  
  69. $lname = $nname;
  70. //END
  71.  
  72.  
  73. function upload_internal($ndir)
  74. {
  75.  
  76. global $lname;
  77. global $mpath;
  78. global $sem;
  79. if (move_uploaded_file($_FILES['up']['tmp_name'],'./'.$sem.'/'.$ndir.'/'.$lname))
  80. {
  81. $perm = './'.$sem.'/'.$ndir.'/'.$lname;
  82. chmod($perm, 0600);
  83. echo('<center>');
  84. echo('Plik został wysłany.');
  85. $url = "http://$_SERVER[HTTP_HOST]/$mpath$sem/$ndir/$lname";
  86. echo('<br /><strong>Link do pliku: </strong><br />');
  87. echo('<input type="text" onclick="select()" size="100" value="'.$url.'" />');
  88. echo('</center>');
  89.  
  90.  
  91. }
  92. else
  93. {
  94. switch($_FILES['up']['error'])
  95. {
  96. case 1: echo('Przesyłany plik jest większy niż zezwala na to konfuguracja serwera');break;
  97. case 2: echo('Plik jest za duży do wysłania. Maksymalny rozmiar to 30 MB');break;
  98. case 3: echo('Plik nie został wysłany w całości');break;
  99. case 4: echo('Plik nie został wysłany');break;
  100. }
  101. }
  102.  
  103. }
  104.  
  105. function upload($ndir)
  106. {
  107. global $sem;
  108. if($_POST['genre'] == "$ndir")
  109. {
  110. if (isset($_FILES['up']))
  111. {
  112. if(file_exists("./$sem/$ndir"))
  113. {
  114. upload_internal($ndir);
  115. }
  116. else
  117. {
  118.  
  119. if(file_exists("./$sem"))
  120. {
  121. mkdir("./$sem/$ndir", 0777);
  122.  
  123. if(file_exists("./$sem/$ndir"))
  124. {
  125. upload_internal($ndir);
  126. }
  127. }
  128. else
  129. {
  130. mkdir("./$sem", 0777);
  131.  
  132. if(file_exists("./$sem"))
  133. {
  134. mkdir("./$sem/$ndir", 0777);
  135. if(file_exists("./$sem/$ndir"))
  136. {
  137. upload_internal($ndir);
  138. }
  139. }
  140. }
  141. }
  142. }
  143. }
  144. }
  145.  
  146.  
  147. if($_POST['checked'] == 'yes')
  148. {
  149. if($_FILES['up'] == "")
  150. {
  151. echo ('Nie wybrałeś pliku');
  152. }
  153. elseif($_POST['genre'] == "")
  154. {
  155. echo ('Nie wybrałeś przedmiotu');
  156. }
  157. else
  158. {
  159. upload("$genre");
  160. }
  161. }
  162. }
  163. ?>


Dopiero jak dodałem if'a na gorze to plik zaczał się ładować, inaczej to index.php się jakby wieszał przy ładowaniu wlasnie na linijce w której jest dodane php include upload.php