Linuxweb.Tr.GG Online PHP,MYSQL Kılavuzu - Bir Dosya İşlemi Örneği: Konuk Defteri
   
Menü
  Ana Sayfa
  LinuxWeb Anket
  Bedava Linux Siteleri Evinize Teslim
  Linux Haberleri
  Linux Destek, Teknoloji ve Eğitim Kurumları
  Linux E-Book
  Linux Siteleri
  Windows'da Linux Temaları
  Temel Linux Komutları
  Temel Linux Komutları 2
  Linux Kitapları ve Dergileri
  Pardus Nedir ?
  Pardus İndir
  Pardus Değişenler
  Linux Dersleri 1
     
  PHP ve MYSQL
  PHP
  PHP'ye Giriş
  PHP ve Veritabanı
  PHP ve Web Sunucusu
  Unix/Linux Sistemleri
  Linux'ta program derlediniz mi?
  Güvenli socket ve Internet Erişimi Katmanı
  Windows-PWS ve IIS
  Browser Yetenek Dosyası: Browscap.ini
  PWS 4.0
  Windows'da Apache!
  Windows'da MySQL
  PHP Dili
  PHP'nin Yapı Taşları
  PHP programını durdurmak
  Değişkenler
  Veri Türleri
  Tür Değiştirme
  Fonksiyon
  Escape
  Dört yararlı fonksiyon
  İşlemciler (Operatörler)
  Bir Arttırmak veya Azaltmak için
  Sabit Değerler
  Tarih ve saat Verisi
  PHP'de Program Denetimi
  if Deyimi
  switch deyimi
  switch için kısa yol
  Döngüler
  while döngüsü
  do..while
  for döngüsü
  foreach
  Döngüyü sona erdirmek için: break
  Döngüyü sürdürmek için: continue
  Fonksiyonlar
  Fonksiyon Tanımlama ve Çağırma
  Fonksiyona varsayılan değer verebiliriz
  Değişkenlerin kapsamı: global ve static
  Dizi-Değişkenler, Nesneler
  Dizi Değişken Oluşturalım
  Dizi değişkenleri kullanalım
  Dizi Değişkenlerin Düzenlenmesi
  Dizileri birleştirme: array_merge()
  Dizilere değişken ekleme: array_push()
  Dizinin ilk elemanını silme: array_shift()
  Diziden kesit alma: array_slice()
  Dizileri sıralama: sort() ve rsort()
  İlişkili dizileri sıralama: asort() ve ksort()
  Nesneler
  Bir Nesne Oluşturalım
  PHP İşbaşında
  Formlar
  Form'dan GET Metoduyla Gelen Bilgiler
  URL Kodları
  Form'dan POST Metoduyla Gelen Bilgiler
  Form ile işlemciyi Birleştirelim
  Dosya "çıkartma"
  Dosya İşlemleri
  Harici Dosya (include)
  include mu, require mı?
  Dosyalar hakkında bilgi
  Dosya var mı? file_exits()
  Dosya mı, dizin mi? is_file() ve is_dir()
  Dosya okunabilir mi? is_readable()
  Dosya yazılabilir mi? is_writable()
  Dosya çalıştırılabilir mi? is_executable()
  Dosya boyutu: filesize()
  Dosyaya son erişim tarihi: fileadate(), filemtime() ve filectime()
  Dosyalar oluşturma ve silme
  Dosya açma
  Bir Fonksiyonu durdurmak için: Öl!
  Dosya okuma: fgets(), fread() ve fgetc()
  fseek() ile ölçü belirleme
  Dosyaya yazma ve ek yapma: fwrite() ve fputs()
  Kullanımdaki dosyayı kilitleyin!
  Dizinlerle İşlemler
  Dizin içeriğini listeleme: opendir() ve readdir()
  Dizin oluşturma: mkdir()
  Dizin silme: rmdir()
  Bir Dosya İşlemi Örneği: Konuk Defteri
  Metin Düzenleme ve Düzenli İfadeler
  Temel Alfanümerik Fonksiyonları
  substr()
  trim()
  ord()
  strlen()
  chr()
  printf() ve sprintf()
  number_format()
  Tarih ve Saat Düzenleme
  Düzenli İfadeler
  Eşleştirme deyimleri ve işaretler
  Düzenli İfadelerde Özel Karakterler
  Karakter Grupları
  Düzenli İfade Fonksiyonları
  ereg() ve eregi()
  ereg_replace() ve eregi_replace()
  split()
  sql_regcase()
  PHP ile Veritabanı
  MySQL Veritabanı
  mySQL veri türleri
  PHP-MySQL İlişkisi
  PHP'de Güvenlik
  Parola ve SSL
  Tırnak İşareti Sorunu
  PHP Kaynakları
       

Bir Dosya İşlemi Örneği: Konuk Defteri

Böylece PHP ile "iş yapmak" için gerekli araçlarımıza bir yenisini ekledik. Artık PHP programlarımızdan sabit diskteki dosyalara ulaşmayı ve dosyalarla çalışmayı biliyoruz. Buraya kadar öğrendiklerimizi bir PHP programı üzerinde uygulayabiliriz. Bunun için birlikte bir konuk defteri yapalım.

Diyelim ki konuk defterimize sadeceziyaretçimizin adını, elektronik posta adresini ve kısa bir mesajını isteyeceğiz. Öyle bir sayfa yapalım ki; ziyaretçi bu sayfayı ilk kez açtığında, yani henüz Form'dan sunucuya bir veri gelmemiş dolayısıyla $HTTP_POST_VARS dizi değişkenin içinde değer bulunmadığı sırada, programımız bu durumu belirleyerek ziyaretçiye konuk defteri Form'nu sunmalı; ziyaretçi formu doldurup gönder düğmesini tıkladığı zaman programımız bir yandan ziyaretçinin gönderdiği bilgileri kendisine gösterir ve teşekkürlerimizi aktarırken, diğer yandan da bu bilgileri bir düzyazı programı girmeli. Bu sırada ziyaretçimize isterse defterimizdeki diğer mesajları okuma imkanı da sunabilmeliyiz. Biraz uzunca olan şu programı kd_01.php adıyla kaydedelim. (Bu dosyayı, kitapçığın örnek kodlar arasında bulabilirsiniz; fakat bu alıştırmayı bir düz yazı programı ile buradaki örnek ifadeler ve alan/değişken adlarını değiştirerek tekrar etmeniz yerine olur:

<?php

if ( isset ( $HTTP_POST_VARS )) {

// Form dolduruldmuş ise

echo ("

    <HTML>

    <HEAD>

    <TITLE>PHP'de Misafir Defteri</TITLE>

    <meta http-equiv='content-type' content='text/html; charset=ISO-8859-9'>

    <meta http-equiv='Content-Type' content='text/html; charset=windows-1254'>

    </HEAD>

    <BODY>

    <P><font size='3' class='s4' face='Arial, Helvetica'>

    ");

Programımızın buraya kadar olan bölümü, if ile  $HTTP_POST_VARS dizi değişkeninde değer bulunup bulunmadığına ilişkin sınamanın olumlu sonuç vermesi halinde uygulanan bölümüne dahil. Burada dikkatini echo() fonksiyonu ile birden fazla satır yazdırdığımız çekmiş olmalı. echo(), fonksiyonuna Browser penceresine göndereceğimiz değerleri çift-tırnak içinde  yazacağımız için, HTML etiketlerinin çift-tırnak gerektiren etiketlerinde tek tırnak kullandığımıza dikkat edin. if sınavının olumlu sonucuna ilişkin bölümü yazmaya devam edelim:

$dosya_adi = "mesajlar.txt";

if (file_exists("$dosya_adi")) {

      $yazilacak_dosya = fopen($dosya_adi,'a');

      }

else {

      $yazilacak_dosya = fopen($dosya_adi,'w');

      }

foreach ($HTTP_POST_VARS as $anahtar=>$deger ) {

       $yeni_anahtar = strtoupper($anahtar);

       print ("$yeni_anahtar: $deger<br>");

       $metin = "$yeni_anahtar: $deger<br>";

       fputs($yazilacak_dosya, $metin);

       }

       fputs($yazilacak_dosya, date("D d M Y h:i:s"));

       fputs($yazilacak_dosya, "<br>n");

       fputs($yazilacak_dosya, "<center>

       <img src='nokta.gif' width=100% height=1 border=0></center>n");

fclose($yazilacak_dosya);

Konuk defteri programımızHTML için gerekli temel etiketleri ürettikten sonra bu bölümde veritabanı dosyası olarak kullandığımız mesajlar.txt isimli dosyanın bulunup bulunmadığını sınıyor; dosya varsa ek yapmak için ('a'),dosya yoksa yazmak için ('w'), dosyayı açıyoruz. Sonra, $HTTP_POST_VARS dizi-değişkenine Form'dan gelmiş olan anahtar=değer çiftlerinin her birini (yani, Browser'dan gelen örneğin "adi" değişkeni ve bunun değeri olan ismi) önce print() ile ziyaretçinin Browser'ına, sonra da fputs() ile biraz önce açtığımız veritabanı dosyasına yazdırıyoruz. Fakat burada bundan önce Form'dan küçük harf olarak gelen değişken adlarını (anahtarları) strtoupper() fonksiyonu ile büyük harfe çeviriyoruz.Şimdilik bu fonksiyonun üzerinde durmayın; biraz sonra metin düzenleme ve düzenli ifadeler konusuna geleceğiz. Ancak bu sırada ziyaretçilerin mesajlarını daha sonra güzel görüntelemek için aralarına çizgi olarak kullanmak üzere bir resim dosyasını IMG etiketi ile yerleştirdiğimize de dikkat edin. Bu grafik dısyasının eni-boyu 1 piksel olduğu halde burada ziyaretçinin Browser penceresinin eni kadar genişleterek çizgi üretmiş oluyoruz! Evet, koda devam:

echo ("

    <HTML>

    <HEAD>

    <TITLE>PHP'de Misafir defteri</TITLE>

    <meta http-equiv='"content-type' content='text/html; charset=ISO-8859-9'>

    <meta http-equiv='Content-Type' content='text/html; charset=windows-1254'>

    </HEAD>

    <BODY>

    <P><font size='3' class='s4' face='Arial, Helvetica'>

    <center><img src='nokta.gif' width=100% height=1 border=0></center>

    Sayın: $adi<br>

    Defterimi imzaladığınız için teşekkür ederim</P>

    <p>Ana Sayfaya Dönmek için <A HREF="index.htm"> tıklayın</A><BR>

    Mesajları okumak için<A HREF="mesajlar.php"> tıklayın</A>

    </BODY>

    </HTML>

    ");

}

Programımızın bu bölümünde, ziyaretçiye teşekkür ediyoruz; ve isterse diğer mesajları okumak üzere tıkllayacağı köprüyü sağlıyoruz. Mesajların çok uzaması halinde bu köprüyü bir sayfanın üstünde, bir de altında vermekte yarar var. Şimdi, programımızın Form doldurulduktan sonra işleyen bölümünü yazmış olduk. Taa en başta yaptığımız  $HTTP_POST_VARS dizi-değişkeninin değer içerip içermediğine ilişkin sınamanın olumsuz olması halinde, prıogramımız, işe buradan başlayacaktır:

else {

      echo ("

      <HTML>

      <HEAD>

      <TITLE>PHP'de Formlar</TITLE>

    <meta http-equiv='"content-type' content='text/html; charset=ISO-8859-9'>

    <meta http-equiv='Content-Type' content='text/html; charset=windows-1254'>

      </HEAD>

      <BODY>

      <FORM ACTION="$PHP_SELF" METHOD="POST">

      <P><font size='3' face='verdana, Arial, Helvetica'>

      Defteri imzalamadan okumak için <a href='mesajlar.php'>

      burayı tıklayın</a></FONT></P>

      <P><font size='3' face='Arial, Helvetica'>

      Adınız, Soyadınız: <br><INPUT TYPE="TEXT" NAME="adi"><BR>

      Elektronik Adresiniz: <br><INPUT TYPE="TEXT" NAME="adres"><BR>

      Mesajınız:<BR>

      <TEXTAREA NAME="mesaj" ROWS=10 COLS=30 WRAP=virtual></TEXTAREA>

      <BR><BR><BR>

      <INPUT TYPE="SUBMIT" VALUE="Defteri imzala!">

      <INPUT TYPE="RESET" VALUE="Tümünü sil!">

      </FORM>

      </BODY>

      </HTML>

      ");

}

?>

Bu bölümde çift-tırnak işaretlerini değiştirmek yerine, bunları ESC karakteri ile özel işaret değil, metin olarak ele alınacak hale getirdik. Programımız burada yine echo() ile düz ve basit bir HTML Formu oluşturuyor. Programın akış planını anlamış olmalısınız: ziyaretçi önce Form'u dolduracak ve gönder düğmesini tıklayacak.

Bu ACTION, Form'da INPUT alanlarındaki değerleri POST yöntemiyle yine kendisine gönderecek; böylece PHP, programı yeniden çalıştırırken, bu kez en baştaki şartın yerine geldiğini (yani $HTTP_POST_VARS dizi-değişkeninin değer içerip içermediğine ilişkin sınamanın olumlu sonuç verdiğini) görerek, işe baştan baştan başlayacaktır. Bu, INPUT etiketinin alanlarından oluşturulan değişkenlerden yararlanarak, ziyaretçiye bize ulaştırdığı bilgileri ve bizim teşekkür mesajımızı yollamaktan ibarettir.

Program bu şekliyle ne güvenlik önlemlerine sahip, yani kötüniyetli kişilerin INPUT alanlarına kötü niyetli kodlar yazmaları halinde bunları ayıklıyor; ne de ziyaretçinin boş Form gönderip göndermediğini sınıyor. Bu gibi işleri, PHP ile metin düzenlemeyi öğrendikten ve Düzenli İfadeler denen kavramı ile tanıştıktan sonra yapacağız.

   
Bugün 10 ziyaretçi (11 klik) Tekil ziyaretci sitemizi ziyaret etti...
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol