3 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker:
\r
18 var $ADRESSE = array();
\r
19 var $NUM_ADRESSE = 0;
\r
20 var $ACTIVITE = array();
\r
21 var $NUM_ACTIVITE = 0;
\r
22 var $FORMATION = array();
\r
23 var $NUM_FORMATION = 0;
\r
26 function Ancien ($aa) {
\r
29 foreach ($aa as $k=>$v)
\r
30 $this->$k = $aa[$k];
\r
33 function Ajout_adresse ($adresse,$i) {
\r
34 $this->ADRESSE[$i] = $adresse;
\r
35 $this->NUM_ADRESSE++;
\r
37 function Ajout_activite ($activite,$i) {
\r
38 $this->ACTIVITE[$i] = $activite;
\r
39 $this->NUM_ACTIVITE++;
\r
41 function Ajout_formation ($formation,$i) {
\r
42 $this->FORMATION[$i] = $formation;
\r
43 $this->NUM_FORMATION++;
\r
45 function Ajout_erreur ($erreur) {
\r
46 $this->Erreur = $erreur;
\r
49 return $this->Erreur;
\r
51 function Nom_patr() {
\r
52 return $this->NOM_PATR;
\r
54 function Part_nom() {
\r
55 return $this->PART_NOM;
\r
58 return $this->PRENOM;
\r
60 function Nom_usuel() {
\r
61 return $this->NOM_USUEL;
\r
63 function Part_nomus() {
\r
64 return $this->PART_NOMUS;
\r
66 function Nom_complet() {
\r
67 return $this->NOM_COMPLET;
\r
69 function Civilite() {
\r
70 return $this->CIVILITE;
\r
73 return $this->GRADE;
\r
76 return $this->CORPS;
\r
78 function Corps_Libelle() {
\r
79 return $this->CORPS_LIBELLE;
\r
82 return $this->PROMO;
\r
84 function Nationalite() {
\r
85 return $this->NATIONALITE;
\r
88 return $this->EMAIL;
\r
90 function Adresse_type($i) {
\r
91 return $this->ADRESSE[$i]->TYPE;
\r
93 function Adresse1($i) {
\r
94 return $this->ADRESSE[$i]->ADRESS1;
\r
96 function Adresse2($i) {
\r
97 return $this->ADRESSE[$i]->ADRESS2;
\r
99 function Adresse3($i) {
\r
100 return $this->ADRESSE[$i]->ADRESS3;
\r
102 function Code_pst($i) {
\r
103 return $this->ADRESSE[$i]->CODE_PST;
\r
105 function Ville($i) {
\r
106 return $this->ADRESSE[$i]->VILLE;
\r
108 function Zip_cedex($i) {
\r
109 return $this->ADRESSE[$i]->ZIPCEDEX;
\r
111 function Etat_region($i) {
\r
112 return $this->ADRESSE[$i]->ETATREGION;
\r
114 function Pays($i) {
\r
115 return $this->ADRESSE[$i]->PAYS;
\r
117 function Mobile($i) {
\r
118 return $this->ADRESSE[$i]->MOBILE;
\r
121 return $this->ADRESSE[$i]->TEL;
\r
124 return $this->ADRESSE[$i]->FAX;
\r
126 function Num_adresse() {
\r
127 return $this->NUM_ADRESSE;
\r
129 function Entreprise($i) {
\r
130 return $this->ACTIVITE[$i]->ENTREPRISE;;
\r
132 function Raison_sociale($i) {
\r
133 return $this->ACTIVITE[$i]->RAISON_SOCIALE;
\r
135 function Fonction($i) {
\r
136 return $this->ACTIVITE[$i]->FONCTION;
\r
138 function Adresse_act_type($i) {
\r
139 return $this->ACTIVITE[$i]->TYPE;
\r
141 function Adresse_act_adresse1($i) {
\r
142 return $this->ACTIVITE[$i]->ADRESS1;
\r
144 function Adresse_act_adresse2($i) {
\r
145 return $this->ACTIVITE[$i]->ADRESS2;
\r
147 function Adresse_act_adresse3($i) {
\r
148 return $this->ACTIVITE[$i]->ADRESS3;
\r
150 function Adresse_act_code_pst($i) {
\r
151 return $this->ACTIVITE[$i]->CODE_PST;
\r
153 function Adresse_act_ville($i) {
\r
154 return $this->ACTIVITE[$i]->VILLE;
\r
156 function Adresse_act_zip_cedex($i) {
\r
157 return $this->ACTIVITE[$i]->ZIPCEDEX;
\r
159 function Adresse_act_etat_region($i) {
\r
160 return $this->ACTIVITE[$i]->ETATREGION;
\r
162 function Adresse_act_pays($i) {
\r
163 return $this->ACTIVITE[$i]->PAYS;
\r
165 function Adresse_act_mobile($i) {
\r
166 return $this->ACTIVITE[$i]->MOBILE;
\r
168 function Adresse_act_tel($i) {
\r
169 return $this->ACTIVITE[$i]->TEL;
\r
171 function Adresse_act_fax($i) {
\r
172 return $this->ACTIVITE[$i]->FAX;
\r
174 function Num_activite() {
\r
175 return $this->NUM_ACTIVITE;
\r
177 function Formation($i) {
\r
178 return $this->FORMATION[$i]->LIBELLE;
\r
180 function Num_formation() {
\r
181 return $this->NUM_FORMATION;
\r
199 function Adresse ($aa) {
\r
200 foreach ($aa as $k=>$v)
\r
201 $this->$k = $aa[$k];
\r
207 var $RAISON_SOCIALE;
\r
222 function Activite ($aa) {
\r
223 foreach ($aa as $k=>$v)
\r
224 $this->$k = $aa[$k];
\r
231 function Formation ($aa) {
\r
232 foreach ($aa as $k=>$v)
\r
233 $this->$k = $aa[$k];
\r
237 function xml_get_children($vals, &$i) {
\r
238 $children = array();
\r
239 if (isset($vals[$i]['value'])) $children[] = $vals[$i]['value'];
\r
241 while (++$i < count($vals)) {
\r
242 switch ($vals[$i]['type']) {
\r
244 $children[] = $vals[$i]['value'];
\r
248 $children[] = array(
\r
249 'tag' => $vals[$i]['tag'],
\r
250 'attributes' => isset($vals[$i]['attributes'])?
\r
251 $vals[$i]['attributes'] : null,
\r
252 'value' => $vals[$i]['value'],
\r
257 $children[] = array(
\r
258 'tag' => $vals[$i]['tag'],
\r
259 'attributes' => isset($vals[$i]['attributes'])?
\r
260 $vals[$i]['attributes'] : null,
\r
261 'children' => xml_get_children($vals, $i),
\r
271 //fonction principale de récupération des données de l'ancien
\r
272 //à indiquer: matricule de l'ancien
\r
273 function recupere_infos_ancien($AX_MATRICULE)
\r
275 include('config.inc');
\r
277 $id =13;//13 params persos ancien
\r
278 $id_ad = 11; //12 params adresse
\r
279 $id_ac = 14; //15 params adresse
\r
280 $id_fo = 1; //1 params fonction
\r
284 // Génération d'un identifiant de "session" inter-serveurs
\r
285 $id_session = md5 (uniqid (rand()));
\r
287 // Connexion au serveur pour lui fournir l'identifiant et lui demander un challenge
\r
288 $challenge = file_get_contents ($nom_script_renvoi_challenge."?id_session=".urlencode($id_session));
\r
289 if ($challenge == 'ERROR')
\r
291 $erreur = "Erreur lors de la demande du challenge";
\r
295 // On va relire la clé privée (codée)
\r
296 $privkeypass = $phrase;
\r
297 $pkey_txt = file_get_contents ($chemin_cle_privee);
\r
298 if (($pkey_res = openssl_pkey_get_private($pkey_txt, $privkeypass)) == false)
\r
300 $erreur = "Erreur lors de l'ouverture de la clé privée";
\r
304 // Signature du challenge (cryptage avec clé privée)
\r
305 if ( openssl_private_encrypt($challenge, $response, $pkey_res) == false )
\r
307 $erreur = "Erreur lors du cryptage du challenge avec la clé privée";
\r
311 // Signature du login (cryptage avec clé privée)
\r
312 if ( openssl_private_encrypt($AX_MATRICULE, $AX_MATRICULE_CRYPTE, $pkey_res) == false )
\r
314 $erreur = "Erreur lors du cryptage du matricule avec la clé privée";
\r
318 // Envoi de la réponse au serveur avec l'identifiant de l'ancien dont on veut récupérer les infos
\r
319 $reponse_serveur .= file_get_contents ($nom_script_renvoi_infos."?id_session=".urlencode($id_session)."&AX_MATRICULE_CRYPTE=".urlencode($AX_MATRICULE_CRYPTE)."&response=".urlencode($response));
\r
321 $parser = xml_parser_create();
\r
322 xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
\r
323 xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
\r
324 xml_parse_into_struct($parser, $reponse_serveur, $vals, $index);
\r
325 xml_parser_free($parser);
\r
329 'tag' => $vals[0]['tag'],
\r
330 'attributes' => isset($vals[0]['attributes'])?
\r
331 $vals[0]['attributes'] : null,
\r
332 'children' => xml_get_children($vals, $i = 0),
\r
335 for ($i=0; $i < $id; $i++)
\r
337 $val_ancien[$tree[0]['children'][0]['children'][$i]['tag']] = $tree[0]['children'][0]['children'][$i]['value'];
\r
340 $Ancien_renvoye = new Ancien($val_ancien);
\r
342 //adresse while pour nbre d'adresses
\r
344 while ($tree[0]['children'][0]['children'][$id]['tag'] == 'ADRESSE')
\r
346 for ($i=0; $i <= $id_ad; $i++)
\r
348 $val_adresse[$tree[0]['children'][0]['children'][$id]['children'][$i]['tag']] = $tree[0]['children'][0]['children'][$id]['children'][$i]['value'];
\r
351 $Adresse_renvoyee = new Adresse($val_adresse);
\r
352 $Ancien_renvoye->Ajout_adresse($Adresse_renvoyee,$num_ad);
\r
354 //prochaine adresse
\r
355 $num_ad = $num_ad + 1;
\r
359 //idem pour activité
\r
361 while ($tree[0]['children'][0]['children'][$id]['tag'] == 'ACTIVITE')
\r
363 for ($i=0; $i <= $id_ac; $i++)
\r
365 $val_activite[$tree[0]['children'][0]['children'][$id]['children'][$i]['tag']] = $tree[0]['children'][0]['children'][$id]['children'][$i]['value'];
\r
367 for ($j=0; $j <= $id_ad; $j++)
\r
369 $val_activite[$tree[0]['children'][0]['children'][$id]['children'][$i]['children'][$j]['tag']] = $tree[0]['children'][0]['children'][$id]['children'][$i]['children'][$j]['value'];
\r
373 $Activite_renvoyee = new Activite($val_activite);
\r
374 $Ancien_renvoye->Ajout_activite($Activite_renvoyee,$num_ac);
\r
376 //prochaine activité
\r
377 $num_ac = $num_ac + 1;
\r
380 //idem pour formation
\r
382 while ($tree[0]['children'][0]['children'][$id]['tag'] == 'FORMATION')
\r
384 for ($i=0; $i <= $id_fo; $i++)
\r
386 $val_formation[$tree[0]['children'][0]['children'][$id]['children'][$i]['tag']] = $tree[0]['children'][0]['children'][$id]['children'][$i]['value'];
\r
389 $Formation_renvoyee = new Formation($val_formation);
\r
390 $Ancien_renvoye->Ajout_formation($Formation_renvoyee,$num_fo);
\r
392 //prochaine formation
\r
393 $num_fo = $num_fo + 1;
\r
402 if ($erreur) //erreur ici
\r
404 $Ancien_renvoye = new Ancien('');
\r
405 $Ancien_renvoye->Ajout_erreur($erreur);
\r
408 { //renvoyée par le fichier serveur_renvoie_infos
\r
409 $Ancien_renvoye->Ajout_erreur($tree[0]['children'][1]['value']);
\r
412 return $Ancien_renvoye;
\r