Codeigniter rendszerüzenetek kezelése

#codeigniter #php #mvc #flashdata

Codeigniter rendszerüzenetek kezelése

Figyelem!

Úgy tűnik, hogy jelenleg egy olyan cikket böngészel ami több mint két éve készült. A technológia világában ez nagyon sok idő és azóta már sokkal jobb megoldások is lehetnek, mint amit ebben a cikkben olvashatsz. Így azt tanácsolom keress egy frissebb cikket ebben a témában.

A problémakör elég egyszerű. A weboldalunk vagy alkalmazásunk használata során van, hogy tudatni szeretnénk a felhasználóval egy-egy aktuális üzenetet. Legyen ez egy hibaüzenet, vagy egy állapotsor, mindig és mindenhol jól kezelhetőnek és elérhetőnek kell lennie.

Codeigniter-ben erre akár a controllerben fel is vehetünk egy változót, amit továbbítunk a view-nak. Aztán ha ezt tovább bonyolítjuk, akkor az üzenet típusához igazodva létrehozhatunk egy tömböt is nekik, és más-más színnel kezelhetjük a megjelenítésüket.

Általában három fajta UI üzenet típust különböztetünk meg.

  • A hibaüzenet: Piros színnel a weboldalon megjelenő hibákat tünteti fel.
  • A sikerüzenet: Zöld színnel közli velünk a sikeres interakciót az oldalon.
  • Az információs üzenet: Kék színnel közöl velünk fontos információkat.

De egyszerűbben is hozzáállhatunk Codeigniter-ben az állapotjelentésekhez, használjuk a sütiket ezek tárolására!

Ehhez szükségünk lesz a Session Class-ra, amit az autoload fájlból vagy közvetlenül a controllerből is meghívhatunk.

$this->load->library('session');

A sütik használata előtt el ne feledkezzünk a config fájlban “encryption key”-t is beállítani adataink biztonságának érdekében.

Az állapot- és hibaüzenetek tárolására a legalkalmasabb a “flashdata” lehetőség, ami egy olyan sütit tárol, ami csak a következő szerverlekérdezés idejéig érhető el, azután automatikusan törlődik.

Lássunk egy példát egy hibaüzenetre

Esetünkben nem sikerült a bejelentkezés, hibás adatok magadása miatt. Ilyenkor először létrehozzuk a “flashdata” sütinket.

$this->session->set_flashdata('hiba','Hibás belépési adatok. A bejelentkezés sikertelen!');

Majd átirányítjuk a felhasználót a belépési oldalra.

redirect('login');

A view-ban pedig létrehozhatunk egy olyan sort ami ellenőrzi, hogy van-e hibánk és kiírja azt.

if ($this->session->flashdata('hiba')) : echo $this->session->flashdata('hiba'); endif;

És ilyen egyszerű az egész.

További tartalmak