Sol Reklam
Sağ Reklam

Web Programlama - PHP [Öğretici] - Ep. 4 (SESSIONS and COOKIES)

Pikod

Bir Kömür Göründü Kaptanım!

Discord:

Pikod#5894

Katılım
28 Kasım 2019
Mesajlar
118
Elmaslar
64
Puanlar
2.245
Minecraft
Pikod
Twitter
hzpikod
Php de çok önemli yerleri olan cookies ve sessions u bu gün ele alacağım.
İlk olarak nedir bunlar?

SESSİONS
"Oturumlar" gibi bir anlama sahip.
Kullanıcı ile ilgili kayıt, giriş, seçim vs. bilgileri tutmamızı sağlıyor.

COOKIES
"Çerezler" anlamına geliyor.
Aynı işe yarıyor.

Farkları ne ?
"Session" dediğimiz kayıtlar PHP sunucusu tarafından depolanmaktayken
"Cookie" kayıtları Kullanıcı tarafından depolanırlar.

Bu demektir ki session bilgileri kullanıcılar tarafından değiştirilemez.
Aynı zamanda cookie bilgilerinin kullanıcılar tarafından değiştirilebileceği anlamına gelmektedir.

Kullanımları Şu Şekildedir:


Kod:
//SESSION
session_start(); //Bu fonksiyon sessionları başlatmamıza yarar. Bunu yanlızca bir kere
//sayfanın başına yazmanız gereklidir.

$_SESSION['session_ismi'] = "merhaba"; //Burda "$_" tarafına dikkat etmenizi istiyorum
//Bu bölümdeki kullanım php de $_GET $_POST gibi alanlarda da kullanılmaktadır.
//Sonrasında session yazıyoruz. Buda bize bir array tipi değişken vermektedir.
//Array tipi değişkenlerin içerisindeki indexlere iki yöntemle erişilebilir.
//Birincisi index sırasına göre ikincisi ise index "ismi varsa" ismine göre erişilebilir.

//Diğer derslerde arrayleri tam olarak anlatamadım ileride detaylı anlatıcam.

//Şekilde gördüğünüz [''] bölümünde indexe bir isim veriyoruz.
//Bunun yerine 0,1,2,3,4,5 vs. sayılar verebiliriz.
//Sonrasında normal bir değişkene değer atarmışız gibi (= "dsfjskdf";) değer atıyoruz.

//SESSION NASIL ÇEKILIR?

//Aynı şekilde session_start(); gerekmektedir.
echo "Merhaba_dunya session değeri: ".$_SESSION['Merhaba_dunya'];

Arkadaşlar daha önce söylediğim gibi bu değerler kullanıcılar tarafından "değiştirilemez"!

Cookieler ise daha değişik bir kullanıma
sahiptir.
Şu şekilde kullanılır:
setcookie(name, value, expire, path, domain, secure, httponly);

Normalde bu kadar değer istemez ama bu değerleri de girebilirsiniz.
Şu anlık öyle bir şeye gerek yok.

setcookie('cookie_ismi', 'cookie_degeri', miliseconds cinsinden saniye );
miliseconds: 1/1000

setcookie ile cookielerinizi set edin ve bu şekilde çekin:

$_COOKIE['cookie_ismi'];

Arkadaşlar şimdi diyorsunuz ki login bilgileri kullanıcılar tarafından falan görülüp değiştirilebilecekse açıklar oluşur.
Neden COOKIE kullanalım?
Ben size kesin olarak session kullanın veya cookie kullanın demiyorum ancak cookie kullanımların yaygın olmasının sebebi time belirlenebilmesidir.
COOKIE değerler siz isterseniz 9999 saat vs. sonra yok olabilmekteyken, SESSION değerler kullanıcı bilgisayarını kapattığında gitmekte.

Belki de modem kapatıp açılınca veya ip değiştiğindedir. Kesin olarak hatırlayamıyorum ancak sonuç olarak beni hatırla butonu yapacaksanız COOKIE illaki gereklidir.

Dersimizi bir örnekle kapatmak istiyorum.

giris.php:



PHP:
$token = "23894723472384823943284723948";
setcookie("token", $token, 1*60*60*24*365*2); //2 Yıllık bir COOKIE oluşturduk dflkgdfgjfkgj
//Şimdi burda ne yaptık? Veri tabanından vs. getirdiğimiz bir token aldık.
//Normalde bunu MYSQL bağlantılarıyla vs. yapmalıydık ama o konulara gelmedik gelelim anlatıcam.
//Tokeni token ismiyle setcookie yaptık.
//Neden direk kullanıcı adını setcookie yapmıyoruz diyecek olursanız.
//Sebebi basit arkadaşlar setcookie ile kullanıcı ismini set edersek her kullanıcı
//chrome, opera vs. ayarlarına girip cookie değerini değiştirirse yeni girdiği kullanıcı
//isminin profiline geçiş yapar.
//Ama tokenler oluşturup veri tabanında tokenleri kullanıcılar ile bağladığımızda
//Tokenler tahmin edilemez olacaktır.
//Kullanıcı adı ve Şifre kombinasyonlarından daha zor bir hal alacaktır.

anasayfa.php:
PHP:
if($_COOKIE['token'] != "23894723472384823943284723948"){
    echo "Giriş yapmamışsınız!";
    die(); //Bu fonksiyondan sonra yazılan hiçbir şey kullanıcıya gönderilmez...
}
echo "Hoş geldiniz!";

Evet bu örnekte ne olacak.
Eğer kullanıcı anasayfa.php ye girer ise
"Giriş yapmamışsınız!" metnini alıcak.
Eğer giris.php sayfasına girip sonra anasayfa.php sayfasına girerse
"Hoş geldiniz!" metnini alacak.

Ödev:
İki cookie tokeni oluşturun.
Bu cookie tokenlerinin sahiplerine isim belirleyin (Mahmut, Ali, Sena vs.)
Ana sayfaya giriş yapan kişinin tokeni ali ise Hoş geldin ali, Mahmut ise hoş geldin mahmut yazsın.
Eğer ikiside değilse tokeni yani else yapısını kullanacaksınız.
"Giriş yapmamışsınız!" yazacak.

(100 PUAN)
 
Son düzenleme:

LifeMCServer

Yaratık Tuzağı: Çalışıyor

Discord:

!?мυѕтαғα öɴcel#8713

Katılım
18 Kasım 2016
Mesajlar
698
Elmaslar
471
Puanlar
15.415
Yaş
24
Yer
İstanbul
Minecraft
LifeMCServer
Facebook
mustafathegamer
Twitter
LifeMCServer
Güzel bir rehber fakat kod bloklarında dil olarak PHP seçersen renkli göstereceğinden daha iyi gözükecektir.
 

UfukE

Somon Balığı Selam Vermeye Geldi

Discord:

Jôkä#6512

Katılım
18 Ekim 2019
Mesajlar
19
Elmaslar
10
Puanlar
825
Yaş
21
Minecraft
UfukErturk
Başarılı Anlatım Tebrikler
 

Pikod

Bir Kömür Göründü Kaptanım!

Discord:

Pikod#5894

Katılım
28 Kasım 2019
Mesajlar
118
Elmaslar
64
Puanlar
2.245
Minecraft
Pikod
Twitter
hzpikod
S

Silinen üye 79251

Ziyaretçi

Oh be sonunda 4. ders gelmiş ki okur okumaz birçok bilgi kaptım fakat konu dizaynına daha çok renk katsan çok ama çok iyi olabilir.
 
Neden altınlarını Discord sunucumuzda kazmıyorsun? TIKLA VE KATIL!
Yukarı