php etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
php etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

25 Mayıs 2014 Pazar

Dosya Upload Etme


 Bu konuyu anlamak için öncelikle daha önce yazmış olduğumuz php'de form konulu makaleyi okumalısınız.Okumadıysanız buradan okuyabilirsiniz.Dosya upload ettirirken belirli koşullarla bazı kısıtlamalar getirmemiz gerekiyor.Yoksa isteyen istediği kodu upload ederek sitemizi yönlendirebilir.Sistemimizde ciddi bir açık oluşabilir. 


Upload Formu


 Bunu form elemanlarından file form türünü seçerek yapacağız.form etiketine enctype değerine dosya upload edeceğimiz için “multipart/form-data” parametresini ekleyeceğiz. 



 Kod Çizelgesi     Kod Dili: htmlHepsini Seç

<form action="gonder.php" method="post" enctype="multipart/form-data">
   <
input type="file" name="dosya" />
   <
input type="submit" value="Gönder" />
</
form



 Bu formu kendi localhostunuzda deneyerek nasıl bir görüntüyle karşılaşacağınızı görebilirsiniz.Gönder butonuna basıldığında belirtilen dosya gönder.php adresine gönderilecektir. 

Gönderilen Dosyaları Kontrol Etmek


Şimdi asıl olay başlıyor.Herkez dosya upload işlemini yukarıda verdiğim formu kullanarak yapabilir.Fakat o form da belirtilengönder.php adresine güvenlik bakımından çeşitli kısıtlamalar getirmezseniz başınız çok ağrıyabilir.İlk olarak gönder.php adresine bir dosya gönderilmişmi diye kontrol edeceğiz.Daha sonra bütün form elemanlarında olduğu gibi file formu türüde $_FILES global değişkeninden taşınmaktadır.Bizde gönder.php adresinde $_FILES değişkenini sorgulayarak gelen dosyanın özelliklerine bakıp ne olduğunu anlayacağız. 



 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<?php if(isset($_FILES['dosya'])) {
   echo 
'Dosya gönderilmiş';
} else {
   echo 
'Lütfen bir dosya gönderin';
?> 



 Bu örnekte yanlızca sayfaya bir upload yapılmış mı diye kontrol ettik. Şimdi eğer dosya gönderilmişse boyutuna ve tipine bakma sırasında. 

 Bunlar için $_FILES global dizininin bizim dosyamız için ürettiği diğer alt dizin değerlerine bakacağız, bunları bir tabloda gösterelim. 

İsim       Açıklama 
name   Gönderilen dosyanın adı 
type   Gönderilen dosyanın tipi 
tmp_   name Gönderilen dosyanın geçici olarak sunucuda barındığı adres. 
size   Gönderilen dosyanın bayt cinsinden boyutu 
error   Dosya gönderilirken gerçekleşen hata kodu 

 Yukarıdaki değerleri $_FILES global dizininde kendi dosya elementi adımızı girdikten sonra alt dizin şeklinde erişeceğiz. 



 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<?php if(isset($_FILES['dosya'])){
   
$hata $_FILES['dosya']['error'];
   if(
$hata != 0) {
      echo 
'Yüklenirken bir hata gerçekleşmiş.';
   } else {
      
$boyut $_FILES['dosya']['size'];
      if(
$boyut > (1024*1024*3)){
         echo 
'Dosya 3MB den büyük olamaz.';
      } else {
         
$tip $_FILES['dosya']['type'];
         
$isim $_FILES['dosya']['name'];
         
$uzanti explode('.'$isim);
         
$uzanti $uzanti[count($uzanti)-1];
         if(
$tip != 'image/jpeg' || $uzanti != 'jpg') {
            echo 
'Yanlızca JPG dosyaları gönderebilirsiniz.';
         } else {
            
$dosya $_FILES['dosya']['tmp_name'];
            
copy($dosya'dosyalar/' $_FILES['dosya']['name']);
            echo 
'Dosyanız upload edildi!';
         }
      }
   }
?> 



 Evet farkındayım çok uzun ve karışık görünen bir kod oldu ama koşulları yukarıdan aşağıya doğru incelerseniz aslında gayet düzenli bir şekilde kontrol ettik ve en sonunda tüm koşulları geçtiyse copy() fonksiyonu ile dosyayı geçici dizinden alıp dosyalar dizinine gönderdik. 

 Sırayla anlatayım. İlk olarak 1. satırda isset() fonksiyonu ile sayfaya gönderilme işlemi yapılıp yapılmadığına baktık. 

 2. ve 3. satırlarda gönderilen dosya bilgilerinden error değerine bakarak dosya gönderilmesinde herhangi bir hata meydana gelmiş mi diye kontrol ettik. Eğer error değeri 0 ise bir hata meydana gelmemiş demek olur. Bu hataların sebebi daha önceden de bahsettiğimiz gibi yazma izni gibi şeylerden ötürü kaynaklanabilir. 



 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<?php
$hata 
$_FILES['dosya']['error'];
if(
$hata != 0) {
  echo 
'Yüklenirken bir hata gerçekleşmiş.';
} else { 
// ... ?> 



  6. ve 7. satırlarda size değeri ile dosyanın boyutunu alıp (1024*1024*3) den büyük olup olmadığına baktık. Bu hesabın sonucu 3MB‘nin bayt cinsinden değerini verir. Eğer 3MB den büyük ise kabul etme demiş olduk. 



 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<?php
$boyut 
$_FILES['dosya']['size'];
if(
$boyut > (1024*1024*3)){
   echo 
'Dosya 3MB den büyük olamaz.';
} else { 
// ... ?> 



  10 – 15 satırları arasında dosyanın tipinin ne olduğuna ve dosyanın uzantısına baktık. Burada ben örnek olarak “image/jpeg” tipini ve jpg uzantısını kullandım, sen hangi dosyalara izin veriyorsan ona göre yanlızca uzantıları ya da tipleri kullanabilirsin. Örneğin $uzanti == ‘jpg’ || $uzanti == ‘gif’ || $uzanti == ‘png’ diyerek yanlızca bu üç uzantılı dosyaların alınmasını sağlayabilirsin. 



 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<?php
$tip 
$_FILES['dosya']['type']; $isim $_FILES['dosya']['name']; $uzanti explode('.'$uzanti); $uzanti $uzanti[count($uzanti)-1];
if(
$tip != 'image/jpeg' || $uzanti != 'jpg') {
   echo 
'Yanlızca JPG dosyaları gönderebilirsiniz.';
} else { 
// ... ?> 



 Son olarak da dosya tüm koşulları geçtiğinde onu copy() fonksiyonu ile geçici dizinden 2. parametresine yazdığımız dosyalar klasörüne göndermiş olduk. 



 Kod Çizelgesi     Kod Dili: phpHepsini Seç
<?php
$dosya 
$_FILES['dosya']['tmp_name']; copy($dosya'dosyalar/' $_FILES['dosya']['name']);
echo 
'Dosyanız upload edildi!'?> 




Bu derslikte bu kadar.Başka bir derste görüşmek üzere...

19 Mayıs 2014 Pazartesi

Php'de Kullanacağımız Bazı Fonksiyonlar

Arkadaşlar yakında daha yüksek seviyeli dersler vermeye başlayacağım.Bu derslere başlamadan önce size çok sık kullanacağım bazı fonksiyonları tanıtmak isterim. 

Str_replace fonksiyonu


Bu fonksiyon bir metin içindeki istediğimiz bir yazıyı başka bir yazı ile değiştirmemizi sağlar.3 parametre ile çalışır.Birincisi bulunacak değer,ikincisi yerine yazılacak değer,üçüncüsü ise aranacak değerinin hangi değişkende olduğudur.Daha iyi anlaşılması için bir örnek üzerinde anlatım yapalım: 



 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<?php
$metin 
'Bugün dondurma yedim'$sonuc str_replace('dondurma''elma'$metin);
echo 
$sonuc?> 



Ekranda bugün dondurma yedim yazacaktır. 

Rand Foksiyonu


Rand() fonksiyonu bize rastgele sayılar türetmeye yarar.İki parametre ile çalışır.Birincisi alt değe, ikincisi ise üst değerdir.Örnek: 


 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<?php
$a
=rand(0,25);
echo 
$a?> 


Ekranı her yeniledinizde ekranda rastgele olarak 0 ile 25 arasındaki sayılar yazılacaktır. 

İnclude Fonksiyonu


İnclude fonksiyonu Php'de kuşkusuz en sık kullanacağımız fonksiyonlardadır.Bir sayfada sürekli yazacağımız bir kod yerine onu bir kere yazıp diğer sayfalara da çağırmamıza olanak sağlar.Kullanımını örnek vererek açıklayacağım.Öncelikle iki tane Php dosyası oluşturalım.Birincisinin adı başlangıç.phpolsun.Diğer php dosyamızın adı ise son.php olsun. 
başlangıç.php dosyasının içine şu kodları yazalım: 


 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<?php echo 'sayfanın üst kısmına hoş geldiniz<br/>'?> 



son.php dosyamızın içine ise şu kodları yazalım: 



 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<?php
 
include 'başlangıç.php'
   echo 
'başlangıç.php bu sayfaya çağırılmıştıri'?> 



şimdi son.php sayfasına gittiğimiz zaman ekranda "sayfanın üst kımanıa hoş geldiniz" ve"başlangıç.php bu sayfaya çağırılmıştır" yazacaktır. 
Explode Fonksiyonu


Explode fonksiyonu metinleri bölmeye yarar.Explode fonksiyonu ile bir metni istediğimiz karakterden parçalara ayırabiliyoruz.Explode fonksiyonu parçalara böldüğü metinlerin sonucu dizi haline getirir ve her bir parçayı bir eleman yapar.2 parametre ile çalışır, ilk parametresine bölünecek karakter, ikinci paramteresi ise parçalara ayrılacak olan metin ya da metnin buldunduğu değişken yazılır.Şimdi bir örnek ile işi daha çık hale getirelim. 



 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<?php
$a 
'burası ilk kısım. Burası ise ikinci kısım'$b explode('.'$a);
 
echo 
$b[0]; ?> 



Bu kodu çalıştırdığımız zaman ekranda burası ilk kısım yazacaktır çünkü sonuc olarak $b[0]'ı yani ilk parçayı istedik.Eğer $b[1]'i isteseydik ekranda burası ikinci kısım yazacaktı. 

Bu derslikte bu kadar bir sonraki derslerde buluşmak üzere... 

17 Mayıs 2014 Cumartesi

Form Elemanları ve Kullanımları


 Öncelikle "form nedir?Ne işe yarar?Nerelerde kullanılır?" sorularını cevaplayarak başlamak istiyorum.
Php'de kullanıcıdan veri almamıza yarayan elemanlar form elemanları denir.Form elemanları sayesinde sayfayı ziyaret eden kişiden bazı bilgiler alınıp sayfamızın bu bilgiler doğrultusunda davranmasını sağlayabiliriz.En çok kullanım örneği "yorum"dur.Sayfaya bir yorum yazmak için doldurduğunuz bölüm aslında bir formdur.Daha sonra bu fromdaki bligiler içe aktarılarak istenilen bölümlerde yayınlanır.

 Kafanız şimdi biraz karışık olabilir ama konu ilerledikçe anlayacaksınız.Php'ye bilgi göndermek için öncelikle bir arayüz tasarlamamız gerekmektedir.Bunun içinde öncelikle form elemanlarını tanımalıyız.

 Form elemanlarını yazmadan önce bütün elemanlarda olan başlıca özelliklerden bahsedelim.Her bir form elemanında "name" yani isim paramatresi bulunmak zorundadır.Bu parametre ile php'ye o elemanı tanıtmış oluruz.Bir de "value" yani var sayılan değeri vardır.Bu form elemanımızın üstünde ne yazacağını gösterir.Aşağıdaki tabloyu inceleyerek form elemanlarının özelliklerini ve görünüşlerini öğrenebilirsiniz.

İşte HTML form elemanları ve örnek kullanımları:

Eleman adı          Açıklaması             Örnek kod                                          Görünümü

     text                  metin kutusu          <input name="metin" type="text"
                                                          value="yazınız" />                              

                            şifreler için kul-     <input name="gizli" type="password"
   password           lanılır.Yazılanlar     value="çok gizli" />
                             gözükmez.                                                                      

   checkbox           İşaretleme           <input name ="kutucuk"
                               Kutusu                type="checkbox" />                                      

                                                      <input name="meyveler" type="radio"
     radio            Seçim Butonları      /> Elma <input name="kutucuk"
                                                       type="radio" value="muz" /> Muz                 Elma Muz

   file              Dosya Gönderme   <input name="SEÇ" type="file"/>

textarea         Mesaj Kutusu         <input name="mesaj"
                                                    type="textarea" value="yaz/>                    

Submit        Formu Gönderme     <input name="gönder" type="submit"
                                                    value="yolla gelsin" />                                       


Alın buda php içinde kullanabileceğiniz örnek bir form.Kendinize göre de düzenleyebilirsiniz.

Kod Çizelgesi     Kod Dili: phpHepsini Seç

<form action="index.php" method="post">
 
İsim: <br/>
 <
input type="text" name="isim" /><br/>
 
Soyisim: <br/>
 <
input type="text" name="soyisim" /><br/>
 
E-mail: <br/>
 <
input type="text" name="mail" /><br/>
 
Cinsiyet: <br/>
 <
input type="radio" name="cinsiyet" value="e" /> Erkek<br/>
 <
input type="radio" name="cinsiyet" value="k" /> Kadın<br/>
 
Mesaj: <br/>
 <
textarea name="mesaj"></textarea><br/>
 <
input type="submit" value="Formu gönder" />
</
form


FORM GÖNDERME YÖNTEMLERİ


   İki tane form gönderme yöntemi vardır.İkisinide kısaca açıklayayım.Get metodunda forumdaki değerler adres çubuğumuz üzerinden götürülecektir.Yani forumda yazdığımız değerler adres çubuğumuzda gözükecektir.Post metodunda ise yazdığımız veiler adres çubuğunda gösterilmez.Tarayıcı tarafından içten iletilir. 

Bilmemiz gerek bir şey daha get metodunu sadece forumlarda kullanmayız ama post metodunu sadece forumlarda kullanırız. 

Gelen Formu Kontrol Etmek



    Bir sayfaya form gönderilip gönderilmediğini,form gönderildiyse boş olup olmadığını kontrol etmek için if,empty() ve isset()fonksiyonlarını kullanırız. 

Şimdi bir deneme yapalım.İki tane php dosyası oluşturalım.Birincisinin adı gönderen.php ikincisinin adı ise alan.php olsun. 

Şimdi gönderen.php için basit bir form yazalım. 



 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<form action="alan.php" method="post"Kullanıcı:<br/>
<
input type="text" name="kullanici" /><br/> Şifre:<br/>
<
input type="password" name="sifre" /><br/>
<
input type="submit" value="Giriş yap" />
</
form



   Şimdi ise alan.php için bir kontol dosyası oluşturalım. 



 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<?php if(isset($_POST['kullanici']) && isset($_POST['sifre'])) {
   
$kullanici $_POST['kullanici'];
   
$sifre $_POST['sifre'];

   if(empty(
$kullanici) || empty($sifre)) {
      echo 
'Lütfen boş bırakmayın';
   } else {
      echo 
'Girilen kullanıcı adı: ' $kullanici ' şifre: ' $sifre;
   }
} else {
   echo 
'Lütfen formu kullanın';
?> 



  Çok mu karışık geldi.O halde biraz açıklayayım :D 

  İlk koşulda “isset($_POST['kullanici']) && isset($_POST['sifre'])” $_POST['kullanici'] ve $_POST['sifre'] diye değişkenler tanımlanmış mı diye sorduk.Eğer ikisinden biri bile tanımlanmamışsa hata verecek şekilde ayarladık.İkisi de tanımlı ise bir sonraki kontrol noktasına geçecek.Burda ise “empty($kullanici) || empty($sifre)” değişkenleri boş mu diye sorduk.Eğer ikisinde biri bile boşşa yine hata verecek şekilde ayarladık. 

10 Mayıs 2014 Cumartesi

Php'de Operatörler

 Bu konumuzda sizlere php'deki aritmetik,mantıksal ve bazı özel operatörleri anlatacağım. 

Aritmetik Operatörler


Matematik dersinden de bildiğimiz 4 temel işlem olan toplama,çıkarma,bölme ve çarpma işlemleri aritmetik operatör olarak adlandırılmaktadır. 

4 temel işlemi anlatmıycam bilmeyende lütfen burayı terk etsin   :g 

Ama kullanımı hakkında bir örnek verebilirim. 


 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<?php
$a
=5$b=8$c=12$d=18$işlem=$b+$c*$d+$a;
echo 
$işlem?> 



Sonuç olarak 229 gözükecektir.Eğer işlemde öncelik konusunu unutmadıysak önce çarpma işlemi yapılır bunu hatırlıyoruz demektir :D 

Kaçış Operatörü 

  Ters bölü "\" işaretidir.Php'de bazı hataları önlemek için kullanılır.Şimdi bir örnek üzerinde açıklama yapalım. 



 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<?php
$a
="Bu elbise 23\$";
echo 
$a?> 



Ekranda bu elbise 23$ yazmaktadır.Şimdi ee noldu ki şimdi diye sorabilirsiniz hemen cevaplayayım.Tırnakiçinde yazdığımız işlemler mantıksal işlemedn geçmiyordu.Ama "$" işareti değişken belirlerken kullanılıyor yani mantıksal işlem gerektiriyor.Bu durumda burda bir çakışma söz konusu olacaktır kaçış operatörünü kullanarak "$" işaretinin değişken tanımlamada kullanılmadığını php'ye söylemiş olduk. 
  
  Aynı işlem tırnak içinde içinde tırnak kullanıldığındada gerçekleşir.İlerledilkçe bu konuya daha hakim olacaksınız.Kafayı fazla yormamak gerekir :D 

Atama Operatörü


Atama operatörleri değişkenlere değer atamak için kullanılır.Temel atama operatörü eşittir "=" işaretidir.Bir değişkenin bir başka değişkene ya da sayıya ya da bir dizi işleme eşit olduğunu belirtir. 

Şimdi size bir diğer atama operatörlerini tanıtacağım. 

  Operatör     Kullanışı             Karşılığı 
    +=   $a   += $b $a = $a + $b 
    -=   $a   -= $b $a = $a – $b 
    *=   $a   *= $b $a = $a * $b 
    /=   $a /= $b         $a = $a / $b 
    %=   $a %= $b $a = $a % $b 
    .=   $a .= $b         $a = $a . $b 
Hemen bir örnek verelim: 



 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<?php
$a
=10$b=6$a*=$b;
echo 
$a?> 



Sonuç olarak 60 gözükecektir.Kendiniz deneyerek bu operatörleri daha iyi kavrayabilirsiniz. 

Bir Değer Arttırma Ya Da Eksiltme


Bir değişkene sadece bir değer eklemek(yani +1 işlemini uygulamak için) için "++",bir değer eksiltmek için ise "--" operatörleri kullanılır. 
Örnek: 


 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<?php
a
$=25a$++;
echo 
$a?> 



Karşılaştırma Operatörleri


Birden fazla değişkeni beirli koşullara göre karşılaştırmaya yaran operatörlere denir. 

Operatör İsim                 Kullanılışı 
  ==       Eşittir               $a == $b 
  ===       Denktir               $a === $b 
  !=       Eşit değildir         $a != $b 
  !==       Denk değildir       $a !== $b 
  <>       Eşit değildir         $a <> $b 
  <       Küçüktür         $a < $b 
  >       Büyüktür         $a $b 
  <=       Küçük ve eşittir $a <= $b 
  >=       Büyük ve eşittir $a >= $b 

Karşılaştırma operatörü olarak yazdığımız çift eşittir "==" işaretine dikkat edelim.Eğer bir değerin başka bir değere eşit olduğunu belirtiyorsa çift eşittir,tanımladğımız ya da tanımlıyor olduğumuz bir değişkene değer atarken tek eşittir "=" işareti kullanılmalıdır. 

Mantıksal Operatörler


Birden fazla değişkeni karşılaştırıp değerlendirmek için kullanılırlar. 

Olumsuzsa(!) operatörü: "!$a" şeklinde kullanılır.Eğer $a değişkenimiz olumsuz yani FALSE yani "0" ise bize TRUE yani "1" değerini verir. 

Ve(&&;) operatörü:"$a&&$b" şeklinde kullanılır.Eğer $a ve $b olumlu(1) ise bize TRUE(1) değerini verir.$a ya da $b'den biri olumsuzsa bize FALSE(0) değerini verir. 

Ya da(||) operatörü:"$a||$b" şeklinde kullanılır.$a ya da $b değerlerinden bir tanesi olumluysa yani TRUE(1) ise bize olumslu(1) değerini verir.Eğer ikiside FALSE(0) ise bize olumsuz(0) değerini verir. 

9.sınıftaki mantık konusuyla aynıdır. 

Hata Bastırma Operatörü 

Hata bastırma operatörü olarak "@" kullanılır.Php'de her yerde kullanılabilir.Php'de ekrana hata yazısı yerine FALSE(0) değerini vermemize yarar. 

Örnek: 


 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<?php
$a
=100$b=0$hatalı=@($a/$b);
echo 
$hatalı?> 


Normalde 100'ü 0'a böldüğümüzde hata verecektir.Fakat hata operatörünü kullandığımız için ekranda "0" yazacaktır. 

Operatörler bu kadar.Bu konuya sıkı çalışmanızı tavsiye ederim çünkü php operatörleri cok sık kullanılmaktadır.Sağlıcakla kalın...