Severity: 8192
Message: Return type of CI_Session_files_driver::open($save_path, $name) should either be compatible with SessionHandlerInterface::open(string $path, string $name): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 113
Severity: 8192
Message: Return type of CI_Session_files_driver::close() should either be compatible with SessionHandlerInterface::close(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 280
Severity: 8192
Message: Return type of CI_Session_files_driver::read($session_id) should either be compatible with SessionHandlerInterface::read(string $id): string|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 145
Severity: 8192
Message: Return type of CI_Session_files_driver::write($session_id, $session_data) should either be compatible with SessionHandlerInterface::write(string $id, string $data): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 223
Severity: 8192
Message: Return type of CI_Session_files_driver::destroy($session_id) should either be compatible with SessionHandlerInterface::destroy(string $id): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 303
Severity: 8192
Message: Return type of CI_Session_files_driver::gc($maxlifetime) should either be compatible with SessionHandlerInterface::gc(int $max_lifetime): int|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 344
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 281
Severity: Warning
Message: session_set_cookie_params(): Session cookie parameters cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 293
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 303
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 313
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 314
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 315
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 316
Severity: Warning
Message: session_set_save_handler(): Session save handler cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 107
Severity: Warning
Message: session_start(): Session cannot be started after headers have already been sent
Filename: Session/Session.php
Line Number: 140
Severity: 8192
Message: setcookie(): Passing null to parameter #7 ($httponly) of type bool is deprecated
Filename: core/Input.php
Line Number: 410
Severity: Warning
Message: Cannot modify header information - headers already sent by (output started at /home/hakantas/public_html/system/core/Exceptions.php:272)
Filename: core/Input.php
Line Number: 410
HTML5 ile birlikte gelen, çerezlerin bazı eksik noktalarını gideren, yine veri depolamaya yarayan 2 yeni özellikten bahsedeceğim. Her makalede yazdığım gibi eğer daha önceki yazıları okumadıysanız burada anlatılanlar kafanızı karıştırabilir. Bu ve bundan sonraki 3 yazıda web depolama nedir, türleri nelerdir, web depolama nasıl kullanılır ve çerezlere göre avantajları nelerdir elimden geldiğince anlatmaya çalışacağım.
Web Storage Nedir?
Henüz HTML5 geliştirilmemişken veri depolamak için daha önceki yazılarda anlattığım çerezler (kalıcı çerezler, oturum çerezleri vb.) kullanılıyordu. HTML5'in geliştirilmesiyle birlikte veri depolamaya yarayan yeni alternatifler geldi: Web Storage (Web Depolama). HTML5 web depolama için bize 2 seçenek sunmakta. Bunlar Local Storage (Yerel Depolama) ve Session Storage (Geçici Depolama). Mantığını çerezler gibi düşünürsek; local storage ile kalıcı çerezler ve session storage ile geçici çerezler ilişkilendirilebilir. Ancak çerezlerden en önemli farklarından biri; local storage ve session storage verileri kullanıcı bilgisayarında (tarayıcıya göre konum değişebilir) depolanır ve gerektiğinde buradan çağrılır. Bu veriler çerezlerde olduğu gibi key-value tanımlamasıyla saklanır.
Web Storage Nasıl Kullanılır?
Web Storage özelliği Javascript ile kullanılır. Depolama işlemleri yapılırken HTML5 ile birlikte hazır olarak gelen localStorage ve sessionStorage nesnelerinden yararlanılır. Web depolamayı tarayıcıların çok eski sürümleri hariç bütün popüler tarayıcılar destekler. Yine de tarayıcınızın Web Storage'ı destekleyip desteklemediğini aşağıdaki kod ile kontrol edebilirsiniz (script etiketleri arasına yazın).
if(typeof(Storage) !== "undefined")
alert('Tarayıcınız Web Storage özelliğini destekliyor.');
else
alert('Tarayıcınız Web Storage özelliğini desteklemiyor.');
Web Storage Avantajları Nelerdir?
Çerezlerin sahip olduığu bütün avantajlar web storage'da da vardır. Ancak web storage çerezlerin bazı eksik noktalarını tamamlamıştır. Bunlar;
1) Kalıcı çerezlerde maksimum veri depolama boyutu 4KB'dir. Ancak Web Storage ile büyük miktarlardaki veriler depolanabilir.
2) Veriler server tarafında değil client tarafında tutulur. Bu sayede websitelerine erişimde hız ve performans bakımından artış sağlanır. Çünkü normalde kalıcı çerezler HTTP request mesajı ile server'a iletilir ama Web Storage'da veriler kullanıcı bilgisayarında saklandığı için ve gerektiğinde kullanıcı bilgisayarından çağrıldığı için buna gerek yoktur. Dolayısıyla çerezler server'ı meşgul etmeyecektir.
YORUMLAR