Example #1
0
 /**
  * Définir un cookie avec le contenu de paramètres transmis en GET puis rappeler la page
  * 
  * @param string $query_string   éventuellement avec 'url_redirection' en dernier paramètre
  * @return void
  */
 public static function save_get_and_exit_reload( $query_string )
 {
   Cookie::definir( COOKIE_MEMOGET , $query_string , 300 /* 60*5 = 5 min */ );
   $param_redir_pos = mb_strpos($query_string,'&url_redirection');
   $param_sans_redir = ($param_redir_pos) ? mb_substr( $query_string , 0 , $param_redir_pos ) : $query_string ; // J'ai déjà eu un msg d'erreur car il n'aime pas les chaines trop longues + Pas la peine d'encombrer avec le paramètre de redirection qui sera retrouvé dans le cookie de toutes façons
   exit_redirection(URL_BASE.$_SERVER['SCRIPT_NAME'].'?'.$param_sans_redir);
 }
Example #2
0
// C'est le cas lors de l'appel d'un IdP de type RSA FIM, application nationale du ministère...
if (isset($_COOKIE[COOKIE_MEMOGET])) {
    Cookie::effacer(COOKIE_MEMOGET);
}
// Authentification pour le compte d'une application tierce
if (isset($_GET['url_redirection'])) {
    $url_redirection = urldecode($_GET['url_redirection']);
    if ($_SESSION['USER_PROFIL_SIGLE'] == 'OUT') {
        // User non connecté -> Retenir la demande en attendant qu'il se connecte
        $_SESSION['MEMO_GET']['url_redirection'] = $url_redirection;
    } else {
        // User connecté -> Redirection vers l'application, avec une clef (ticket) pour attester du login et permettre de récupérer ses infos
        $clef = FileSystem::fabriquer_fichier_user_infos_for_appli_externe();
        unset($_SESSION['MEMO_GET']);
        $separateur = strpos($url_redirection, '?') === FALSE ? '?' : '&';
        exit_redirection($url_redirection . $separateur . 'clef=' . $clef);
    }
}
// Page CNIL si message d'information CNIL non validé.
if (isset($_SESSION['STOP_CNIL'])) {
    Session::$tab_message_erreur[] = 'Avant d\'utiliser <em>SACoche</em>, vous devez valider le formulaire ci-dessous.';
    $PAGE = 'compte_cnil';
}
// Fichier de données de la page concernée
$filename_php = CHEMIN_DOSSIER_PAGES . $PAGE . '.php';
if (!is_file($filename_php)) {
    Session::$tab_message_erreur[] = 'Fichier ' . FileSystem::fin_chemin($filename_php) . ' manquant ; redirection vers une page d\'accueil.';
    $PAGE = $_SESSION['USER_PROFIL_TYPE'] == 'public' ? 'public_accueil' : (isset($_SESSION['STOP_CNIL']) ? 'compte_cnil' : 'compte_accueil');
    $filename_php = CHEMIN_DOSSIER_PAGES . $PAGE . '.php';
}
// Contenu à afficher récupéré dans une variable