Welcome, Guest Login|Sign Out

0
[postlink] https://web-programcisi.blogspot.com/2012/01/ziyaretci-mesaj-formu.html[/postlink]
Bu dersimizden önce Mysql veritabanı üretmeniz gerekiyor. Başlamadan önce şu dersi okuyarak bir veritabanı tablosu üretmelisiniz.Php ile birçok veritabanı işlem yapılabiliyor ama Veritabanı mantığını anlamanız için önce o dersi iyice incelemelisiniz.

Php dersimize Elimizde 4 Sütunu bulunan bir veritabanı tablosu olduğunu kabul ederek başlıyoruz.
mesajno
yazan
mesaj
zaman

1-HTML MESAJ FORMU
Öncelikle ziyaretçilerimizin kullanacağı bir mesaj formu yapmamız gerekiyor.Mümkünse Dreamweaver ile aşağıdaki düğmeleri kullanarak bir form hazırlayın. Önce form sonra onun içine textfield ve buton.

form1

Formun bitmiş hali:
form2
Dreamweaver yoksa yada form yapamazsanız hazırladığım şu form ve boş php sayfası örneğini indirebilirsiniz:Dosya indir : ziyaretcibos.zip


Dremweaver hiç bilmiyorsanız şu derse de göz atabilirsiniz: dreamweaver ile web sayfası
Burada dikkat etmeniz gereken nokta: Bu kısımda herhangi bir PHP kodu falan yazmıyoruz. bunlar basit HTML bilgisidir. HTML bilginiz yoksa bile dreamweaver ile kolayca bir form yapabilirsiniz.
Formu oluşturan HTML kodları: Elinizde dreamweaver yoksa Not defterine aşağıdaki yazıyı yapıştırıp. mesajformu.html adı ile kaydetmeniz yeterlidir.

Buradaki en önemli konu formun hedef alanıdır: action=""  Bu formun gönder tuşuna basıldığında web sayfamızda hangi php´nin çalışacağını belirtir. 

action="kaydet.php">

isminiz:    isim" id="isim" />

Mesajınız: text</span></b>" id="text" cols="45" rows="5">





Diğer önemli nokta ise formdaki yazı kutularına verdiğimiz isimlerdir. yukarıda kırmızı ile işaretlediğim yerlere dikkat edin. Action kısmını unutursanız Form aynı sayfaya gider. sayfamız html olduğu için de hiçbir işe yaramaz.

2- MESAJLARI PHP İLE ALMAK
Durumu anlamanız için aşağıdaki resmi inceleyin.
form3
Formun action kısmındaki yazıya göre baka bir sayfaya gönderiliyor. Bu örnekteki sayfamızın adı kaydet.phpolacak.
Yani birisi mesaj yazıp kaydet tuşuna basınca kaydet.php çalışacak.
Şimdi kaydet.php sayfasını yapalım. Aşağıdaki kodu yazın ve uygulayalım.


$civciv=$_POST["isim"];

echo " Sayın". $civciv. " Siz bu formu yollayacak kadar karizmatik değilsiniz";




Kodlara dikkat ettiyseniz hiçbir veritabanı komutu yok. Peki burdan ne öğreneceğiz. Form geldiğinde bilgiyi nasıl işleyeceğimizi öğreneceğiz.
Bir Php sayfası çalıştığında eğer adres satırına sayfa adı yazılarak çağrılmışsa $_GET parametresi çalışır.
şunu deneyin: http://localhost/kaydet.php?isim=Necmi
bu durumda $_GET["isim"] şeklinde otomatik oluşan bir değişkenimiz olur.
Eğer php Sayfası bir Form gönderilerek çalıştırılmışsa $_POST parametresi kullanılır. şimdi bunlar ingilizce diye hemen kaçmayın. ben size Türkçesini de yazarım:
$_GET:  Al Getir
$_POST: Postala

Şimdi yukarıda neden zarf çizdiğimi anlamışsınızdır. HTML sayfasındaki form üzerine dikkat etmediyseniz şu ufak ayrıntıyı göremezsiniz:

method="post" action="kaydet.php">


Bu form bir posta mektubudur ve onu alan PHP sayfasında otomatik olarak $_POST isimli bir değişken oluşur. bu değişken paketlenmiş bir Değişkendir. aynı isimle birden fazla bilgi çağrılabilir:
kaydet.php çalışırken şu iki değişkeni kullanabiliriz:
$_POST["isim"];
$_POST["text"];
Bu isim ve text nerden geldi diye soracak olursanız en yukarıdaki
ile başlayan HTML sayfasını inceleyin bakalım. orada isim ve text adında iki bölüm var mı ?


HTML sayfasına dikkatli bakarsanız görürsünüz:




isminiz:    isim" id="isim" />

Mesajınız: text</span></b>" id="text" cols="45" rows="5">



Yani: Form üzerinde belirtilen mesaj kutularının hepsi $_POST değişkeninin içinde paketlenmiş olarak bulunur.


2- MESAJLARI VERİTABANINA KAYDETMEK
Şimdi formla gelen bilgiyi veritabanına kaydedelim. Veritabanı konusuna hiç başlamadıysanız şu iki dersi mutlaka okuyun. çünkü burda bağlantı nedir diye anlatmayacağım.Şurda anlattım: Mysql Bağlantı

Önceki derslerden Query dilini hatırlayın. Burada bilgi kaydetmek için INSERT INTO kelimesi ile başlayan query cümlesini kullanacağız.
Cümle şöyle olacak:


INSERT INTO `mesajlar` (`yazan`,`mesaj`,`zaman`) VALUES (´ahmet´, ´selam millet´, NOW() );



Kırmızı ile gösterdiklerim. Sütun isimleri Mavi ile gösterdiklerim ise kaydedilecek bilgiyi belirliyor. Yani sağdaki bilgiyi soldaki alanlara sıra ile kaydetmesini söylüyoruz.
kaydet.php sayfasında önce veritabanı bağlantısı yapıp ardındna bu komutu çalıştırmanız yeterli, tek farkla: isim hanesine ahmet yazmayacağız. $_POST[isim] yazacağız.


mysql_connect("localhost","root","");
mysql_select_db("kutuphane");


$ad=$_POST["isim"];
$mesaj=$_POST["text"];

mysql_query("INSERT INTO `mesajlar` (`yazan`,`mesaj`,`zaman`)
VALUES (´$ad´, ´$mesaj´, NOW() );");


echo "Mesaj Kaydedildi";

Hepsi bu kadar bitti smiley
Madem bu kadar kısaydı millet neden sayfalarca kod yazıyor diye sorabilirsiniz. Güvenlik sebebi ile birkaç ufak ekleme yapmak gerekiyor. Bunları aşağıdaki bitmiş örnekte bulabilirsiniz. Ama işin özünü anlamadan güvenlik işimize yaramaz.

Not: Alan isimlerindeki ve Veritabanı ismindeki Küçük/Büyük harflere dikkat edin. Ben yaptığım örnekte sorun çıkmasın diye hepsini küçük harfle yazdım.

Ziyaretçi Mesaj Formu

0
[postlink] https://web-programcisi.blogspot.com/2012/01/php-fonksiyonlar.html[/postlink]
PHP FONKSİYONLARI
Diğer derslerimizde olduğu gibi Fonksiyonlarıda en basit haliyle öğreneceğiz. Fonksiyonlar çoğunlukla işlerimizi daha hızlı yapmak için kullanılır. Hiç Fonksiyon kullanmadan da birçok işlemi yapabilirsiniz. Fonksiyon kullanınca sadece daha hızlı ve daha kolay yaparsınız.
Aşağıda sembolik bir Php fonksiyonu görüyorsunuz:
functionphp
Gerçek hayatta böyle birşey mümkün değildir ama programcılık öğrenmeye başladığınıza göre bu dünyada herşeyin mümkün olduğunu öğrenmeniz gerekir.

Fonksiyonları yaptıkları işe göre iki gruba ayırabiliriz.
1. işlem sonucu çıktı veren fonksiyonlar
2. işlem sonucu dönüş veren fonksiyonlar.

Bunlara iki örnek vererek uygulayalım:
1. Çıktı veren fonksiyonları bu örnekle hemen anlayacaksınız. Ekrana yazdırma işlemi için print kullanıyoruz. ama keşke bu fonksiyon Türkçe olsaydı hem daha kolay hatırlardık hemde yeni başlayanlar zorlanmazdı, o zaman buyrun size Türkçe yazdırma komutu.

function yaz($kelime)
{
     print $kelime;
}

Bu fonksiyonu kullanırken istediğimiz yazıyı parantez içinde yazmamız yeterlidir.
Örnek: 

yaz ( "İşte Php Türkçe oldu" );

Fonksiyon kullanılırken sayfanın başında bir kez tanımlanması yeterlidir. daha sonra sayfanın altında tekrar tekrar onu kullanmak mümkündür.
Şimdi de bir sayının karesini alacağız diyelim:


function kareyaz($sayi)
{
   echo $sayi * $sayi;

}

Bu şekilde bir fonksiyon pratikte pek iş görmez ama anlamanız açısından faydalı olacaktır. Fonksiyon çalıştığında sonucu direkt olarak ekrana yazdırmaktadır. Şimdi de bu örneğe bağlı olarak diğer fonksiyon türüne bakalım:
2. Dönüş Veren Fonksiyonlar: Bu tip fonksiyonlarda bulunan sonuç başka bir işlemde kullanılmak üzere gönderildiği yede döner. bu kısım fonksiyonun esas mantığını anlamanız açısından çok önemlidir.


function karebul($sayi)
{

  return $sayi * $sayi

}

Fonksiyon içinde herhangi bir yazdırma işlemi yapmıyoruz. Evet bir sonuç buluyor ama bu sonuç nereye gidiyor ? Kullanımı için aynı sayfada aşağıdaki şekilde bir kod yazıyoruz:


$sonuc= karebul(5);

Bu satır çalıştığında karebulma işlemi sonucu bulduğu sonucu $sonuc isimli değişkene aktaracaktır. Daha sonra biz bu $sonuc değişkenini ister yazdırıp istersek başka bir işlemde kullanabiliriz.

PHP Fonksiyonlar

0
[postlink] https://web-programcisi.blogspot.com/2012/01/php-dizilerarray.html[/postlink]
Dizi (ARRAY)

Diziler grup halindeki değişkenler olarak tanımlanabilir. Dizi içersinde yüzlerce değişken olabilir. Dizi elemanları index adı verilen sıra numarası ile çağrılır. Sıra numarası 0 (sıfır) ile başlar. Aşağıdaki örnek dizi haftanın günlerini göstermektedir.

$hafta=array("Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi","Pazar");


Dizi içindeki herhangi bir elemana ulaşmak için onu numarası ile çağırabilirsiniz.

print $hafta[1];

Bu şekilde yazılan bir komut bize "Salı" gününü yazacaktır.



index Tanımlama:

Dizi tanımlama sırasında sayıları kendimiz vererek index numaralarını değiştirebiliriz. Örneğin yukarıdaki örnekte "Pazartesi" için 1 sayısı kullanmak isterseniz aşağıdaki gibi yazılması gerekir.

$hafta[1]="Pazartesi";
$hafta[2]="Salı";
$hafta[3]="Çarşamba";

...
...
Bu durumda dizinin ilk elemanı Pazartesi oldu.


Dizi içersine sonradan eleman eklemek isterseniz ve sıra numarasının kaç olduğunu bilmiyorsanız boş değer girebilirsiniz. Bu durumda Php bir sonraki numarayı otomatik olarak atayacaktır.

$Personel[] = "Ahmet";
$Personel[] = "Ayşe";

( Personel kelimesinden sonra boş bir parantez yazılmıştır.)

Örnek: Php ile kullanılan date komutu haftanın günlerini ingilizce yazar. ama bize Türkçe isimler gerektiği olduğu için bunu nasıl yapacağımızı dizilerle görelim

$hafta=array("Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi");

$gun=date("w");

print $hafta[$gun];
Dizinin ne olduğunu anladıysanız size göre bu örnek basit kalacaktır. bilmeniz gereken tek şey sonradan eklediğimiz date komutudur. bu komut parantez içine yazılan harfe göre farklı değer verir.
date("w") : haftanın kaçıncı günü olduğunu yazar. Pazar=0, Pazartesi=1, Salı:2 ...
Bu durumda diyelim ki biz Salı günündeyiz o zaman $gun=2 şekline dönüşecektir.

PHP Diziler(Array)

0
[postlink] https://web-programcisi.blogspot.com/2012/01/php-donguler.html[/postlink]
Döngüler tekrar eden işlemleri yapmakta kullanılır. Başlangıçta anlamsız gelebilir ama 100 üyeli bir web sayfanız varsa hepsinin adını tek tek yazmak yerine döngü kullanarak üç satırda işinizi bitirebilirsiniz.
Daha basit olduğu için FOR döngüsü ile başlayacağız. For döngüsü verilen artırma değerine göre döner. Dönerken aradaki işlemleri tekrar tekrar yapar. yazılması şu şekildedir.
for$değişken ; dönme şartı her dönüşte yapılacak işlem)

$değişken: dönmeye ilk başladığı anda bir değişken üretmeyi sağlar

dönme şartı: Buradaki şart aslında bir IF komutudur. sorulan soru doğru ise dönmeye devam eder.
her dönüşte yapılacak işlem: Dönme sırasında herzaman birer birer arttırmak zorunda değilsiniz. bu işlemi değiştirip üçer üçer veya beşer beşer saydırabilirsiniz.

for
Örnek:


for ( $say=1 ; $say < 100 ; $say++ )
{

print " şu anda $say sayısındayım";

}

bu komutu çalıştırdığınızda. şöyle bir sonuç çıkar:
şu anda 1 sayısındayım
şu anda 2 sayısındayım
şu anda 3 sayısındayım
şu anda 4 sayısındayım
....
Bu şekilde 99 kere devam eder. verilen şart $say <100 olduğu için $say==100 olduğunda dönme sona erer.

Başka bir örnek: Tek sayıları yazdıralım

for ( $say=1 ; $say < 100 ; $say=$say +2 )
{

print " Tek sayılar: $say ";

}

While Döngüsü
While döngüsü üsttekinin biraz daha sade halidir. Fakat sadece sayılar için kullanılmaz. While döngüsü tek bir şarta bağlı olduğu için dikkatli kullanmak gerekir.
Yazılışı:
While (Soru)
{
// Soru doğru ise yapılacak işlem

}

örnek: $civciv örneğini tekrar yapalım.

while($civciv=="")
{
print " Açım, Çok acıktııım";
}

Bu örneği çalıştırdığınızda ekrana bir milyon kere Açım yazdığını göreceksiniz. Sebebi ise $civciv´in hiçbir zaman içi dolmuyor ve While her dönüşünde aynı soruyu soruyor, cevap Evet ise dönmeye devam ediyor.
Yukarıdaki örneği aşağıdaki şekilde değiştirdiğimizde ise sadece 10 kere dönecektir.

while($civciv < 10)
{
print " Açım, Çok acıktııım";

$civciv = $civciv + 1 ;
}

Bu örnekteki en önemli kısım aslında $civciv = $civciv + 1 satırıdır, Eğer bunu anlayabiliyorsanız programlama sizin için tamam demektir.
Şimdi bu kısma dikkatle okuyalım:
Programlama yaparken bilgisayar eşitliğin sağındaki işlemi yapar ve sol tarafa aktarır. Sağ taraftaki değişken yapılan işlemden etkilenmez.
Bu işlem sonunda $ciciv bir sayı arttırılmış olur. Diyelim ki: $civciv=5 bu işlemden sonra $civciv=6olmuştur.

PHP Döngüler

0
[postlink] https://web-programcisi.blogspot.com/2012/01/php-if-else-yaps_24.html[/postlink]
hp ile Web sayfası yaparken en çok kullanacağınız komutlardan biri IF komutudur. Örneğin: kullanıcının şifresi doğru yazılmış mı ?, email adresi boş mu bırakılmış ?, şehir olarak istanbul seçilmiş mi ?
Bunların hepsinde dikkat ederseniz bir soru soruyoruz ve iki cevabı var. bu tip iki cevaplı sorular için ifkomutu kullanılır. IF komutunu Türkçeye Eğer olarak çevirebiliriz.

örnekler:
Eğer üye şifresi doğruysa giriş yap
Eğer üye adı boş ise uyarı ver
Eğer Giriş yapılmamış ise uyarı ver ... gibi

Php ile bu komutu kullanırken aşağıdaki gibi yazılır


if (soru)
{
Soruya verilen cevap evet ise bu kısımdaki kodlar çalışır,
Aksi halde bilgisayar bu kısım yokmuş gibi davranız
}


örnek: üye ismi boş olup olmadığı kontrol ediliyor.

if($isim == "" )
{
print " Adınızı yazmayı unuttunuz";

}

Soru kısmını inceleyelim.
$isim=="" buradaki çift eşittir soru olarak algılanabilir.

mesela aşağıdaki de bir sorudur. Üye ismi Ahmet ise ekrana Hoşgeldin yazısı çıkar.
if ( $isim == "Ahmet")
{
print "Hoşgeldin";

}


If komutu ile birlikte sadece == kullanılmaz. IF ile kullanabileceğiniz bazı parametreler aşağıda verilmiştir:
< Küçüktür
> Büyüktür
!= Eşit Değildir
== Eşittir
=== Eşittir ve Aynı cinstendir

Buraya kadar IF komutunda Evet cevabına göre yapılan işlemleri gördük. şimdi e Hayır cevabını işin içine katalım.
tavuk
Resimdeki Civcivin sorusuna cevap olarak iki seçeneği var Evet-Hayır bu durumda IF-Else komutunu kullanabilir.

örnek: if için sorumuz şu civciv acıkmış mı ? Acıkmış ise soruya verilecek cevap Evet olacaktır ve ekrana çok acıktım yazısı çıkacak. Cevap hayır ise Karnım tok yazısı çıkacaktır. Bu örneği uygularsanız herzaman Çok acıktım diyecektir, bunun sebebi $civciv isimli değişkenin içine hiçbirşey koymadığımız için içerisi boştur.

if($civciv=="")
{
print "Çok acıktııım";
}else{
print "Karnım Tok";
}
Civcivin karnını doyuralım ve içerisine Buğday koyalım.
(Civciv bu, heralde Fasulye yemiyecekti smiley )

$civciv="Buğday";

if($civciv=="")
{
print "Çok acıktııım";
}else{
print "Karnım Tok";
}


Bu aşamada değişken kavramını hatırlamakta fayda var. Herzaman böyle sabit örnekler olmayacağına göre gerçek hayatta kullanılan bir örnek verelim.

$buay = date("m");
$bugun= date("d");

if($bugun ==15 AND $buay ==11)
{
Print "Bugün benim doğum günüm";
}
Örnekteki date komutu oldukça basit bir Php komutudur. takvime bakmanıza gerek kalmadan tarihi programda kullanmayı sağlar.

date("m") : Month , Ay
date("d") : Day , Gün

date ile ilgili diğer bilgiler için şuradan Fonksiyonlara bakabilirsiniz: Date

Bu örnekte dikkat etmeniz gereken AND isimli bağlaçtır. AND (Türkçesi: VE) sayesinde aynı anda birkaç soruyu birleştirebiliriz. yukarıdaki örneği şu şekilde okumak mümkün.
Bugün==15 VE Buay==11 ise print çalışsın. böylece tam doğum gününüzde web sayfanızın tepesinde bir uyarı çıkartmanız mümkün.

PHP İf-Else Yapısı