Sehri-Paylasim
Hosgeldiniz
Sehri-Paylasim
Hosgeldiniz
Sehri-Paylasim
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Sehri-Paylasim


 
AnasayfaAramaLatest imagesKayıt OlGiriş yap
Giriş yap
Kullanıcı Adı:
Şifre:
Beni hatırla: 
:: Şifremi unuttum
En iyi yollayıcılar
Admin
Bir Dosya İşlemi Örneği: Konuk Defteri Vote_lcapBir Dosya İşlemi Örneği: Konuk Defteri Voting_barBir Dosya İşlemi Örneği: Konuk Defteri Vote_rcap 
daba31
Bir Dosya İşlemi Örneği: Konuk Defteri Vote_lcapBir Dosya İşlemi Örneği: Konuk Defteri Voting_barBir Dosya İşlemi Örneği: Konuk Defteri Vote_rcap 
hidelgo41
Bir Dosya İşlemi Örneği: Konuk Defteri Vote_lcapBir Dosya İşlemi Örneği: Konuk Defteri Voting_barBir Dosya İşlemi Örneği: Konuk Defteri Vote_rcap 

 

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

Aşağa gitmek 
YazarMesaj
Admin
Kurucu / Root
Admin


Mesaj Sayısı : 552
Kayıt tarihi : 09/07/10
Yaş : 41
Nerden : Bursa

Bir Dosya İşlemi Örneği: Konuk Defteri Empty
MesajKonu: Bir Dosya İşlemi Örneği: Konuk Defteri   Bir Dosya İşlemi Örneği: Konuk Defteri EmptyC.tesi Eyl. 24, 2011 8:14 am

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>
****** http-equiv='content-type' content='text/html; charset=ISO-8859-9'>
****** 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>
****** http-equiv='"content-type' content='text/html; charset=ISO-8859-9'>
****** 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>
****** http-equiv='"content-type' content='text/html; charset=ISO-8859-9'>
****** 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.
Sayfa başına dön Aşağa gitmek
https://sehripaylasim.yetkin-forum.com
 
Bir Dosya İşlemi Örneği: Konuk Defteri
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» PHP Renk Tablosu Örneği
» AkelPad – Ücretsiz Not Defteri Programının Geliştirilmiş Hali
» Dosya okuma: fgets(), fread() ve fgetc()

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
Sehri-Paylasim  :: Forum :: HTML, PHP, ASP, PERL-
Buraya geçin: