| 4 | 
           david | 
           1 | 
           <?php
  | 
        
        
            | 
            | 
           2 | 
           /*vim: set expandtab tabstop=4 shiftwidth=4: */
  | 
        
        
            | 
            | 
           3 | 
           // +------------------------------------------------------------------------------------------------------+
  | 
        
        
            | 
            | 
           4 | 
           // | PHP version 4.1                                                                                      |
  | 
        
        
            | 
            | 
           5 | 
           // +------------------------------------------------------------------------------------------------------+
  | 
        
        
            | 
            | 
           6 | 
           // | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
  | 
        
        
            | 
            | 
           7 | 
           // +------------------------------------------------------------------------------------------------------+
  | 
        
        
            | 
            | 
           8 | 
           // | This library is free software; you can redistribute it and/or                                        |
  | 
        
        
            | 
            | 
           9 | 
           // | modify it under the terms of the GNU Lesser General Public                                           |
  | 
        
        
            | 
            | 
           10 | 
           // | License as published by the Free Software Foundation; either                                         |
  | 
        
        
            | 
            | 
           11 | 
           // | version 2.1 of the License, or (at your option) any later version.                                   |
  | 
        
        
            | 
            | 
           12 | 
           // |                                                                                                      |
  | 
        
        
            | 
            | 
           13 | 
           // | This library is distributed in the hope that it will be useful,                                      |
  | 
        
        
            | 
            | 
           14 | 
           // | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
  | 
        
        
            | 
            | 
           15 | 
           // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
  | 
        
        
            | 
            | 
           16 | 
           // | Lesser General Public License for more details.                                                      |
  | 
        
        
            | 
            | 
           17 | 
           // |                                                                                                      |
  | 
        
        
            | 
            | 
           18 | 
           // | You should have received a copy of the GNU Lesser General Public                                     |
  | 
        
        
            | 
            | 
           19 | 
           // | License along with this library; if not, write to the Free Software                                  |
  | 
        
        
            | 
            | 
           20 | 
           // | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
  | 
        
        
            | 
            | 
           21 | 
           // +------------------------------------------------------------------------------------------------------+
  | 
        
        
            | 
            | 
           22 | 
           // CVS : $Id: spip_cookie.php,v 1.1 2004/07/20 10:01:22 alex Exp $
  | 
        
        
            | 
            | 
           23 | 
           /**
  | 
        
        
            | 
            | 
           24 | 
           * Envoie de cookie pour SPIP à partir d'une inscription
  | 
        
        
            | 
            | 
           25 | 
           *
  | 
        
        
            | 
            | 
           26 | 
           * Envoie de cookie pour SPIP à partir d'une inscription
  | 
        
        
            | 
            | 
           27 | 
           *
  | 
        
        
            | 
            | 
           28 | 
           *@package inscription
  | 
        
        
            | 
            | 
           29 | 
           //Auteur original :
  | 
        
        
            | 
            | 
           30 | 
           *@author        Alexandre Granier <alexandre@tela-botanica.org>
  | 
        
        
            | 
            | 
           31 | 
           //Autres auteurs :
  | 
        
        
            | 
            | 
           32 | 
           *@author        Aucun
  | 
        
        
            | 
            | 
           33 | 
           *@copyright     Tela-Botanica 2000-2004
  | 
        
        
            | 
            | 
           34 | 
           *@version       $Revision: 1.1 $ $Date: 2004/07/20 10:01:22 $
  | 
        
        
            | 
            | 
           35 | 
           // +------------------------------------------------------------------------------------------------------+
  | 
        
        
            | 
            | 
           36 | 
           */
  | 
        
        
            | 
            | 
           37 | 
           // Ce fichier doit être placé à la racine de SPIP
  | 
        
        
            | 
            | 
           38 | 
           // Il doit être appellé dans chaque squelette
  | 
        
        
            | 
            | 
           39 | 
           // après l'ouverture d'une session, si on ouvre une session
  | 
        
        
            | 
            | 
           40 | 
              | 
        
        
            | 
            | 
           41 | 
           // Il faut récupérer une valeur userid, c'est à dire
  | 
        
        
            | 
            | 
           42 | 
           // loggué l'utilisateur par exemple avec PEAR
  | 
        
        
           | 194 | 
           jpm | 
           43 | 
           define ('SPIP_CHEMIN', 'actu/') ;
  | 
        
        
           | 4 | 
           david | 
           44 | 
              | 
        
        
            | 
            | 
           45 | 
           // Ajouter une session pour l'auteur specifie
  | 
        
        
            | 
            | 
           46 | 
           // Modifié pour éviter un Warning
  | 
        
        
            | 
            | 
           47 | 
           if (!defined ('CHEMIN_SPIP')) {
  | 
        
        
           | 194 | 
           jpm | 
           48 | 
           	define ('CHEMIN_SPIP', '') ;
  | 
        
        
           | 4 | 
           david | 
           49 | 
           }
  | 
        
        
            | 
            | 
           50 | 
              | 
        
        
           | 194 | 
           jpm | 
           51 | 
           function ajouter_session_($auteur, $id_session, $id_auteur, $alea)
  | 
        
        
            | 
            | 
           52 | 
           {
  | 
        
        
            | 
            | 
           53 | 
           	$fichier_session = CHEMIN_SPIP.'ecrire/data/session_'.$id_auteur.'_'.md5($id_session.' '.$alea).'.php3';
  | 
        
        
            | 
            | 
           54 | 
           	//$fichier_session = CHEMIN_SPIP.'ecrire/data/session_'.$id_auteur.'_'.$id_session.'.php3';
  | 
        
        
            | 
            | 
           55 | 
           	$vars = array('id_auteur', 'nom', 'login', 'email', 'statut', 'lang' /*, 'ip_change'*/, 'hash_env' );
  | 
        
        
            | 
            | 
           56 | 
           	$auteur['hash_env'] = hash_env_() ;
  | 
        
        
            | 
            | 
           57 | 
           	$texte = "<"."?php\n";
  | 
        
        
            | 
            | 
           58 | 
           	reset($vars);
  | 
        
        
            | 
            | 
           59 | 
           	while (list(, $var) = each($vars)) {
  | 
        
        
            | 
            | 
           60 | 
           	        $texte .= "\$GLOBALS['auteur_session']['$var'] = '".addslashes($auteur[$var])."';\n";
  | 
        
        
            | 
            | 
           61 | 
           	}
  | 
        
        
            | 
            | 
           62 | 
           	$texte .= "?".">\n";
  | 
        
        
            | 
            | 
           63 | 
              | 
        
        
            | 
            | 
           64 | 
           	if ($f = fopen($fichier_session, "wb")) {
  | 
        
        
            | 
            | 
           65 | 
           	        fputs($f, $texte);
  | 
        
        
            | 
            | 
           66 | 
           	        fclose($f);
  | 
        
        
            | 
            | 
           67 | 
           	}
  | 
        
        
           | 4 | 
           david | 
           68 | 
           }
  | 
        
        
            | 
            | 
           69 | 
              | 
        
        
           | 194 | 
           jpm | 
           70 | 
           function hash_env_()
  | 
        
        
            | 
            | 
           71 | 
           {
  | 
        
        
            | 
            | 
           72 | 
           	global $HTTP_SERVER_VARS;
  | 
        
        
            | 
            | 
           73 | 
           	return md5($HTTP_SERVER_VARS['REMOTE_ADDR'] . $HTTP_SERVER_VARS['HTTP_USER_AGENT']);
  | 
        
        
           | 4 | 
           david | 
           74 | 
           }
  | 
        
        
            | 
            | 
           75 | 
              | 
        
        
            | 
            | 
           76 | 
              | 
        
        
            | 
            | 
           77 | 
           // On recherche userid
  | 
        
        
           | 194 | 
           jpm | 
           78 | 
           $userid = $GLOBALS['identification']->getAuthData('U_ID');
  | 
        
        
           | 4 | 
           david | 
           79 | 
           if ($userid != 0) {
  | 
        
        
            | 
            | 
           80 | 
               // recherche du login dans la table spip_auteur
  | 
        
        
            | 
            | 
           81 | 
               // Soit c'est l'email, soit c'est un nom wiki
  | 
        
        
           | 190 | 
           jpm | 
           82 | 
               mysql_select_db(PAP_BDD_NOM) ;
  | 
        
        
            | 
            | 
           83 | 
               $resultat_mail = mysql_query ('SELECT U_MAIL, U_ID FROM annuaire_tela WHERE U_ID='.$userid)
  | 
        
        
           | 4 | 
           david | 
           84 | 
                               or die ("Echec requete<br />".mysql_error());
  | 
        
        
            | 
            | 
           85 | 
               $ligne_mail = mysql_fetch_object ($resultat_mail) ;
  | 
        
        
            | 
            | 
           86 | 
              | 
        
        
           | 190 | 
           jpm | 
           87 | 
               $l = mysql_connect(PAP_BDD_SERVEUR, PAP_BDD_UTILISATEUR, PAP_BDD_MOT_DE_PASSE) ;
  | 
        
        
           | 401 | 
           jpm | 
           88 | 
               mysql_select_db('tela_prod_spip_actu', $l) ;
  | 
        
        
           | 4 | 
           david | 
           89 | 
              | 
        
        
           | 190 | 
           jpm | 
           90 | 
               $requete_login = 'SELECT login, id_auteur FROM tela_prod_spip_actu.spip_auteurs WHERE email = "'.$ligne_mail->U_MAIL.'"' ;
  | 
        
        
            | 
            | 
           91 | 
               $resultat_login = mysql_query($requete_login, $l) or die ('Echec'.mysql_error()) ;
  | 
        
        
            | 
            | 
           92 | 
               $ligne_login = mysql_fetch_object($resultat_login) ;
  | 
        
        
           | 4 | 
           david | 
           93 | 
              | 
        
        
           | 401 | 
           jpm | 
           94 | 
               setcookie('spip_admin', '@'.$ligne_login->login, (int)PAP_AUTH_SESSION_DUREE, '/actu/') ;
  | 
        
        
           | 4 | 
           david | 
           95 | 
               $id = $ligne_login->id_auteur ;
  | 
        
        
            | 
            | 
           96 | 
              | 
        
        
           | 190 | 
           jpm | 
           97 | 
               $query = 'SELECT * FROM spip_auteurs WHERE id_auteur = '.$ligne_login->id_auteur;
  | 
        
        
           | 4 | 
           david | 
           98 | 
               $result = mysql_query($query, $l);
  | 
        
        
            | 
            | 
           99 | 
               $GLOBALS['auteur_session'] = @mysql_fetch_array($result) ;
  | 
        
        
           | 401 | 
           jpm | 
           100 | 
               $GLOBALS['auteur_session']['statut'] = '1comite';
  | 
        
        
            | 
            | 
           101 | 
               $GLOBALS['auteur_session']['lang'] = 'fr';
  | 
        
        
           | 4 | 
           david | 
           102 | 
              | 
        
        
            | 
            | 
           103 | 
               // recherche de l'alea éphémère dans spip_meta
  | 
        
        
           | 190 | 
           jpm | 
           104 | 
               $requete_meta = 'SELECT nom,valeur FROM spip_meta' ;
  | 
        
        
            | 
            | 
           105 | 
               $resultat_meta = mysql_query($requete_meta) or die ('echec') ;
  | 
        
        
            | 
            | 
           106 | 
               while ($ligne_meta = mysql_fetch_object($resultat_meta) ) {
  | 
        
        
           | 4 | 
           david | 
           107 | 
                   if ($ligne_meta->nom == 'alea_ephemere') {
  | 
        
        
            | 
            | 
           108 | 
                       $alea = $ligne_meta->valeur ;
  | 
        
        
            | 
            | 
           109 | 
                   }
  | 
        
        
            | 
            | 
           110 | 
               }
  | 
        
        
            | 
            | 
           111 | 
              | 
        
        
            | 
            | 
           112 | 
               if (!isset ($HTTP_COOKIE_VARS['spip_session'])) {
  | 
        
        
           | 401 | 
           jpm | 
           113 | 
                   $id_session = $id.'_'.(md5 (uniqid (rand ())));
  | 
        
        
            | 
            | 
           114 | 
                   setcookie('spip_session', $id_session, (int)PAP_AUTH_SESSION_DUREE, '/actu/') ;
  | 
        
        
           | 4 | 
           david | 
           115 | 
               } else {
  | 
        
        
           | 401 | 
           jpm | 
           116 | 
                   $id_session = preg_replace('/[0-9]+_/', $id.'_', $HTTP_COOKIE_VARS['spip_session']) ;
  | 
        
        
           | 190 | 
           jpm | 
           117 | 
                   setcookie('spip_session', $id_session, (int)PAP_AUTH_SESSION_DUREE, '/actu/') ;
  | 
        
        
           | 4 | 
           david | 
           118 | 
               }
  | 
        
        
            | 
            | 
           119 | 
               ajouter_session_($GLOBALS['auteur_session'], $id_session, $ligne_login->id_auteur, $alea) ;
  | 
        
        
            | 
            | 
           120 | 
           }
  | 
        
        
           | 190 | 
           jpm | 
           121 | 
           ?>
  |