Menu
Strona główna
Hacking
Programowanie
Telefonia Komórkowa
Kody do Gier
Linux
Dlaczego?
Programowanie w Delphi
Mapa strony
 Programy
Systemy
Artykuły PDF

Security

Skanery
Sniffery
Security

Windows

Użytkowe
Przegl±darki graficzne
Kodeki
Narzędzia plikowe
Narzędzia dyskowe
Narzędzia systemowe
Sterowniki
Szyfrowanie danych
Zarz±dzanie hasłami
Zarz±dzanie rejestrem
£aty i Patche
Zarz±dzanie pamięci±
Synchronizacja czasu
Nagrywanie płyt
Free Antivirus (Darmowe Antyvirusy)
Sterowniki
Obróbka d¼więku
Edycja wideo

Internetowe

Bezpieczeñstwo
Programy P2P
Komunikatory
Dodatki do przegl±darek
Klienty poczty elektronicznej
Narzędzia Antyspamowe
Przegl±darki grup dyskusyjnych
Przegl±darki Offline
Serwery poczty elektronicznej
Telefonia komórkowa
Wyszukiwarki internetowe
Zdalny dostęp
Cybernianie
Klienty FTP
Narzędzia internetowe
Prywatnośc
Przegl±darki internetowe
Serwery FTP
Serwery WWW
Wspomagacze ści±gania
Zarz±dzanie sieci± lokaln±

Tuning Systemu

Diagnostyka i testowanie
Inne
Rozszerzenia pulpitu
Tapety na pulpit
Tuning Systemu
Ikony
Powłoki
Tuning sprzętu
Wygaszacze ekranu

Programowanie

Kompilatory
Biblioteki i komponenty
Bazy danych
Edytory programistyczne
¦rodowiska programistyczne
Debugery
Tworzenie wersji instalacyjnych

Webmastering

Użytkowe
Kursy

Linux

Użytkowe
Internetowe
Multimedialne

Programy biurowe

Programy dla firm
Pakiety biurowe
Administracja
Edytory tekstu
Grafika prezentacyjna
Kadry i płace
Wspomaganie projektowania
Zarz±dzanie projektami
Bazy danych
Finanse i księgowośc
Handel
Programy ewidencyjne
Zarz±dzanie informacj± osobist± (PIM)
 Download GRY
Pelne Wersje GIER
 Artykuy > Programowanie > Kurs PHP - Odbieranie plików od użytkownika Cześć 10

Odbieranie plików od użytkownika

Jak wspomniano wcześniej, PHP "umie" odbierać pliki od użytkownika. Robi się to przy pomocy pola typu "file" w formularzu i odpowiednich zmiennych w skrypcie odbierającym dane.

plik1.html:

<html>
 <body>
  <form action="plik2.php" method="POST" ENCTYPE="multipart/form-data">
   <input type="file" name="plik"/><br/>
   <input type="submit" value="Wyślij plik"/>
  </form>
 </body>
</html>

plik2.php:

<?php
$max_rozmiar 
1024*1024;
if (
is_uploaded_file($_FILES['plik']['tmp_name'])) {
    if (
$_FILES['plik']['size'] > $max_rozmiar) {
        echo 
'Błąd! Plik jest za duży!';
    } else {
        echo 
'Odebrano plik. Początkowa nazwa: '.$_FILES['plik']['name'];
        echo 
'<br/>';
        if (isset(
$_FILES['plik']['type'])) {
            echo 
'Typ: '.$_FILES['plik']['type'].'<br/>';
        }
        
move_uploaded_file($_FILES['plik']['tmp_name'],
                
$_SERVER['DOCUMENT_ROOT'].'/foto/'.$_FILES['plik']['name']);
    }
} else {
   echo 
'Błąd przy przesyłaniu danych!';
}

?> 

Przesyłanie plików na serwer jest sprawą dosyć niebezpieczną, dlatego należy odpowiednio się zabezpieczyć. W powyższym przykładzie użyta została funkcja is_uploaded_file(). Sprawdza ona czy podany plik faktycznie został odebrany od użytkownika - sprawdzenie takie jest istotne, gdyż w przypadku ¼le napisanego skryptu "włamywacz" będzie mógł odczytać z serwera dowolny plik, do którego prawo odczytu posiada użytkownik jako który pracuje serwer WWW.

Po kolei wykorzystywane są dostępne informacje o pliku. Jeśli wszystkie próby przebiegną pomyślnie, plik jest przenoszony w docelowe miejsce przy pomocy funkcji move_uploaded_file(). Oczywiście jeśli plik o takiej samej nazwie już istnieje, zostanie nadpisany, dlatego też należy najpierw to sprawdzić przy pomocy funkcji file_exists(), ale o tym w następnym rozdziale.

Kolejnym niebezpieczeństwem jest możliwość wstawienia na serwer skryptu PHP zawierającego "niebezpieczne instrukcje". Można się przeciw temu zabezpieczyć sprawdzając rozszerzenie lub typ przesyłanego pliku. Jeśli rozszerzenie pliku to .php (lub inne, które jest przetwarzane przez serwer WWW jako skrypt PHP) lub typ pliku jest inny od oczekiwanego (na przykład wszystkie inne niż image/gif czy image/jpeg), plik można albo usunąć albo zmienić mu rozszerzenie. Jak - opis w następnym rozdziale.

Aby plik mógł zostać przeniesiony w docelowe miejsce, docelowy katalog musi mieć odpowiednie prawa dostępu. Mianowicie użytkownik, jako który pracuje serwer WWW musi mieć prawo zapisu do tego katalogu. Wszystkie niezbędne informacje można uzyskać od administratora serwera, lub szukając dyrektywy User w pliku /etc/httpd/httpd.conf.

komentarz[4] |

Copyright 2006 - 2007 E-comet.info. Wszelkie prawa zastrzeone.

programy,artykuy,gry online,teledyski,filmiki,smieszne reklamy,sterowniki,kodeki,programy,program,download, downloads,security,bramka sms, teledyski,antywirusy,darmowe free program,programy p2p,tapety,programy biurowe,programy dla firm,narzdzia dyskowe,edytory,gry strategiczne,gry przygodowe,gry sportowe, symulatory, gry rpg,gry karciane, gry zrecznosciowe. Zapraszamy.
0.036 |