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:
<?php
// BEGIN - Zabezpieczenie przez nadpisywaniem
//$nrand = '';
//while (strlen($nrand)<4) $nrand.=chr(rand(97,122));
//$nname = date("m_d").'_'.$nrand.'_'.($_FILES['up']['name']);
// END - Zabezpieczenie przed nadpisywaniem
if(isset($_POST['upaj']) AND
isset($_FILES['up'])) {
$nname = ($_FILES['up']['name']);
function znaki($nname)
{
//WIN
"\xb9" => "a", "\xa5" => "A", "\xe6" => "c", "\xc6" => "C",
"\xea" => "e", "\xca" => "E", "\xb3" => "l", "\xa3" => "L",
"\xf3" => "o", "\xd3" => "O", "\x9c" => "s", "\x8c" => "S",
"\x9f" => "z", "\xaf" => "Z", "\xbf" => "z", "\xac" => "Z",
"\xf1" => "n", "\xd1" => "N",
//UTF
"\xc4\x85" => "a", "\xc4\x84" => "A", "\xc4\x87" => "c", "\xc4\x86" => "C",
"\xc4\x99" => "e", "\xc4\x98" => "E", "\xc5\x82" => "l", "\xc5\x81" => "L",
"\xc3\xb3" => "o", "\xc3\x93" => "O", "\xc5\x9b" => "s", "\xc5\x9a" => "S",
"\xc5\xbc" => "z", "\xc5\xbb" => "Z", "\xc5\xba" => "z", "\xc5\xb9" => "Z",
"\xc5\x84" => "n", "\xc5\x83" => "N",
//ISO
"\xb1" => "a", "\xa1" => "A", "\xe6" => "c", "\xc6" => "C",
"\xea" => "e", "\xca" => "E", "\xb3" => "l", "\xa3" => "L",
"\xf3" => "o", "\xd3" => "O", "\xb6" => "s", "\xa6" => "S",
"\xbc" => "z", "\xac" => "Z", "\xbf" => "z", "\xaf" => "Z",
"\xf1" => "n", "\xd1" => "N", "\xC2\xA0" => "_", " " => "_");
return strtr($nname,$tabela); }
$lname = znaki("$nname"); // usuwanie spacji z nazwy plików oraz podmiana polskich znaków
$mpath = '/'; // lokalizacja katalogu z uploaderem
$sem = 's4'; // semestr - nazwa folderu
$genre = $_POST['genre']; //unifikacja przedmiotów
//BEGIN -Zapezpieczenie przed nadpisywaniem V2
$fileexists = 'http://'.$_SERVER[HTTP_HOST].'/'.$mpath.$sem.'/'.$genre.'/'.$lname;
$filecheck = 'http://'.$_SERVER[HTTP_HOST].'/'.$mpath.$sem.'/'.$genre.'/';
if (@fopen($fileexists, 'r')){ $rozwal = explode("/", $fileexists); $liczba = count($rozwal); $tempname = $rozwal[$liczba-1];
$rozwal2 = explode(".", $tempname); $liczba2 = count($rozwal2); $j=0;
$bezrozsz = "";
for ($j=0; $j < ($liczba2-1); $j++){
$bezrozsz .= $rozwal2[$j]."."; // plik bez rozszerzenia
}
$dlugoscnazwy = strlen($bezrozsz); $bezrozsz = substr($bezrozsz, 0
, $dlugoscnazwy-1
);
$i = 1;
while ((@fopen($filecheck.$bezrozsz.'('.$i.').'.$rozwal2[$liczba2-1], 'r'))) $i++;
$rozsz = '.'.$rozwal2[$liczba2-1];
$nname = $bezrozsz.'('.$i.')'.$rozsz;
}
else {
$nname = $nname;
}
$lname = $nname;
//END
function upload_internal($ndir)
{
{
$perm = './'.$sem.'/'.$ndir.'/'.$lname;
chmod($perm, 0600);
echo('Plik został wysłany.'); $url = "http://$_SERVER[HTTP_HOST]/$mpath$sem/$ndir/$lname";
echo('<br /><strong>Link do pliku: </strong><br />'); echo('<input type="text" onclick="select()" size="100" value="'.$url.'" />');
}
else
{
switch($_FILES['up']['error'])
{
case 1
: echo('Przesyłany plik jest większy niż zezwala na to konfuguracja serwera');break
; case 2
: echo('Plik jest za duży do wysłania. Maksymalny rozmiar to 30 MB');break
; case 3
: echo('Plik nie został wysłany w całości');break
; case 4
: echo('Plik nie został wysłany');break
; }
}
}
function upload($ndir)
{
if($_POST['genre'] == "$ndir")
{
if (isset($_FILES['up'])) {
{
upload_internal($ndir);
}
else
{
{
mkdir("./$sem/$ndir", 0777
);
{
upload_internal($ndir);
}
}
else
{
{
mkdir("./$sem/$ndir", 0777
); {
upload_internal($ndir);
}
}
}
}
}
}
}
if($_POST['checked'] == 'yes')
{
if($_FILES['up'] == "")
{
echo ('Nie wybrałeś pliku'); }
elseif($_POST['genre'] == "")
{
echo ('Nie wybrałeś przedmiotu'); }
else
{
upload("$genre");
}
}
}
?>
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