Nie wiem jak... Tak przeczytalem w ksiazce: PHP5 i MySQL (T.Converse, J.Park C.Morgan)
Nie interesuje sie lamaniem zabezpieczen, ale skoro oni takl pisza to cos w tym jest nie?
Ktos moze stworzyc swoja strone z formularzem z podrobina wartoscie MAX_FILE_SIZE i wyslac na odpowiedni adres (tak przypuszczam po przeczytaniu kilku stron, sam tak nie prubowalem)
Moja wersja kodu do uploadowania plikow graficznych:
<?php
if($_FILES['plik']['error'] == 0)
{
if(!($_FILES['plik']['type'] == 'image/jpeg' || $_FILES['plik']['type'] == 'image/png')) //sprawdzenie typu mime pliku
$this->komunikat[] = 'Niedozwolony format pliku!';
if($_FILES['plik']['size']>1000000) //gdyby ktos chcial podrobic formularz i zmienil wartosc MAX_FILE_SIZE
$this->komunikat[] = 'Za duży rozmiar pliku!';
if($this->komunikat == NULL) //dodanie pliku
{
$plik = trim($_FILES['plik']['name']); //wyczyszczenie nazwy pliku z poczatkowych i koncowych spacji $plik = ereg_replace(' ','', $plik); //usuniecie z nazwy spacji $plik = substr($plik, -20
); //pobranie ostatnich 20 znakow nazwy pliku if(ereg('.jpg',$plik) || ereg('.jpeg',$plik) || ereg('.png',$plik)) //sprawdzenie rozszrzenia pliku {
{
$nazwa_plik=$plik;$i=0;
while (file_exists($this->katalog.'/'.$nazwa_plik)) //sprawdzenie czy istnieje plik o podnaje nazwie, jezeli tak to dodajemy $i; {
$nazwa_plik=$i.$plik;
$i++;
}
$sciezka_do_pliku = $this->katalog . $nazwa_plik;
chmod($sciezka_do_pliku, 0644); //zmiana praw pliku
$this->komunikat[] = 'Plik został przekazany pomyślnie';
}
else
$this->komunikat[] = 'Przekazanie pliku nie powiodło się';
}
else
$this->komunikat[] = 'Dozwolone są tylko pliki graficzne!';
}
}
elseif($_FILES['plik']['error'] == 1)
$this->komunikat[] = 'Za duży rozmiar pliku!'; //rozamiar zdefiniowany w php.ini
elseif($_FILES['plik']['error'] == 2)
$this->komunikat[] = 'Za duży rozmiar pliku!'; //rozamiar zdefiniowany w formularzu MAX_FILE_SIZE
else
$this->komunikat[] = 'Inny blad';
?>
Chyba bedzie nie? A moze macie jakies uwagi jeszcze?