Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.
Özel Arama
  Bilgi Dünyası > 
(¯`·.(¯`·. (¯`·.(¯`·.BİDUNYABİLGİ ÖZEL - PROGRAMLAMA - WEBMASTER - GRAFİK BÖLÜMÜ .·´¯).·´¯) .·´¯).·´¯)
 > Web Tasarım - Template - Font > Php - Asp - HTML (Moderatör: zivercan) > PHP de Dosya Gönderim ( File Upload )
Kullanıcı Adı: Beni Hatirla?
Şifre:
Konu: PHP de Dosya Gönderim ( File Upload )
: 2 cevap var
Okunma SayısıOkunma Sayısı 418 defa
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
Sayfa: [1]   Aşağı git
Cevap Yaz Yeni Konu Haberdar Et Okunmadi Say Bu Konuyu Gönder Yazdir
27.10.07 - 16:56:08
ÜYE BILGILERI zivercan
Moderator
*




CINSIYET Bay
NERDEN program dünyasından
KAYIT TARIHI 26.09.07 - 17:07:08
..Mesaj Sayısı..


Aktiflik

Deneyim
Seviye
IRTIBAT GÜCÜ Rep Puanı: 73

91 Mesajına Toplam
134 Kere Teşekkür Edildi

52 Mesajına Toplam
73 Kere Karma Verildi
ILETISIM
Offline Offline
---Arcade---
---Şampiyonluklarım---



Uyarı Puanı:
%0
« :»

PHP de Dosya Gönderim ( File Upload ) işlemleri ve püf noktaları.
Selam ile
Bu dökümanda size PHP ile nasıl ; " Dosya Gönderildiği / File Upload " konusunda bazı bilgiler vermek istiyorum. Aşağıda yazılı olanlar her zaman tekrarladığım gibi en basit ve sade dille anlatılmıştır. Bunun nedeni bir kod parçacığının ne kadar ilerlerse okadar karmaşıklaşmasıdır. Tabi basit derken abartılmış bir derecede basitlik olmıyacak.
Dökümanın akışı sırasında sizlere sık sık önemli notlar vermeye çalışacam bu sayede " Dosya Gönderme " işleminin güvenlik açıklarınıda öğrenmiş olacaksınız. Fazla geyiğe girmeden hemen dökümana başlıyorum.
Aşağıdaki kodu bir dosyaya kaydedin.


HTML Kodu:
<form name="form1" enctype="multipart/form-data"
action="<? echo $PHP_SELF;?>" method="post">
<input type="file" name="dosya">


<input type="submit" name="gonder" value="Gönder">
</form>PHP Kodu:
<?
if(.$gonder == "Gönder") {
copy ( $dosya, $dosya_name ) or die ( "Dosya Kopyalanamiyor." );
echo $dosya_name;
echo "
";
echo $dosya_size . " Kb";
echo "
";
echo $dosya_type;
echo "
";
echo "<a href=\"$dosya_name\">Tiklayiniz.[/url]";
}
?>
Yukarıdaki kodlara göz attığımız zaman html ve php kodlarını göreceksiniz. Şimdi bu kodları anlatmaya başlamadan önce ilk denememizi yapalım. Dosyayı kaydedip çalıştırdığınız zaman. Karşınıza iki tane form elamanı çıkacak. İkiside web sayfalarından görmeye alışık olduğunuz elamanlar.
Bunlardan biri dosya göndermenizi sağlayan " Form - File " elamanı. Diğeri ise " Form - Button ".
Şimdi Browse tuşuna basip bir dosya seçelim ( Resim Dosyası seçebilirsiniz ) sonrada gönder tuşuna basalım.
Muhtemelen ( klasöre yazma izinleri vs.. gibi etkenler yoksa ) aşağıdaki gibi bir çıktı alacaksınız.


dosyadi.xxx
15723 Kb
image/pjpeg
Tıklayınız.

İlk satırda dosya adı, sonrakinde dosya boyutu, sonrakinde dosya tipi ve en sonda tıklayın. adlı bir link. Eğer gönderdiğiniz dosya bir resim yada benzeri bir dosya ise bu linke tıklayarak resmi görebileceksiniz.


Not : Eğer sunucunuzun kendi üzerinde çalıştıramıyacağı bir dosya ise ; bu dosyayı download etmeniz için size gönderecektir.

Buraya kadar yazılanlar bu işe yeni başlamış arkadaşlar için açıklayıcı nitelikteydi şimdi kodları teker teker açıklmaya başlıyalım.

HTML Kodu:
form name="form1" enctype="multipart/form-data" action="<? echo $PHP_SELF;?>" method="post"> bu satırı html den biraz anlıyan yada daha önce web sayfası yapmış olan pek çok kişi bilecektir.




HTML Kodu:
<form name="form1"bu bölüm ie form1 adında bir form oluşturduk.

HTML Kodu:
enctype="multipart/form-databu alan ile form tipini belirledir.

HTML Kodu:
action="<? echo $PHP_SELF;?>"bu satırda formun gönder tuşuna bastığımız zaman form bilgilerinin hangi dosyaya gönderileceğini belirledik. Anlıyacağınız gibi PHP nin kendinden gelen $PHP_SELF değişkeni ile form bilgilerini tekrar aynı dosyaya gönderdik. Bunun nedenini birazdan göreceksiniz.

HTML Kodu:
method="post"bu bölüm ilede formumuzun bilgileri göndereceği zamanki metodu belirledik.
Not : Form methodu olarak ( Java vs. hariç ) iki adet method vardır bunlardan biri " post" diğeri "get". İkisi arasındaki temel fark ; post metodunda gönderilen form bilgileri URL kısmında görülmezken, get methodunda form bilgileri URL kısmında görünür. Teknik olarak hemen herkesin post methodu kullanmak istemesi düşünülsede her ikisininde farklı özellikleri vardır. ( Konumuz dışında olduğu için uzatmıyorum. Gerekirse ileride bir döküman yazarız. )



HTML Kodu:
<input type="file" name="dosya">ikinci satırda ise dosya göndermemizi sağlayan bir " Form - File " elamanı yaptık. Burada name="dosya" ki alanda; " name " in bir değişken ve değerinin "dosya" olduğunu belirteyim.



HTML Kodu:
<input type="submit" name="gonder" value="Gönder">bu satırda yine formdaki bilgileri istediğimiz dosyaya göndermemizi sağlayan " Form - Submit " elemanını kullandık.

HTML Kodu:
name="gonder" value="Gönder"buradan anlıyacağınız gibi " gonder " adında ve değeri " Gönder " olan bir değişken tanımladık.

HTML Kodu:
</form>bu satır ilede form alanımızı bitirdik. ( html de formlar <form>
HTML Kodu:
</form>arasındaki bilgileri gönderir. Bu alan dışındaki bilgiler işlenmez. )
Şimdi gelelim php kodlarımıza.



PHP Kodu:
<?
if(.$gonder == "Gönder") {
bu satır ile önce <? ile php kodumuzu başlattık sonra php nin koşul fonksiyonlarından biri olan if() ( eğer ) fonksiyonu ile mantık olarak şöyle bir şey yazdık.


Eğer $gonder değişkeninin değeri "Gönder" değerine eşitse aşağıdaki kodları uygula. $gonder değişkeninin başında . işaretide böyle bir değişken yoksa hata mesajı verme anlamındadır.


Not : Dökümanın başında bahsettiğim dosya gönderme işleminin tek dosyada yapılması bu sayde oluşuyor. Yani form gönderilmediği sürece dosyayı çalıştırdığınız zaman karşınıza sadece ; dosya seçme ve gönderme butonları çıkıyor. Eğer dosya göndere basarsak


PHP Kodu:
<input type="submit" name="gonder" value="Gönder">

bu satır vasıtasıyla $gonder değişkeninin değeri " Gönder " olduğundan php kodlarımız çalışmaya başlıyor.


PHP Kodu:
copy ( $dosya, $dosya_name ) or die ( "Dosya Kopyalanamıyor." );

bu satır ile php deki copy() fonksiyonu kullanılarak. $dosya değişkeni ( formdan gelen ) , $dosya değişkeninin _name dizesi adıyla kaydediliyor.



PHP Kodu:
echo $dosya_name;

bu satır ile $dosya değişkeninin adını ( name dizesini ) ekrana bastırıyoruz.



PHP Kodu:
echo $dosya_size . " Kb";

bu satır ile $dosya değişkeninin size ( boyut ) dizesini...

PHP Kodu:
echo $dosya_type;

bu satır ilede dosya tipini ekrana bastırıyoruz.



PHP Kodu:
echo "<a href=\"$dosya_name\">Tıklayınız.[/url]";

bu satır ilede html de yazılara yada nesnelere link vermemizi sağlayan <a href> komutu ile gönderdiğimiz dosyanın adına bir link veriyoruz.



PHP Kodu:
}
?>

son olarak bu satırlarlada kodumuzu bitiriyoruz.

Dikkat edilmesi gereken hususlar ve püf noktalar :

- Dosya gönderme islemlerinde dikkat edilmesi gereken en önemli seylerden biri; sitenize gelen bir saldirganin sitenize zarar vermek amaciyla sisteminize göndermek isteyecegi kötü kodlardir. Mesala php kodlarinizdaki degiskenleri ( database sifre degiskenleri, kullanici sifre degiskenleri vs. ) ögrenmek için belirli bir kod yazabilirler. Bunun için gönderilen dosyalarda çesitli scriptlerle belirli dosya uzantilarini yasakliyabilirsiniz.
- Sitenize gelen saldirgan çok büyük dosya boyutlari ile web alaninizi düsürmek için girisimdebulunabilir. Bunun için form nesneleriniz arasina dosya boyutunu sinirlaran <INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="500000"> su satiri ekleyebilirsiniz.
- Sitenize gelen saldirgan dosya gönderirken; dosyanin gönderilecegi dizini degistirerek sizin belirttiginiz klasör disina ulasabilir.
- Mantik olarak bu gün çogu kisi tarafindan bilinen pek çok fikirlerden yaralanarak sitenize zarar vermemesi için en ince ayrintilara kadar düsünmek sizlerin görevidir.
Bu kodu ve kodları geliştirmek tamamen sizin elinizde. Eğer bu konuda hakkında daha fazla bilgi istiyorsanız bana aşağıda belirttiğim adresten e-mail atabilirsiniz. İyi Çalışmalar

Logged

Linklerin Görülmesine İzin Verilmiyor

Linki Görebilmek İçin Lütfen Üye Olun veya Giriş Yapın
Resimlerin Görüntülenmesine İzin Verilmiyor

Resimleri Görebilmek İçin Lütfen Üye Olun veya Giriş Yapın

Linklerin Görülmesine İzin Verilmiyor

Linki Görebilmek İçin Lütfen Üye Olun veya Giriş Yapın
Resimlerin Görüntülenmesine İzin Verilmiyor

Resimleri Görebilmek İçin Lütfen Üye Olun veya Giriş Yapın
Robot Moderatör
Anahtar Kelime
*****
Offline Pasif

Mesajlar: 6407

View Profile
Re: PHP de Dosya Gönderim ( File Upload )
« Posted on: 23.11.08 - 20:48:40 »

 
      uyari
Merhaba ziyaretçi. Öncelikle sitemize hoşgeldiniz. Ben robot moderatör olrak siteden daha fazla yararlanmanız için
sitemize üye olmanızı öneririm. iyi eğlenceler.

giris  kayit
Anahtar Kelimeler: PHP de Dosya Gönderim ( File Upload )
Web kaynakları , flash oyunlar , msn eklentileri , eğlenceli videolar hepsi burada
Logged
Sponsor Baglantilar


21.09.08 - 23:31:16
ÜYE BILGILERI evabenim
Yeni Üye
*

CINSIYET
NERDEN
KAYIT TARIHI 16.09.08 - 22:40:28
..Mesaj Sayısı..


Aktiflik

Deneyim
Seviye
IRTIBAT GÜCÜ Rep Puanı: 0
ILETISIM
Offline Offline
---Arcade---
---Şampiyonluklarım---



Uyarı Puanı:
%0
« Yanıtla #1 :»

Warning: chmod() [function.chmod]: Operation not permitted in /home/zirveajans/domains/zirveajans.com/public_html/basvuruformu/output.php on line 94

böyle bir hata alıyorum neden olabilir acaba.
formdaki veriler emailime geliyor ama resim url si yarım çıkıyor örn;

Linklerin Görülmesine İzin Verilmiyor

Linki Görebilmek İçin Lütfen Üye Olun veya Giriş Yapın
     (resim uploads klasörüne kopyalanamadığı için ismi çıkmıyor.)

yardım ederseniz çok sevinirim.
Logged
22.09.08 - 00:11:30
ÜYE BILGILERI vLKn
Administrator
*


CINSIYET Bay
NERDEN internetin olduğu her yerden
KAYIT TARIHI 27.01.07 - 10:45:26
..Mesaj Sayısı..


Aktiflik

Deneyim
Seviye
IRTIBAT GÜCÜ Rep Puanı: 207

480 Mesajına Toplam
722 Kere Teşekkür Edildi

127 Mesajına Toplam
164 Kere Karma Verildi
ILETISIM
WWW Offline Offline
---Arcade---
---Şampiyonluklarım---

MatchCH Militarywar Pacman Ponx Parasites UltbilCH Cat Memory Collapse Otello


Uyarı Puanı:
%0
« Yanıtla #2 :»

Warning: chmod() [function.chmod]: Operation not permitted in /home/zirveajans/domains/zirveajans.com/public_html/basvuruformu/output.php on line 94

böyle bir hata alıyorum neden olabilir acaba.
formdaki veriler emailime geliyor ama resim url si yarım çıkıyor örn;

Linklerin Görülmesine İzin Verilmiyor

Linki Görebilmek İçin Lütfen Üye Olun veya Giriş Yapın
     (resim uploads klasörüne kopyalanamadığı için ismi çıkmıyor.)

yardım ederseniz çok sevinirim.

hata verilen dosyanın chmod ayarlarını 777 yapmayı dene bir
Logged

İmla ve Yazım Kuralları
1- Eğer Türkçe klavyeniz var ise Ş Ç Ö Ü Ğ İ (ş ç ö ü ğ ı) harflerini Türkçe karakter kullanarak yazınız.
 Lütfen bu karakterlerin yerine s c o u g karakterlerini kullanmayınız.
2- Türkçemizde bulunmayan ( x,q,$ ) harflerini kesinlikle kullanmayınız
3- Noktalama işaretlerine dikkat ediniz.

Bu kurallara uymayanların mesajları kesinlikle silinir. Devamı halinde siteden uzaklaştırılır
Sayfa: [1]   Yukarı git
Cevap Yaz Yeni Konu Haberdar Et Okunmadi Say Bu Konuyu Gönder Yazdir

Gitmek istediğiniz yer:  

İlgili Konular
Konu Başlığı Başlatan Yanıtlar Görüntülenme Son Mesaj
Korsikalı - Corsican File / L Enquête corse --> Sinema -Kültür - Sanat the state 0 79 Son Mesaj 05.10.07 - 13:16:14
Gönderen: the state
Tüm Upload Sİteleri ve kaç mb aldıkları D: Yeni Başlayanlar ve Yardımlaşma culebra74 1 246 Son Mesaj 23.12.07 - 16:27:56
Gönderen: vLKn
mihd.net ile dosya upload free RESİMLİ - VİDEOLU DERSLER culebra74 1 205 Son Mesaj 29.01.08 - 22:51:41
Gönderen: vLKn
Dosya upload ( Diino ile 2 gb lık alan) RESİMLİ - VİDEOLU DERSLER « 1 2 » vLKn 24 607 Son Mesaj 30.03.08 - 18:19:55
Gönderen: vLKn
Yeni Rapidden Dosya Upload ve Download Yeni Başlayanlar ve Yardımlaşma culebra74 1 343 Son Mesaj 06.06.08 - 15:14:53
Gönderen: kemal_onur
|Site Map Yenile|Site Map|Sitemap|Site Map|Sitemap|Arşiv | |Arşiv |XML|Rss
MySQL ile Güçlendirildi PHP ile Güçlendirildi Powered by SMF 1.1.7 | SMF © 2006, Simple Machines LLC
Hersey

Bilgi Dünyası | Flash Oyun Dünyası | Arcade Oyun | Resimli Videolu Dersler | Çözüm Merkezi |
XHTML 1.0 Geçerli! CSS Geçerli!
Bu Sayfa 0.295 Saniyede 53 Sorgu ile Oluşturuldu