3 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker:
19 var $ADRESSE = array();
21 var $ACTIVITE = array();
22 var $NUM_ACTIVITE = 0;
23 var $FORMATION = array();
24 var $NUM_FORMATION = 0;
27 function Ancien ($aa) {
30 foreach ($aa as $k=>$v)
34 function Ajout_adresse ($adresse,$i) {
35 $this->ADRESSE[$i] = $adresse;
38 function Ajout_activite ($activite,$i) {
39 $this->ACTIVITE[$i] = $activite;
40 $this->NUM_ACTIVITE++;
42 function Ajout_formation ($formation,$i) {
43 $this->FORMATION[$i] = $formation;
44 $this->NUM_FORMATION++;
46 function Ajout_erreur ($erreur) {
47 $this->Erreur = $erreur;
53 return $this->NOM_PATR;
56 return $this->PART_NOM;
61 function Nom_usuel() {
62 return $this->NOM_USUEL;
64 function Part_nomus() {
65 return $this->PART_NOMUS;
67 function Nom_complet() {
68 return $this->NOM_COMPLET;
71 return $this->CIVILITE;
79 function Corps_Libelle() {
80 return $this->CORPS_LIBELLE;
85 function Nationalite() {
86 return $this->NATIONALITE;
92 return $this->TYPE_ANC;
94 function Adresse_type($i) {
95 return $this->ADRESSE[$i]->TYPE;
97 function Adresse1($i) {
98 return $this->ADRESSE[$i]->ADRESS1;
100 function Adresse2($i) {
101 return $this->ADRESSE[$i]->ADRESS2;
103 function Adresse3($i) {
104 return $this->ADRESSE[$i]->ADRESS3;
106 function Code_pst($i) {
107 return $this->ADRESSE[$i]->CODE_PST;
110 return $this->ADRESSE[$i]->VILLE;
112 function Zip_cedex($i) {
113 return $this->ADRESSE[$i]->ZIPCEDEX;
115 function Etat_region($i) {
116 return $this->ADRESSE[$i]->ETATREGION;
119 return $this->ADRESSE[$i]->PAYS;
121 function Mobile($i) {
122 return $this->ADRESSE[$i]->MOBILE;
125 return $this->ADRESSE[$i]->TEL;
128 return $this->ADRESSE[$i]->FAX;
130 function Num_adresse() {
131 return $this->NUM_ADRESSE;
133 function Entreprise($i) {
134 return $this->ACTIVITE[$i]->ENTREPRISE;;
136 function Raison_sociale($i) {
137 return $this->ACTIVITE[$i]->RAISON_SOCIALE;
139 function Fonction($i) {
140 return $this->ACTIVITE[$i]->FONCTION;
142 function Adresse_act_type($i) {
143 return $this->ACTIVITE[$i]->TYPE;
145 function Adresse_act_adresse1($i) {
146 return $this->ACTIVITE[$i]->ADRESS1;
148 function Adresse_act_adresse2($i) {
149 return $this->ACTIVITE[$i]->ADRESS2;
151 function Adresse_act_adresse3($i) {
152 return $this->ACTIVITE[$i]->ADRESS3;
154 function Adresse_act_code_pst($i) {
155 return $this->ACTIVITE[$i]->CODE_PST;
157 function Adresse_act_ville($i) {
158 return $this->ACTIVITE[$i]->VILLE;
160 function Adresse_act_zip_cedex($i) {
161 return $this->ACTIVITE[$i]->ZIPCEDEX;
163 function Adresse_act_etat_region($i) {
164 return $this->ACTIVITE[$i]->ETATREGION;
166 function Adresse_act_pays($i) {
167 return $this->ACTIVITE[$i]->PAYS;
169 function Adresse_act_mobile($i) {
170 return $this->ACTIVITE[$i]->MOBILE;
172 function Adresse_act_tel($i) {
173 return $this->ACTIVITE[$i]->TEL;
175 function Adresse_act_fax($i) {
176 return $this->ACTIVITE[$i]->FAX;
178 function Num_activite() {
179 return $this->NUM_ACTIVITE;
181 function Formation($i) {
182 return $this->FORMATION[$i]->LIBELLE;
184 function Num_formation() {
185 return $this->NUM_FORMATION;
203 function Adresse ($aa) {
204 foreach ($aa as $k=>$v)
226 function Activite ($aa) {
227 foreach ($aa as $k=>$v)
235 function Formation ($aa) {
236 foreach ($aa as $k=>$v)
241 function xml_get_children($vals, &$i) {
243 if (isset($vals[$i]['value'])) $children[] = $vals[$i]['value'];
245 while (++$i < count($vals)) {
246 switch ($vals[$i]['type']) {
248 $children[] = $vals[$i]['value'];
253 'tag' => $vals[$i]['tag'],
254 'attributes' => isset($vals[$i]['attributes'])?
255 $vals[$i]['attributes'] : null,
256 'value' => $vals[$i]['value'],
262 'tag' => $vals[$i]['tag'],
263 'attributes' => isset($vals[$i]['attributes'])?
264 $vals[$i]['attributes'] : null,
265 'children' => xml_get_children($vals, $i),
275 //fonction principale de récupération des données de l'ancien
276 //à indiquer: matricule de l'ancien
277 function recupere_infos_ancien($AX_MATRICULE)
279 include('config.inc');
281 $id =14;//14 params persos ancien
282 $id_ad = 11; //12 params adresse
283 $id_ac = 14; //15 params adresse
284 $id_fo = 1; //1 params fonction
288 // Génération d'un identifiant de "session" inter-serveurs
289 $id_session = md5 (uniqid (rand()));
291 // Connexion au serveur pour lui fournir l'identifiant et lui demander un challenge
292 $challenge = file_get_contents ($nom_script_renvoi_challenge."?id_session=".urlencode($id_session));
293 if ($challenge == 'ERROR')
295 $erreur = "Erreur lors de la demande du challenge";
299 // On va relire la clé privée (codée)
300 $privkeypass = $phrase;
301 $pkey_txt = file_get_contents ($chemin_cle_privee);
302 if (($pkey_res = openssl_pkey_get_private($pkey_txt, $privkeypass)) == false)
304 $erreur = "Erreur lors de l'ouverture de la clé privée";
308 // Signature du challenge (cryptage avec clé privée)
309 if ( openssl_private_encrypt($challenge, $response, $pkey_res) == false )
311 $erreur = "Erreur lors du cryptage du challenge avec la clé privée";
315 // Signature du login (cryptage avec clé privée)
316 if ( openssl_private_encrypt($AX_MATRICULE, $AX_MATRICULE_CRYPTE, $pkey_res) == false )
318 $erreur = "Erreur lors du cryptage du matricule avec la clé privée";
322 // Envoi de la réponse au serveur avec l'identifiant de l'ancien dont on veut récupérer les infos
323 $reponse_serveur .= file_get_contents ($nom_script_renvoi_infos."?id_session=".urlencode($id_session)."&AX_MATRICULE_CRYPTE=".urlencode($AX_MATRICULE_CRYPTE)."&response=".urlencode($response));
325 $parser = xml_parser_create();
326 xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
327 xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
328 xml_parse_into_struct($parser, $reponse_serveur, $vals, $index);
329 xml_parser_free($parser);
333 'tag' => $vals[0]['tag'],
334 'attributes' => isset($vals[0]['attributes'])?
335 $vals[0]['attributes'] : null,
336 'children' => xml_get_children($vals, $i = 0),
339 for ($i=0; $i < $id; $i++)
341 $val_ancien[$tree[0]['children'][0]['children'][$i]['tag']] = $tree[0]['children'][0]['children'][$i]['value'];
344 $Ancien_renvoye = new Ancien($val_ancien);
346 //adresse while pour nbre d'adresses
348 while ($tree[0]['children'][0]['children'][$id]['tag'] == 'ADRESSE')
350 for ($i=0; $i <= $id_ad; $i++)
352 $val_adresse[$tree[0]['children'][0]['children'][$id]['children'][$i]['tag']] = $tree[0]['children'][0]['children'][$id]['children'][$i]['value'];
355 $Adresse_renvoyee = new Adresse($val_adresse);
356 $Ancien_renvoye->Ajout_adresse($Adresse_renvoyee,$num_ad);
359 $num_ad = $num_ad + 1;
365 while ($tree[0]['children'][0]['children'][$id]['tag'] == 'ACTIVITE')
367 for ($i=0; $i <= $id_ac; $i++)
369 $val_activite[$tree[0]['children'][0]['children'][$id]['children'][$i]['tag']] = $tree[0]['children'][0]['children'][$id]['children'][$i]['value'];
371 for ($j=0; $j <= $id_ad; $j++)
373 $val_activite[$tree[0]['children'][0]['children'][$id]['children'][$i]['children'][$j]['tag']] = $tree[0]['children'][0]['children'][$id]['children'][$i]['children'][$j]['value'];
377 $Activite_renvoyee = new Activite($val_activite);
378 $Ancien_renvoye->Ajout_activite($Activite_renvoyee,$num_ac);
381 $num_ac = $num_ac + 1;
384 //idem pour formation
386 while ($tree[0]['children'][0]['children'][$id]['tag'] == 'FORMATION')
388 for ($i=0; $i <= $id_fo; $i++)
390 $val_formation[$tree[0]['children'][0]['children'][$id]['children'][$i]['tag']] = $tree[0]['children'][0]['children'][$id]['children'][$i]['value'];
393 $Formation_renvoyee = new Formation($val_formation);
394 $Ancien_renvoye->Ajout_formation($Formation_renvoyee,$num_fo);
396 //prochaine formation
397 $num_fo = $num_fo + 1;
406 if ($erreur) //erreur ici
408 $Ancien_renvoye = new Ancien('');
409 $Ancien_renvoye->Ajout_erreur($erreur);
412 { //renvoyée par le fichier serveur_renvoie_infos
413 $Ancien_renvoye->Ajout_erreur($tree[0]['children'][1]['value']);
416 return $Ancien_renvoye;