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

PHP $_COOKIE KULLANIMI





PHP $_COOKIE KULLANIMI

PHP $_COOKIE kullanımı na geçmeden önce ne olduğundan bahsedeyim arkadaşlar. Her ne kadar dilimize çerez olarak geçmiş olsa da aslında kurabiye anlamanı taşır. Ama aslında anlam olarak çerez bizim dilimize çok daha uygun yinede aklınızda olsun. $_COOKIE önceden atanmış bir çerezi okumak için kullanılır. Çerezlerin kullanım alanları genellikle üyelik sistemlerinde olur. İlla forum sitelerine girmişsinizdir orada hatırlarsanız beni hatırla kısmı var işte bu beni hatırla kısmı çerezler sayesinde olur sizin bilgisayarınıza bir dosya yükler ve sonra siteye girdiğinizde site bu dosyadan doğru sizi hatırlar ve böylelikle tekrardan kullanıcı bilgilerinizi girmek zorunda kalmazsınız. Çerezleri oluşturmak için setcookie() fonksiyonu kullanılır.  Söz dizimi ;
  1. <?php
  2. setcookie(Çerez adı, veri, süre, alanadı, https, http);
  3. ?>
Şimdi bu atanan parametrelerin tam olarak ne olduğunu açıklayayım ;
ParametreAçıklama
Çerez Adıİlk parametre çerez adıdır. Onu bu sayede çağırabiliriz.
Veri Çereze atanacak değer. Bu değer kişinin bilgisayarında saklanır
 o yüzden  kesinlikle  özel bilgilerini veya şifresini çerez olarak
kaydetmeyin. Onun yerine kullanıcıya özel bir anahtar üretin o
anahtara sahip kullanıcı direk şifresiz  girebilsin.
SüreÇerezin ne kadar süre tutulacağının yazıldığı alan.
YolÇerezin etkin olacağı yoldur. Yani ‘/film/’ şeklinde belirtilirse
çerez  sadece o  dizinde ve onun alt dizinlerinde etkili olur. Yada
direk ‘/’  şeklinde belirtilirse tüm dizinlerde etkin olur
Alan Adı (Domain)Çerezin etkin olacağı alan adı yazılır. Örneğin gmail.google.com
 yazılırsa  o çerez  sadece gmail alt alanında etkili olur.
httpsÇerezin https olarak aktarılacağı yani güvenli şekilde suncuya
 ektarılacağı belirlenir.
httpDirek olarak normal http protokolü şeklinde çerez sunucuya
aktarılır. HTTPS oranla daha az güvenlidir.
Şimdi örneklere geçelim tam olarak nasıl olduğunu anlayın ;
  1. <?php
  2. $veri = "Mustafa Sezer";
  3. setcookie("isim", $veri);
  4. ?>
Şimdi diyeceksiniz ki o kadar parametre gösterdin sen sadece iki tane kullandın. Çerez ataması hangi site üzerinden yapıldı ise onun domain otomatik eklenir, veri yolu direk tüm site için geçerli olacak, Tek sorun bu çereze süre ataması yapmadığımız için tarayıcı kapatıldıktan sonra otomatik çerez silinecek o yüzden mutlaka 3 parametreyi de kullanmalısınız Çerez Adı, Veri ve Süre mutlaka olmalıdır.
Şimdi iki tane php dosyası oluşturun isimleri kurabiye.php ve kurabiyeoku.php olsun ;
kurabiye.php ;
  1. <?php
  2. $kullanici_adi = "Mustafa Sezer";
  3. setcookie("isim", $kullanici_adi, time()+3600);
  4. ?>
kurabiyeoku.php;
  1. <?php
  2. echo $_COOKIE["isim"];
  3. ?>
Bu kodları yazdıktan sonra ilk olarak kurabiye.php dosyasını tarayıcımızda açalım girdikten sonra ekrana hiçbir şey gelmeyecek normal, ardından kurabiyeoku.php girdiğinizde karşınıza benim atadığım değer Mustafa Sezer yazacak.

PHP SESSION KULLANIMI


PHP SESSION KULLANIMI

PHP SESSION Kullanımı üyelik ile ilgili işlemlerde kullanır. Asıl amacı oturum açma değişkenidir. $_COOKIE benzerlik gösterir ancak aralarında şöyle bir fark var $_SESSION tutulan bilgiler kişinin bilgisayarında değil sunucuda tutulur. O yüzden $_SESSION çok daha güvenlidir. Ama nerede neyi kullanacağınızı dersleri takip ettikçe çok daha iyi anlayacaksınız. SESSION başlatmak için ve onları takip etmek için en başta her zaman session_start() fonksiyonunu yazmalısınız. Bu fonksiyon oturum açma işlemini başlatacaktır.

PHP SESSION Kullanımı

Yeni Bir Session Oluşturma ;

  1. <?php
  2. session_start();
  3. $kullanici_adi = "Sercan";
  4. $_SESSION["giris"] = $kullanici_adi;
  5. ?>

 Session Ulaşmak ;

  1. <?php
  2. session_start();
  3. echo $_SESSION["giris"];
  4. ?>

 Session Güncelleme ;

  1. <?php
  2. session_start();
  3. $yeni_kullanici_adi = "Angel";
  4. $_SESSION["giris"] = $yeni_kullanici_adi;
  5. ?>

 Session İle Oturum Açma

Okuldaki hocalar gibi basit örnekler verip sınavda zor soran öğretmenlere dönmeyeyim 🙂 şimdi nasıl oturum açama biliriz onun hakkında bir örnek yapalım ;
  1. <?php
  2. session_start();
  3. $kullanici_adi = "Sercan";
  4. $sifre = 123456;
  5. if(isset($_SESSION['loginin']) && $_SESSION['loginin'] == true){ // Daha önce oturum açıldıysa anasayfaya gidiyor.
  6. header("Location: index.php");
  7. }
  8. if(isset($_POST['kullaniciadi']) && isset($_POST['sifre'])){ // Burada input alanına giren verileri değişkendeki verilerle karşılaştırıyorum doğruysa anasayfaya değilse bulunduğu sayfaya hata çıkıyor
  9. if($_POST['kullaniciadi'] == $kullanici_adi && $_POST['sifre'] == $sifre){
  10. $_SESSION['loginin'] = true;
  11. header("Location: index.php");
  12. }else{
  13. echo 'Giriş Bilgileri Hatalı.';
  14. }
  15. }
  16. ?>
Koda açıklama ekledim ama birazda açıklıyayım arkadaşlar burda en önemli kod ; $_SESSION[‘loginin’] == true bu nedeni ise bu kodun loginin isimli session olup olmadığına bakıyor. Diğer if bloğun da ise eğer kullanıcı bilgileri doğru girildiyse $_SESSION[‘loginin’] = true yap diyoruz ve böylelikle oturum açma iznini veriyoruz. Peki çıkış yapmak için nasıl bir mantık kuracağız.

Session İle Çıkış Yapmak

  1. <?php
  2. session_start();
  3. session_destroy(); // Bu Fonksiyon ile tüm Session siliyoruz.
  4. header('Location: login.php');
  5. ?>
Özellikle yönetim paneli yapıyorsanız session_destroy(); fonksiyonunu kullanın bazı kişiler unset() fonksiyonu ile yapıyor ama bu yanlış unset() kullanırken tek tek session ları belirtip imha etmeniz gerekli yani şöyle ;
  1. <?php
  2. unset($_SESSION['loginin']);
  3. ?>
Onunda şöyle bir tehlikesi var sonuçta insanız ve hata yapabiliriz eksik tanımlama yaparsanız oturum kapatma çalışmaz oda size sıkıntı çıkartır o yüzden direk session_destroy(); fonksiyonu kullanın kafanız rahat olsun.

PHP - Switch Case Kontrol Yapısı




Switch Case Kontrol Yapısı

Seçilen değişkenin değerinin belirli durumlara uyup uymadığını kontrol eden yapıdır. Değişkenin değeri, belirtilen birçok durumdan hangisine uyuyorsa o durum altındaki komutlar çalışır. Bunu, ben if ile de yapabilirim diye düşünebilirsiniz. Doğru düşünüyorsunuz. switch ile yaptığınız işi if yapısı ile de yapabilirsiniz. Burada switch yapısının avantajı daha düzenli kod yazmamızı sağlamasıdır. Kullanımı şu şekildedir.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
switch ($degisken){
case durum1:
   // durum1 sağlanırsa çalışacak kodlar
   break;
case durum2:
   // durum2 sağlanırsa çalışacak kodlar
   break;
.
.
.
default:
   // hiçbir durum sağlanmazsa çalışacak kodlar
}
Seçilen değişkenin değeri hangi duruma uyarsa o durum altındaki komutlar çalışır. break ifadesi, durum sağlanırsa başka durumlara bakılmasını engellemek için kullanılır. Eğer break kullanmazsanız durumlardan biri sağlandığında, ondan sonraki tüm durumlar da çalıştırılır. Bu genelde istenmez. Son olarak; defaultifadesinden sonra break kullanılmadığına dikkat ediniz. Çünkü default'tan sonra başka durum olmadığından break kullanmaya gerek yoktur. Aşağıdaki örneği inceleyiniz.
?
1
2
3
4
5
6
7
8
9
10
<?php
$sayi=2;
 
switch ($sayi){
   case 0: echo "Sayı 0'dır."; break;
   case 1: echo "Sayı 1'dir."; break;
   case 2: echo "Sayı 2'dir."; break;
   default: echo "Sayı 0,1 ve 2 değildir.";
}
?>
Burada $sayi değişkeninin değerlerine bakıyoruz. Değeri 2 olduğundan ekrana Sayı 2'dir. yazacaktır. echo ve break komutlarını aynı satırda buradaki gibi yazabilirsiniz. Şimdi bu işlemi if yapısı ile yapalım.
?
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$sayi=2;
 
if($sayi==0)
   echo "Sayı 0'dır.";
elseif($sayi==1)
   echo "Sayı 1'dir.";
elseif($sayi==2)
   echo "Sayı 2'dir.";
else
   echo "Sayı 0,1 ve 2 değildir.";
?>
Görüldüğü üzere aynı işlemi rahatlıkla if ile de yapabilirsiniz. Tercih sizindir. Bazı durumlarda switch yapısı daha kolay olabilir.

Örnek: Beş üzerinden tanımlı notun yazı karşılığını ekrana yazdıralım.
?
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$notu=2;
 
switch ($notu){
   case 0: echo "Başarısız"; break;
   case 1: echo "Zayıf"; break;
   case 2: echo "Geçer"; break;
   case 3: echo "Orta"; break;
   case 4: echo "İyi"; break;
   default: echo "Pekiyi";
}
?>

Örnek: Şimdi de sayının tek ya da çift olma durumunu ekrana yazdıralım.
?
1
2
3
4
5
6
7
<?php
$sayi=23;
switch ($sayi%2){ // sayının 2'ye bölümünden kalan
   case 0: echo "Sayı çifttir."; break;
   default: echo "Sayı tektir."; break;
}
?>

Örnek: Tanımlı olan işleme göre iki sayıyı işleme alıp sonucu ekrana yazalım.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$islem="*";
$sayi1=16;
$sayi2=4;
 
switch ($islem){
   case "+": $sonuc=$sayi1+$sayi2; break;
   case "-": $sonuc=$sayi1-$sayi2; break;
   case "*": $sonuc=$sayi1*$sayi2; break;
   default: $sonuc=$sayi1/$sayi2;
}
 
echo "Sonuç=$sonuc";
?>
Kontrol edeceğiniz değişken sayı olabileceği gibi buradaki gibi string bir ifade de olabilir. Aynı zamanda boolean, sabit ve dizi değişkenleri de burada kullanabilirsiniz.

Örnek: Tanımlı olan kullanıcıya hoş geldiniz mesajı yazdıralım.
?
1
2
3
4
5
6
7
8
9
<?php
$kullanici="Büşra";
$cinsiyet="bayan";
 
switch ($cinsiyet){
   case "bay": echo "Hoşgeldiniz $kullanici Bey"; break;
   default: echo "Hoşgeldiniz $kullanici Hanım";
}
?>

Örnek: Tanımlı olan mevsime göre ayları ekrana yazdıralım.
?
1
2
3
4
5
6
7
8
9
10
<?php
$mevsim="ilkbahar";
 
switch ($mevsim){
   case "ilkbahar": echo "Mart Nisan Mayıs"; break;
   case "yaz": echo "Haziran Temmuz Ağustos"; break;
   case "sonbahar": echo "Eylül Ekim Kasım"; break;
   default: echo "Aralık Ocak Şubat";
}
?>

Bu kez değişik bir örnek yapalım. Pek kullanılmasa da durum kısmında aşağıdaki gibi bir karşılaştırma da yapabilirsiniz.
Örnek: Sayının negatif, pozitif ya da sıfır olma durumunu ekrana yazdıralım.
?
1
2
3
4
5
6
7
8
9
<?php
$sayi=0;
 
switch ($sayi){
   case 0: echo "Sayı sıfırdır.";break;
   case $sayi>0: echo "Sayı pozitiftir.";break;
   default: echo "Sayı negatiftir.";
}
?>
Not: Burada önce sayının sıfır olma durumunu kontrol ediniz. Aksi halde hatalı sonuç alırsınız. Sıfırdan farklı sayılarla çalışırken istediğiniz sırada durumları ifade edebilirsiniz.

Örnek: 100 üzerinden tanımlanmış bir notun 5 üzerinden karşılığını ekrana yazdıralım.
?
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$notu=64;
 
switch ($notu){
   case 85<=$notu: echo "5-Pekiyi"; break;
   case 70<=$notu: echo "4-İyi"; break;
   case 55<=$notu: echo "3-Orta"; break;
   case 45<=$notu: echo "2-Geçer"; break;
   case 25<=$notu: echo "1-Zayıf"; break;
   default: echo "Başarısız";
}
?>

Örnek: Tanımlı olan 3 sayıdan en büyüğünü bulalım.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$sayi1=10;
$sayi2=7;
$sayi3=15;
 
switch (true){
   case ($sayi1>=$sayi2 and $sayi1>=$sayi3): $eb=$sayi1; break;
   case ($sayi2>=$sayi1 and $sayi2>=$sayi3): $eb=$sayi2; break;
   default: $eb=$sayi3;
}
 
echo "En büyük sayı: $eb";
?>

Görüldüğü gibi durum kısmında mantıksal operatörler de kullanabilirsiniz. Bunun yanında true kısmına bakarsanız burada biraz farklı bir işlem yapılmıştır. Zira kontrol edilen bir değişken değil tam tersine durumdur. Yani durumlardan hangisinin true olduğunu kontrol ettik. Normalde hep bir değişkenin hangi duruma uyduğunu kontrol ediyorduk.

Örnek: Tanımlı olan sayıya karşılık gelen günü ekrana yazdıralım.
?
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$gun=4;
switch ($gun){
   case 1: echo "Pazartesi";break;
   case 2: echo "Salı";break;
   case 3: echo "Çarşamba";break;
   case 4: echo "Perşembe";break;
   case 5: echo "Cuma";break;
   case 6: echo "Cumartesi";break;
   default: echo "Pazar";
}
?>

Örnek: Hafta içi çalışanların maaşına 50 TL, hafta sonu çalışanların maaşına 70 TL ekleyelim.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$maas=500;
$gun="salı";
 
switch ($gun){
   case "pazartesi":
   case "salı":
   case "çarşamba":
   case "perşembe":
   case "cuma":$maas+=50;break;
   case "cumartesi":
   default: $maas+=70;
}
 
echo "Maaş=$maas";
?>
Oldukça ilginç bir kullanım. Biraz açıklamaya çalışalım. Bir durumdan sonra komut yazmak zorunda değilsiniz. Bu, sonraki duruma geçmek için kullanılır. Hafta içindeki günlerden biri ise pazartesi, salı, çarşamba, perşembe ya da cuma olması fark etmiyor. Eğer bu durumlardan birine girilirse break olmadığı için cuma'ya kadar gidilir ve cuma durumunda 50 TL eklenir. Sonra break ile hafta sonuna geçilmesi engelleniyor. Aynı mantıkla cumartesi için break kullanılmayarak pazar gününe gidiliyor ve 70 TL ekleniyor. Diyelim ki; günlerden salı olsun. Salı durumuna girildi break olmadığı için cuma'ya kadar gidildi ve 50 TL eklendi ve break ile çıkıldı. Diyelim ki cumartesi; break olmadığı için pazar'a gidilir ve 70 TL eklenir. Tabiki bu bizim algoritmamızdır. Bilindiği gibi sonuca giden yol tek değildir. Siz de kendi çözümünüzü geliştirebilirsiniz.
 
Copyright © 2016 Yazılımcı Hoca. Designed by Mustafa Sezer | Distributed By Gooyaabi Templates