- Amazon Web Services w akcji. Wydanie IICena: 64.35 zł
- Bezpieczeństwo systemu Linux w praktyce. Receptury. Wydanie IICena: 50.05 zł
- Firewall nie powstrzyma prawdziwego smoka, czyli jak zadbać o cyberbe...Cena: 31.85 zł
- Odliczając do dnia zero. Stuxnet, czyli prawdziwa historia cyfrowej b...Cena: 25.93 zł
1.Wprowadzenie
2.Operacje na plikach
3.Pierwsza aplikacja
4.Little zabezpieczenia
5.Zakonczenie
1.Wprowadzenie.
Artykul ten jest dedykowany osoba ktore juz znaja podstawy PHP, mianowicie operacje na zmiennych, tablicach, plikach, oraz znajacych podstawy HTMLa. Aby przystapic do czytania tego, zalecam przeczytania moich innych artykulow na temat programowania w PHP. Nie bede juz wiecej zamulal, tylko przejdzmy do rzeczy ;)
2.Operacje na plikach [$_FILES]
Jest to rzecz, ktora przysparza klopotow osoba ktore znaja sie bardziej, jak i mniej na programowaniu w PHP. Mowa tutao o zmiennej jaka jest $_FILES. Zmienna ta dostarcza w postaci tablicy wszystkich informacji o uploadowanym pliku.
Dla przykladu, napiszemy prosty skrypt, ktory bedzie uploadowal pliki tylko z rozszrzeniami: jpg, jpeg, gif:
Czesc kodu HTML:
<form enctype="multipart/form-data" action="cos.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="5000" />
<input name="plik" type="file" />
<input type="submit" value="Wyslij plik" />
</form>
Czesc kodu PHP:
<php
$plik_tmp = $_FILES['plik']['tmp_name']; // Tymczasowa nazwa uploadowanego pliku
$plik_nazwa = $_FILES['plik']['name']; // Orginalna nazwa pliku uploadowanego przez uzytkownika
$plik_rozmiar = $_FILES['plik']['size']; // Rozmiar pliku w Byte'ach
$rozmiar = $plik_rozmiar / 1000; // A tu zrobimy z nich kB
$is_obrazek = explode('.', $plik_nazwa); // dzielimy nazwe uploadowanego pliku na tablice
$is_obrazek[1] = strtolower($is_obrazek[1]); // zmniejszamy nazwe rozszerzenia
if (($is_obrazek[1] == 'jpg')||($is_obrazek[1] == 'jpeg')||($is_obrazek[1] == 'gif')){ // sprawdzamy poprawnosc pliku
if(is_uploaded_file($plik_tmp)) { // Jesli plik zostal poprawnie zuploadowany
move_uploaded_file($plik_tmp, "gallery/$plik_nazwa"); // Przenosimy
echo "Plik: $plik_nazwa o rozmiarze
$rozmiar kB zosta� przes�any na serwer!"; // Pokaz dane o pliku
}
} else {
if ($plik_nazwa == NULL) { // Jesli plik jest pusty
return 0;
} else { // Jesli format jest zly
echo 'Nie poprawny format pliku!';
}
}
?>
Teraz ladnie to postaram sie Wam wytlumaczyc. Chcemy napisac skrypt ktory wysyla na serwer zdjecia i obrazki w formatach: jpg, jpeg, gif. Wiec bierzemy sie do roboty... Zaczynamy od napisania prostego formularza w HTML'u gdzie programujemy wszystko i jaka metoda ma isc. Obrazki beda szly do pliku 'cos.php' metoda POST.
<input type="hidden" name="MAX_FILE_SIZE" value="5000" /> -> Tutaj ukrywamy jaki bedzie maksymalny rozmiar obrazka [w Byte'ach].Teraz zajmijmy sie skryptem 'cos.php'.
<php
$plik_tmp = $_FILES['plik']['tmp_name'];
$plik_nazwa = $_FILES['plik']['name'];
$plik_rozmiar = $_FILES['plik']['size'];
$rozmiar = $plik_rozmiar / 1000;
$is_obrazek = explode('.', $plik_nazwa);
$is_obrazek[1] = strtolower($is_obrazek[1]);
if (($is_obrazek[1] == 'jpg')||($is_obrazek[1] == 'jpeg')||($is_obrazek[1] == 'gif')){
if(is_uploaded_file($plik_tmp)) {
move_uploaded_file($plik_tmp, "gallery/$plik_nazwa");
echo "Plik: $plik_nazwa o rozmiarze
$rozmiar kB zosta� przes�any na serwer!";
}
} else {
if ($plik_nazwa == NULL) {
return 0;
} else {
echo 'Nie poprawny format pliku!';
}
}
?>
Wpierw, nadajemy krotkie zmienne, po czym dzielimy nazwe pliku na tablice o nazwie $is_obrazek. Dlaczego ? Abysmy mogli porownywac rozszerzenia plikow uploadowanych, z dozwolonymi. Gdy plik przejdzie pomyslnie ta instrukcje warunkowa, przechodzi do kolejnej if(is_uploaded_file($plik_tmp)). Jesli plik sie poprawnie uploadowal, przenosi do folderu "gallery" [za przeniesienie odpowiada move_uploaded_file($plik_tmp, "gallery/$plik_nazwa") ]. Po tym pokazujemy krotkie informacje na temat uploadowanego pliku. Jesli jednak plik nie zostal uploadowany lub nazwa pliku jest inna, zobaczymy blad ;).
Powyzszy kod nie jest zly, na pewno uchroni nas przed 'laikami' jednakze nie przed osobami zaawansowanymi. Zawsze mozna pocudowac z rozszerzeniami i mozna wrzucic na serwer inny plik:).
Pamietajcie, zawsze sie znajdzie jakis blad :) ! [Zapraszam do pkt.4 'Little zabezpieczenia']
Dalsza czê¶æ:
1
2
Listing
- Zobacz kod dodany do tego wpisu
-
$_FILES['plik']['type'] // zwraca tam TYP MIME PLIKU
-