[ Index ]
 

Code source de SPIP Agora 1.4

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/Agora1-4/ -> spip_cookie_extranet.php (source)

   1  <?php
   2  /******* Fichier Ajout? EXTRANET guillaume.grason@diplomatie.gouv.fr *******/
   3  require_once (dirname(__FILE__)."/ecrire/include/bd/inc_extranaute_factory.php");
   4  require_once (dirname(__FILE__)."/ecrire/include/authorization/inc_authorization_factory.php");
   5  
   6  include  ("ecrire/inc_version.php");
   7  
   8  include_ecrire  ("inc_meta.php");
   9  include  ("inc-session.php");
  10  
  11  // determiner ou l'on veut retomber
  12  if ($url)
  13      $cible = new Link($url);
  14  else
  15      $cible = new Link();
  16  
  17  // rejoue le cookie pour renouveler spip_session_ex
  18  if ($change_session == 'oui') {
  19      if (verifier_session_ex($spip_session_ex)) {
  20          // Attention : seul celui qui a le bon IP a le droit de rejouer,
  21          // ainsi un eventuel voleur de cookie ne pourrait pas deconnecter
  22          // sa victime, mais se ferait deconnecter par elle.
  23          if ($extranaute_session['hash_env'] == hash_env()) {
  24              $extranaute_session['ip_change'] = false;
  25              $cookie = creer_cookie_session_ex($extranaute_session);
  26              supprimer_session_ex($spip_session_ex);
  27              spip_setcookie('spip_session_ex', $cookie);
  28          }
  29          @header('Content-Type: image/gif');
  30          @header('Expires: 0');
  31          @header("Cache-Control: no-store, no-cache, must-revalidate");
  32          @header('Pragma: no-cache');
  33          @header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
  34          @readfile('ecrire/img_pack/rien.gif');
  35          exit;
  36      }
  37  }
  38  
  39  // tentative de logout
  40  if ($logout) {
  41      include ("inc-session.php");
  42      verifier_visiteur_ex();
  43      if ($extranaute_session['login'] == $logout) {
  44          if ($spip_session_ex) {
  45              supprimer_session_ex( $spip_session_ex );
  46              zap_sessions_ex($extranaute_session['id_extranaute'], true);
  47              spip_setcookie('spip_session_ex', $spip_session_ex, time() - 3600 * 24);
  48          }
  49          unset ($extranaute_session);
  50      }
  51  
  52      if (!$url)
  53          @Header("Location: ./login_extranet.php");
  54      else
  55          @Header("Location: $url");
  56      exit;
  57  }
  58  
  59  // Tentative de login
  60  unset ($cookie_session);
  61  
  62  if ($essai_login == "oui") {
  63  
  64      // Recuperer le login en champ hidden
  65      if ($session_login_hidden AND !$session_login)
  66          $session_login = $session_login_hidden;
  67  
  68      $login = $session_login;
  69      $pass = $session_password;
  70  
  71      // Recuperer le mot de passe en champ hidden
  72      if ($session_password_md5) { // mot passe en md5
  73          $md5pass = $session_password_md5;
  74          $md5next = $next_session_password_md5;
  75      }
  76      else if ($session_password) { // mot passe en clair
  77          $extranauteMetier = &recuperer_instance_extranaute();
  78          $allExtranautes = $extranauteMetier->getAllForLogin($login);
  79          if(PEAR::isError($allExtranautes)) {
  80              die($allExtranautes->getMessage());
  81          }
  82  
  83          if (list(,$monExtranaute) = each($allExtranautes))    {
  84              $md5pass = md5($session_password);
  85              $md5next = md5($session_password);
  86          }
  87      }
  88  
  89      // Essayer differentes methodes d'authentification
  90      include (dirname(__FILE__)."/ecrire/inc_auth_extranet.php");
  91      $classe_auth = "Auth_extranet";
  92      $auth = new $classe_auth;
  93      if ($auth->init()) {
  94          $ok = $auth->verifier_challenge_md5($login, $md5pass, $md5next);
  95          if (!$ok && $session_password) $ok = $auth->verifier($login, $session_password);
  96      }
  97  
  98      if ($ok) $ok = $auth->lire();
  99  
 100      if ($ok) {
 101          $auth->activer();
 102          $extranauteMetier = &recuperer_instance_extranaute();
 103          $allExtranautes = $extranauteMetier->getAllForLogin($login);
 104          if(PEAR::isError($allExtranautes)) {
 105              die($allExtranautes->getMessage());
 106          }
 107  
 108          if (list(,$monExtranaute) = each($allExtranautes))  {
 109  
 110              //Creation du tableau qui va bien
 111              $tab['id_extranaute'] = $monExtranaute->getExtranauteId();
 112              $tab['nom'] = $monExtranaute->getNom();
 113              $tab['login'] = $monExtranaute->getLogin();
 114              $tab['email'] = $monExtranaute->getEmail();
 115              $cookie_session = creer_cookie_session_ex($tab);
 116          }
 117      }
 118      else {
 119          $cible = new Link("./login_extranet.php");
 120          $cible->addVar('var_login', $login);
 121          if ($session_password || $session_password_md5)
 122              $cible->addVar('var_erreur', 'pass');
 123          $cible->addVar('var_url', urldecode($url));
 124      }
 125  }
 126  
 127  
 128  // cookie de session ?
 129  if ($cookie_session) {
 130      if ($session_remember == 'oui')
 131          spip_setcookie('spip_session_ex', $cookie_session, time() + 3600 * 24 * 14);
 132      else
 133          spip_setcookie('spip_session_ex', $cookie_session);
 134  }
 135  
 136  
 137  
 138  // Redirection
 139  // Sous Apache, les cookies avec une redirection fonctionnent
 140  // Sinon, on fait un refresh HTTP
 141  if (ereg("^Apache", $SERVER_SOFTWARE)) {
 142      @header("Location: " . $cible->getUrl());
 143  }
 144  else {
 145      @header("Refresh: 0; url=" . $cible->getUrl());
 146      echo "<html><head>";
 147      echo "<meta http-equiv='Refresh' content='0; url=".$cible->getUrl()."'>";
 148      echo "</head>\n";
 149      echo "<body>Si votre navigateur n'est pas redirig&eacute;, <a href='".$cible->getUrl()."'>continuer</a>.</body></html>";
 150  }
 151  ?>


Généré le : Sat Feb 24 14:40:03 2007 par Balluche grâce à PHPXref 0.7