Bonjour ,

je souhaiterai faire un système d'authentification sur codeigniter ,

est-ce qu'il y aurait un moyen de mettre un code dans mon controller qui s'execute avant le lancement de chaque méthode pour faire un système de filtre .

J'ai pensé à le mettre dans le __construct() mais du coup je vois pas comment choisir sur quelle méthode il s'applique .

Merci d'avance

4 réponses


petit up pas trouvé de réel solution efficace

Pour codeIgniter tu as une solution simple qui consiste à créer ton Controller maître ;)

Tu crées un fichier My_Controller dans le dossier core et dans le constructeur tu lances la vérification des sessions. Tu peux aussi utiliser les hooks mais un controller de base sera plus simple ;)

Ta classe My_Controller devra hériter de la classe Controller mère (je ne sais plus comme elle s'appelle trou de mémoire désolé ^^) et du coup tous tes controllers devront hériter de My_Controller. Après tu as un tutoriel sur la connexion automatique sur grafikart et je te conseille de suivre la doc (en anglais) qui est assez bien foutue je trouve :)

Bonjour,

de mémoire tu peux faire :

<?php 

class MY_Controller extends CI_Controller {

  public function _remap($method, $args) {
    // est exécuté avant l'action
    $this->before();

    // exécute l'action normal demandé
    call_user_func_array(array($this, $method), $args);

    // exécuté après l'action
    $this->after();
  }

  // tu peux, ou non, les redéfinir dans tes controleurs fils
  // si tu veux un before pour tout les controleurs tu le mets ici
  protected function before() { return; }
  protected function after() { return; }

}

A tester, n'oublie de faire hériter tes controleurs de MY_Controller.

Bon courage

Je teste ça merci beaucoup