Subversion Repositories Sites.tela-botanica.org

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
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
 
38
 
39
// Ce fichier doit être placé à la racine de SPIP
40
// Il doit être appellé dans chaque squelette
41
// après l'ouverture d'une session, si on ouvre une session
42
 
43
// Il faut récupérer une valeur userid, c'est à dire
44
// loggué l'utilisateur par exemple avec PEAR
45
 
46
 
47
define ("SPIP_CHEMIN", "actu/") ;
48
 
49
//
50
// Ajouter une session pour l'auteur specifie
51
// Modifié pour éviter un Warning
52
 
53
if (!defined ('CHEMIN_SPIP')) {
54
    define ('CHEMIN_SPIP', '') ;
55
}
56
 
57
function ajouter_session_($auteur, $id_session, $id_auteur, $alea) {
58
        //$fichier_session = CHEMIN_SPIP.'ecrire/data/session_'.$id_auteur.'_'.md5($id_session.' '.$alea).'.php3';
59
        $fichier_session = CHEMIN_SPIP.'ecrire/data/session_'.$id_auteur.'_'.$id_session.'.php3';
60
        $vars = array('id_auteur', 'nom', 'login', 'email', 'statut', 'lang' /*, 'ip_change'*/, 'hash_env' );
61
        $auteur['hash_env'] = hash_env_() ;
62
        $texte = "<"."?php\n";
63
        reset($vars);
64
        while (list(, $var) = each($vars)) {
65
                $texte .= "\$GLOBALS['auteur_session']['$var'] = '".addslashes($auteur[$var])."';\n";
66
        }
67
        $texte .= "?".">\n";
68
 
69
        if ($f = fopen($fichier_session, "wb")) {
70
                fputs($f, $texte);
71
                fclose($f);
72
        }
73
}
74
 
75
function hash_env_() {
76
        global $HTTP_SERVER_VARS;
77
        return md5($HTTP_SERVER_VARS['REMOTE_ADDR'] . $HTTP_SERVER_VARS['HTTP_USER_AGENT']);
78
}
79
 
80
 
81
// On recherche userid
82
 
83
 
84
 
85
if ($userid != 0) {
86
 
87
    // recherche du login dans la table spip_auteur
88
    // Soit c'est l'email, soit c'est un nom wiki
89
 
90
    mysql_select_db ('tela_prod_v4') ;
91
    $resultat_mail = mysql_query ('select U_MAIL, U_ID from annuaire_tela where U_ID='.$userid)
92
                    or die ("Echec requete<br />".mysql_error());
93
    $ligne_mail = mysql_fetch_object ($resultat_mail) ;
94
 
95
    $l = mysql_connect ('localhost', 'telabotap', '') ;
96
    mysql_select_db ("tela_prod_spip_actu", $l) ;
97
 
98
    $requete_login = 'select login, id_auteur from tela_prod_spip_actu.spip_auteurs where email = "'.$ligne_mail->U_MAIL.'"' ;
99
    $resultat_login = mysql_query ($requete_login, $l)
100
                    or die ('Echec'.mysql_error()) ;
101
    $ligne_login = mysql_fetch_object ($resultat_login) ;
102
 
103
    setcookie("spip_admin", "@".$ligne_login->login, time()+3600*24*30, "/actu/") ;
104
    $id = $ligne_login->id_auteur ;
105
 
106
    $query = "SELECT * FROM spip_auteurs WHERE id_auteur=$ligne_login->id_auteur";
107
    $result = mysql_query($query, $l);
108
    $GLOBALS['auteur_session'] = @mysql_fetch_array($result) ;
109
    $GLOBALS['auteur_session']['statut'] = "1comite" ;
110
    $GLOBALS['auteur_session']['lang'] = "en" ;
111
 
112
    // recherche de l'alea éphémère dans spip_meta
113
    $requete_meta = 'select nom,valeur from spip_meta' ;
114
    $resultat_meta = mysql_query ($requete_meta) or die ('echec') ;
115
    while ($ligne_meta = mysql_fetch_object ($resultat_meta) ) {
116
        if ($ligne_meta->nom == 'alea_ephemere') {
117
            $alea = $ligne_meta->valeur ;
118
        }
119
    }
120
 
121
 
122
 
123
 
124
    if (!isset ($HTTP_COOKIE_VARS['spip_session'])) {
125
        $id_session = $id."_".(md5 (uniqid (rand ())));
126
        setcookie("spip_session", $id_session, time()+3600*24*30, "/actu/") ;
127
 
128
    } else {
129
        $id_session = preg_replace("/[0-9]+_/", '', $HTTP_COOKIE_VARS["spip_session"]) ;
130
 
131
        //$id_session = $HTTP_COOKIE_VARS['spip_session'] ;
132
 
133
        setcookie("spip_session", $id.'_'.$id_session, time()+3600*24*30, "/actu/") ;
134
    }
135
    ajouter_session_($GLOBALS['auteur_session'], $id_session, $ligne_login->id_auteur, $alea) ;
136
    // reconnection à la base botanica
137
    $GS_GLOBAL['link'] = mysql_connect ('localhost', 'telabotap', '') ;
138
    mysql_select_db ('tela_prod_v4') ;
139
 
140
}
141
 
142
?>