Codeigniter'da flashdata'nın 2 kere gösterilmesi sorunu

By Admin
In BackEnd
05/Nisan/2021
Okuma Süresi: 3 dk.

Selamlar sevgili okur,

Bu sorunu şöyle özetleyeyim;

İletişim formlarında validasyondan geçemezsek aynı sayfaya this->load->view ile gitmek zorunda kalıyoruz. Çünkü bir form_error verisine true diyip sayfada da validasyondan geçemeyen alanları göstermemiz lazım. O yüzden redirect kullanamıyoruz. Kullansaydık bu sorun muhtemeln olmazdı ama load->view bu sorunu yaratıyor ve formu validasyona soktuğumuz controlden yine aynı view sayfasına geliyoruz yani formun olduğu sayfaya. Bu sayfada flashdata 1 kere kullanılıyor ve bize uyarımızı veriyor ama ilginç bir şekilde silinmiyor. Mesela başka menüde başka bir linke tıklayınca 2. kez yine gösteriliyor. İşte bunu çözmenin yolu olarak flashdata değil de tempdata kullanmaya karar verdim.


$alert = array(
"title" => "İşlem Başarısız",
"text" => "Lütfen Formu Eksiksiz Doldurun !",
"type" => "error"
);
$this->session->set_tempdata("alert", $alert, 1);

Peki farkı nedir? Tek farkı süre vermek. Burada 1 saniye sonra yok olsun demişim mesela ve çalıştı sorunsuzca. 3 farklı session tipi var aslında kullandığımız;

  1. Normal sessionlarda biz onu destroy edene kadar duruyolar,
  2. Flashdatalar tek bir sayfa yönlendirmesinde siliniyolar,
  3. Tempdata ise bizim belirlediğimiz sürede siliniyolar.

Gayet kullanışlı bence.


ETİKETLER: Codeigniter 3
WHM panelde bir siteye ait bütün veritabanlarını Navicat üzerinde gösterebilmek
Css'de birden fazla media elementini aynı anda AND ile kullanmak