-<?php\r
-\r
-// vim:set et sw=4 sts=4 sws=4 foldmethod=marker:\r
- class Ancien { \r
- var $NOM_PATR; \r
- var $PART_NOM;\r
- var $PRENOM;\r
- var $NOM_USUEL;\r
- var $PART_NOMUS;\r
- var $NOM_COMPLET;\r
- var $CIVILITE;\r
- var $GRADE;\r
- var $CORPS;\r
- var $PROMO;\r
- var $NATIONALITE;\r
- var $CORPS_LIBELLE;\r
- var $EMAIL; \r
- var $ADRESSE = array();\r
- var $NUM_ADRESSE = 0;\r
- var $ACTIVITE = array();\r
- var $NUM_ACTIVITE = 0;\r
- var $FORMATION = array();\r
- var $NUM_FORMATION = 0; \r
- var $Erreur;\r
- \r
- function Ancien ($aa) {\r
- if ($aa<>'')\r
- {\r
- foreach ($aa as $k=>$v)\r
- $this->$k = $aa[$k];\r
- } \r
- } \r
- function Ajout_adresse ($adresse,$i) {\r
- $this->ADRESSE[$i] = $adresse; \r
- $this->NUM_ADRESSE++;\r
- } \r
- function Ajout_activite ($activite,$i) {\r
- $this->ACTIVITE[$i] = $activite; \r
- $this->NUM_ACTIVITE++;\r
- } \r
- function Ajout_formation ($formation,$i) {\r
- $this->FORMATION[$i] = $formation; \r
- $this->NUM_FORMATION++;\r
- } \r
- function Ajout_erreur ($erreur) {\r
- $this->Erreur = $erreur; \r
- } \r
- function Erreur() {\r
- return $this->Erreur;\r
- } \r
- function Nom_patr() {\r
- return $this->NOM_PATR;\r
- }\r
- function Part_nom() {\r
- return $this->PART_NOM;\r
- }\r
- function Prenom() {\r
- return $this->PRENOM;\r
- }\r
- function Nom_usuel() {\r
- return $this->NOM_USUEL;\r
- }\r
- function Part_nomus() {\r
- return $this->PART_NOMUS;\r
- }\r
- function Nom_complet() {\r
- return $this->NOM_COMPLET;\r
- } \r
- function Civilite() {\r
- return $this->CIVILITE;\r
- } \r
- function Grade() {\r
- return $this->GRADE;\r
- } \r
- function Corps() {\r
- return $this->CORPS;\r
- } \r
- function Corps_Libelle() {\r
- return $this->CORPS_LIBELLE;\r
- } \r
- function Promo() {\r
- return $this->PROMO;\r
- } \r
- function Nationalite() {\r
- return $this->NATIONALITE;\r
- } \r
- function Email() {\r
- return $this->EMAIL;\r
- } \r
- function Adresse_type($i) {\r
- return $this->ADRESSE[$i]->TYPE;\r
- } \r
- function Adresse1($i) {\r
- return $this->ADRESSE[$i]->ADRESS1;\r
- }\r
- function Adresse2($i) {\r
- return $this->ADRESSE[$i]->ADRESS2;\r
- }\r
- function Adresse3($i) {\r
- return $this->ADRESSE[$i]->ADRESS3;\r
- }\r
- function Code_pst($i) {\r
- return $this->ADRESSE[$i]->CODE_PST;\r
- }\r
- function Ville($i) {\r
- return $this->ADRESSE[$i]->VILLE;\r
- }\r
- function Zip_cedex($i) {\r
- return $this->ADRESSE[$i]->ZIPCEDEX;\r
- }\r
- function Etat_region($i) {\r
- return $this->ADRESSE[$i]->ETATREGION;\r
- }\r
- function Pays($i) {\r
- return $this->ADRESSE[$i]->PAYS;\r
- }\r
- function Mobile($i) {\r
- return $this->ADRESSE[$i]->MOBILE;\r
- }\r
- function Tel($i) {\r
- return $this->ADRESSE[$i]->TEL;\r
- } \r
- function Fax($i) {\r
- return $this->ADRESSE[$i]->FAX;\r
- } \r
- function Num_adresse() {\r
- return $this->NUM_ADRESSE;\r
- } \r
- function Entreprise($i) {\r
- return $this->ACTIVITE[$i]->ENTREPRISE;;\r
- }\r
- function Raison_sociale($i) {\r
- return $this->ACTIVITE[$i]->RAISON_SOCIALE;\r
- }\r
- function Fonction($i) {\r
- return $this->ACTIVITE[$i]->FONCTION;\r
- } \r
- function Adresse_act_type($i) {\r
- return $this->ACTIVITE[$i]->TYPE;\r
- }\r
- function Adresse_act_adresse1($i) {\r
- return $this->ACTIVITE[$i]->ADRESS1;\r
- }\r
- function Adresse_act_adresse2($i) {\r
- return $this->ACTIVITE[$i]->ADRESS2;\r
- }\r
- function Adresse_act_adresse3($i) {\r
- return $this->ACTIVITE[$i]->ADRESS3;\r
- }\r
- function Adresse_act_code_pst($i) {\r
- return $this->ACTIVITE[$i]->CODE_PST;\r
- }\r
- function Adresse_act_ville($i) {\r
- return $this->ACTIVITE[$i]->VILLE;\r
- }\r
- function Adresse_act_zip_cedex($i) {\r
- return $this->ACTIVITE[$i]->ZIPCEDEX;\r
- }\r
- function Adresse_act_etat_region($i) {\r
- return $this->ACTIVITE[$i]->ETATREGION;\r
- }\r
- function Adresse_act_pays($i) {\r
- return $this->ACTIVITE[$i]->PAYS;\r
- }\r
- function Adresse_act_mobile($i) {\r
- return $this->ACTIVITE[$i]->MOBILE;\r
- }\r
- function Adresse_act_tel($i) {\r
- return $this->ACTIVITE[$i]->TEL;\r
- } \r
- function Adresse_act_fax($i) {\r
- return $this->ACTIVITE[$i]->FAX;\r
- } \r
- function Num_activite() {\r
- return $this->NUM_ACTIVITE;\r
- } \r
- function Formation($i) {\r
- return $this->FORMATION[$i]->LIBELLE;\r
- } \r
- function Num_formation() {\r
- return $this->NUM_FORMATION;\r
- } \r
- }\r
-\r
- class Adresse { \r
- var $TYPE; \r
- var $ADRESS1;\r
- var $ADRESS2;\r
- var $ADRESS3;\r
- var $CODE_PST;\r
- var $VILLE;\r
- var $ZIPCEDEX;\r
- var $ETATREGION;\r
- var $PAYS;\r
- var $MOBILE;\r
- var $TEL;\r
- var $FAX;\r
- \r
- function Adresse ($aa) {\r
- foreach ($aa as $k=>$v)\r
- $this->$k = $aa[$k]; \r
- } \r
- }\r
- \r
- class Activite { \r
- var $ENTREPRISE;\r
- var $RAISON_SOCIALE;\r
- var $FONCTION;\r
- var $TYPE; \r
- var $ADRESS1;\r
- var $ADRESS2;\r
- var $ADRESS3;\r
- var $CODE_PST;\r
- var $VILLE;\r
- var $ZIPCEDEX;\r
- var $ETATREGION;\r
- var $PAYS;\r
- var $MOBILE;\r
- var $TEL;\r
- var $FAX;\r
- \r
- function Activite ($aa) {\r
- foreach ($aa as $k=>$v)\r
- $this->$k = $aa[$k]; \r
- } \r
- } \r
- \r
- class Formation { \r
- var $LIBELLE;\r
- \r
- function Formation ($aa) {\r
- foreach ($aa as $k=>$v)\r
- $this->$k = $aa[$k]; \r
- } \r
- } \r
- \r
- function xml_get_children($vals, &$i) {\r
- $children = array();\r
- if (isset($vals[$i]['value'])) $children[] = $vals[$i]['value'];\r
- \r
- while (++$i < count($vals)) {\r
- switch ($vals[$i]['type']) {\r
- case 'cdata':\r
- $children[] = $vals[$i]['value'];\r
- break;\r
-\r
- case 'complete':\r
- $children[] = array(\r
- 'tag' => $vals[$i]['tag'],\r
- 'attributes' => isset($vals[$i]['attributes'])?\r
- $vals[$i]['attributes'] : null,\r
- 'value' => $vals[$i]['value'],\r
- );\r
- break;\r
-\r
- case 'open':\r
- $children[] = array(\r
- 'tag' => $vals[$i]['tag'],\r
- 'attributes' => isset($vals[$i]['attributes'])?\r
- $vals[$i]['attributes'] : null,\r
- 'children' => xml_get_children($vals, $i),\r
- );\r
- break;\r
-\r
- case 'close':\r
- return $children;\r
- }\r
- }\r
- }\r
-\r
- //fonction principale de récupération des données de l'ancien\r
- //à indiquer: matricule de l'ancien\r
- function recupere_infos_ancien($AX_MATRICULE)\r
- {\r
- include('config.inc');\r
- \r
- $id =13;//13 params persos ancien\r
- $id_ad = 11; //12 params adresse\r
- $id_ac = 14; //15 params adresse \r
- $id_fo = 1; //1 params fonction \r
- \r
- $erreur = "";\r
- \r
- // Génération d'un identifiant de "session" inter-serveurs\r
- $id_session = md5 (uniqid (rand())); \r
- \r
- // Connexion au serveur pour lui fournir l'identifiant et lui demander un challenge\r
- $challenge = file_get_contents ($nom_script_renvoi_challenge."?id_session=".urlencode($id_session)); \r
- if ($challenge == 'ERROR') \r
- {\r
- $erreur = "Erreur lors de la demande du challenge";\r
- } \r
- else\r
- {\r
- // On va relire la clé privée (codée)\r
- $privkeypass = $phrase;\r
- $pkey_txt = file_get_contents ($chemin_cle_privee);\r
- if (($pkey_res = openssl_pkey_get_private($pkey_txt, $privkeypass)) == false) \r
- {\r
- $erreur = "Erreur lors de l'ouverture de la clé privée";\r
- }\r
- else\r
- {\r
- // Signature du challenge (cryptage avec clé privée)\r
- if ( openssl_private_encrypt($challenge, $response, $pkey_res) == false ) \r
- {\r
- $erreur = "Erreur lors du cryptage du challenge avec la clé privée";\r
- }\r
- else\r
- {\r
- // Signature du login (cryptage avec clé privée)\r
- if ( openssl_private_encrypt($AX_MATRICULE, $AX_MATRICULE_CRYPTE, $pkey_res) == false ) \r
- {\r
- $erreur = "Erreur lors du cryptage du matricule avec la clé privée";\r
- }\r
- else\r
- {\r
- // Envoi de la réponse au serveur avec l'identifiant de l'ancien dont on veut récupérer les infos\r
- $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
- \r
- $parser = xml_parser_create();\r
- xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);\r
- xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);\r
- xml_parse_into_struct($parser, $reponse_serveur, $vals, $index);\r
- xml_parser_free($parser);\r
- \r
- $tree = array();\r
- $tree[] = array(\r
- 'tag' => $vals[0]['tag'],\r
- 'attributes' => isset($vals[0]['attributes'])?\r
- $vals[0]['attributes'] : null,\r
- 'children' => xml_get_children($vals, $i = 0),\r
- );\r
- \r
- for ($i=0; $i < $id; $i++) \r
- {\r
- $val_ancien[$tree[0]['children'][0]['children'][$i]['tag']] = $tree[0]['children'][0]['children'][$i]['value']; \r
- } \r
- \r
- $Ancien_renvoye = new Ancien($val_ancien); \r
- \r
- //adresse while pour nbre d'adresses\r
- $num_ad = 0;\r
- while ($tree[0]['children'][0]['children'][$id]['tag'] == 'ADRESSE')\r
- {\r
- for ($i=0; $i <= $id_ad; $i++) \r
- {\r
- $val_adresse[$tree[0]['children'][0]['children'][$id]['children'][$i]['tag']] = $tree[0]['children'][0]['children'][$id]['children'][$i]['value']; \r
- } \r
- \r
- $Adresse_renvoyee = new Adresse($val_adresse);\r
- $Ancien_renvoye->Ajout_adresse($Adresse_renvoyee,$num_ad); \r
- \r
- //prochaine adresse\r
- $num_ad = $num_ad + 1;\r
- $id = $id+1;\r
- }\r
- \r
- //idem pour activité \r
- $num_ac = 0;\r
- while ($tree[0]['children'][0]['children'][$id]['tag'] == 'ACTIVITE')\r
- {\r
- for ($i=0; $i <= $id_ac; $i++) \r
- {\r
- $val_activite[$tree[0]['children'][0]['children'][$id]['children'][$i]['tag']] = $tree[0]['children'][0]['children'][$id]['children'][$i]['value']; \r
- \r
- for ($j=0; $j <= $id_ad; $j++) \r
- {\r
- $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
- }\r
- } \r
- \r
- $Activite_renvoyee = new Activite($val_activite);\r
- $Ancien_renvoye->Ajout_activite($Activite_renvoyee,$num_ac); \r
- \r
- //prochaine activité\r
- $num_ac = $num_ac + 1;\r
- $id = $id+1;\r
- }\r
- //idem pour formation \r
- $num_fo = 0;\r
- while ($tree[0]['children'][0]['children'][$id]['tag'] == 'FORMATION')\r
- {\r
- for ($i=0; $i <= $id_fo; $i++) \r
- {\r
- $val_formation[$tree[0]['children'][0]['children'][$id]['children'][$i]['tag']] = $tree[0]['children'][0]['children'][$id]['children'][$i]['value']; \r
- } \r
- \r
- $Formation_renvoyee = new Formation($val_formation);\r
- $Ancien_renvoye->Ajout_formation($Formation_renvoyee,$num_fo); \r
- \r
- //prochaine formation\r
- $num_fo = $num_fo + 1;\r
- $id = $id+1;\r
- } \r
- }\r
- }\r
- }\r
- }\r
- \r
- //erreur indiquée\r
- if ($erreur) //erreur ici\r
- {\r
- $Ancien_renvoye = new Ancien('');\r
- $Ancien_renvoye->Ajout_erreur($erreur); \r
- }\r
- else\r
- { //renvoyée par le fichier serveur_renvoie_infos\r
- $Ancien_renvoye->Ajout_erreur($tree[0]['children'][1]['value']);\r
- } \r
- \r
- return $Ancien_renvoye;\r
- }\r
- \r
-?>\r
+<?php
+
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker:
+ class Ancien {
+ var $NOM_PATR;
+ var $PART_NOM;
+ var $PRENOM;
+ var $NOM_USUEL;
+ var $PART_NOMUS;
+ var $NOM_COMPLET;
+ var $CIVILITE;
+ var $GRADE;
+ var $CORPS;
+ var $PROMO;
+ var $NATIONALITE;
+ var $CORPS_LIBELLE;
+ var $EMAIL;
+ var $TYPE_ANC;
+ var $ADRESSE = array();
+ var $NUM_ADRESSE = 0;
+ var $ACTIVITE = array();
+ var $NUM_ACTIVITE = 0;
+ var $FORMATION = array();
+ var $NUM_FORMATION = 0;
+ var $Erreur;
+
+ function Ancien ($aa) {
+ if ($aa<>'')
+ {
+ foreach ($aa as $k=>$v)
+ $this->$k = $aa[$k];
+ }
+ }
+ function Ajout_adresse ($adresse,$i) {
+ $this->ADRESSE[$i] = $adresse;
+ $this->NUM_ADRESSE++;
+ }
+ function Ajout_activite ($activite,$i) {
+ $this->ACTIVITE[$i] = $activite;
+ $this->NUM_ACTIVITE++;
+ }
+ function Ajout_formation ($formation,$i) {
+ $this->FORMATION[$i] = $formation;
+ $this->NUM_FORMATION++;
+ }
+ function Ajout_erreur ($erreur) {
+ $this->Erreur = $erreur;
+ }
+ function Erreur() {
+ return $this->Erreur;
+ }
+ function Nom_patr() {
+ return $this->NOM_PATR;
+ }
+ function Part_nom() {
+ return $this->PART_NOM;
+ }
+ function Prenom() {
+ return $this->PRENOM;
+ }
+ function Nom_usuel() {
+ return $this->NOM_USUEL;
+ }
+ function Part_nomus() {
+ return $this->PART_NOMUS;
+ }
+ function Nom_complet() {
+ return $this->NOM_COMPLET;
+ }
+ function Civilite() {
+ return $this->CIVILITE;
+ }
+ function Grade() {
+ return $this->GRADE;
+ }
+ function Corps() {
+ return $this->CORPS;
+ }
+ function Corps_Libelle() {
+ return $this->CORPS_LIBELLE;
+ }
+ function Promo() {
+ return $this->PROMO;
+ }
+ function Nationalite() {
+ return $this->NATIONALITE;
+ }
+ function Email() {
+ return $this->EMAIL;
+ }
+ function Type_anc() {
+ return $this->TYPE_ANC;
+ }
+ function Adresse_type($i) {
+ return $this->ADRESSE[$i]->TYPE;
+ }
+ function Adresse1($i) {
+ return $this->ADRESSE[$i]->ADRESS1;
+ }
+ function Adresse2($i) {
+ return $this->ADRESSE[$i]->ADRESS2;
+ }
+ function Adresse3($i) {
+ return $this->ADRESSE[$i]->ADRESS3;
+ }
+ function Code_pst($i) {
+ return $this->ADRESSE[$i]->CODE_PST;
+ }
+ function Ville($i) {
+ return $this->ADRESSE[$i]->VILLE;
+ }
+ function Zip_cedex($i) {
+ return $this->ADRESSE[$i]->ZIPCEDEX;
+ }
+ function Etat_region($i) {
+ return $this->ADRESSE[$i]->ETATREGION;
+ }
+ function Pays($i) {
+ return $this->ADRESSE[$i]->PAYS;
+ }
+ function Mobile($i) {
+ return $this->ADRESSE[$i]->MOBILE;
+ }
+ function Tel($i) {
+ return $this->ADRESSE[$i]->TEL;
+ }
+ function Fax($i) {
+ return $this->ADRESSE[$i]->FAX;
+ }
+ function Num_adresse() {
+ return $this->NUM_ADRESSE;
+ }
+ function Entreprise($i) {
+ return $this->ACTIVITE[$i]->ENTREPRISE;;
+ }
+ function Raison_sociale($i) {
+ return $this->ACTIVITE[$i]->RAISON_SOCIALE;
+ }
+ function Fonction($i) {
+ return $this->ACTIVITE[$i]->FONCTION;
+ }
+ function Adresse_act_type($i) {
+ return $this->ACTIVITE[$i]->TYPE;
+ }
+ function Adresse_act_adresse1($i) {
+ return $this->ACTIVITE[$i]->ADRESS1;
+ }
+ function Adresse_act_adresse2($i) {
+ return $this->ACTIVITE[$i]->ADRESS2;
+ }
+ function Adresse_act_adresse3($i) {
+ return $this->ACTIVITE[$i]->ADRESS3;
+ }
+ function Adresse_act_code_pst($i) {
+ return $this->ACTIVITE[$i]->CODE_PST;
+ }
+ function Adresse_act_ville($i) {
+ return $this->ACTIVITE[$i]->VILLE;
+ }
+ function Adresse_act_zip_cedex($i) {
+ return $this->ACTIVITE[$i]->ZIPCEDEX;
+ }
+ function Adresse_act_etat_region($i) {
+ return $this->ACTIVITE[$i]->ETATREGION;
+ }
+ function Adresse_act_pays($i) {
+ return $this->ACTIVITE[$i]->PAYS;
+ }
+ function Adresse_act_mobile($i) {
+ return $this->ACTIVITE[$i]->MOBILE;
+ }
+ function Adresse_act_tel($i) {
+ return $this->ACTIVITE[$i]->TEL;
+ }
+ function Adresse_act_fax($i) {
+ return $this->ACTIVITE[$i]->FAX;
+ }
+ function Num_activite() {
+ return $this->NUM_ACTIVITE;
+ }
+ function Formation($i) {
+ return $this->FORMATION[$i]->LIBELLE;
+ }
+ function Num_formation() {
+ return $this->NUM_FORMATION;
+ }
+ }
+
+ class Adresse {
+ var $TYPE;
+ var $ADRESS1;
+ var $ADRESS2;
+ var $ADRESS3;
+ var $CODE_PST;
+ var $VILLE;
+ var $ZIPCEDEX;
+ var $ETATREGION;
+ var $PAYS;
+ var $MOBILE;
+ var $TEL;
+ var $FAX;
+
+ function Adresse ($aa) {
+ foreach ($aa as $k=>$v)
+ $this->$k = $aa[$k];
+ }
+ }
+
+ class Activite {
+ var $ENTREPRISE;
+ var $RAISON_SOCIALE;
+ var $FONCTION;
+ var $TYPE;
+ var $ADRESS1;
+ var $ADRESS2;
+ var $ADRESS3;
+ var $CODE_PST;
+ var $VILLE;
+ var $ZIPCEDEX;
+ var $ETATREGION;
+ var $PAYS;
+ var $MOBILE;
+ var $TEL;
+ var $FAX;
+
+ function Activite ($aa) {
+ foreach ($aa as $k=>$v)
+ $this->$k = $aa[$k];
+ }
+ }
+
+ class Formation {
+ var $LIBELLE;
+
+ function Formation ($aa) {
+ foreach ($aa as $k=>$v)
+ $this->$k = $aa[$k];
+ }
+ }
+
+ function xml_get_children($vals, &$i) {
+ $children = array();
+ if (isset($vals[$i]['value'])) $children[] = $vals[$i]['value'];
+
+ while (++$i < count($vals)) {
+ switch ($vals[$i]['type']) {
+ case 'cdata':
+ $children[] = $vals[$i]['value'];
+ break;
+
+ case 'complete':
+ $children[] = array(
+ 'tag' => $vals[$i]['tag'],
+ 'attributes' => isset($vals[$i]['attributes'])?
+ $vals[$i]['attributes'] : null,
+ 'value' => $vals[$i]['value'],
+ );
+ break;
+
+ case 'open':
+ $children[] = array(
+ 'tag' => $vals[$i]['tag'],
+ 'attributes' => isset($vals[$i]['attributes'])?
+ $vals[$i]['attributes'] : null,
+ 'children' => xml_get_children($vals, $i),
+ );
+ break;
+
+ case 'close':
+ return $children;
+ }
+ }
+ }
+
+ //fonction principale de récupération des données de l'ancien
+ //à indiquer: matricule de l'ancien
+ function recupere_infos_ancien($AX_MATRICULE)
+ {
+ include('config.inc');
+
+ $id =14;//14 params persos ancien
+ $id_ad = 11; //12 params adresse
+ $id_ac = 14; //15 params adresse
+ $id_fo = 1; //1 params fonction
+
+ $erreur = "";
+
+ // Génération d'un identifiant de "session" inter-serveurs
+ $id_session = md5 (uniqid (rand()));
+
+ // Connexion au serveur pour lui fournir l'identifiant et lui demander un challenge
+ $challenge = file_get_contents ($nom_script_renvoi_challenge."?id_session=".urlencode($id_session));
+ if ($challenge == 'ERROR')
+ {
+ $erreur = "Erreur lors de la demande du challenge";
+ }
+ else
+ {
+ // On va relire la clé privée (codée)
+ $privkeypass = $phrase;
+ $pkey_txt = file_get_contents ($chemin_cle_privee);
+ if (($pkey_res = openssl_pkey_get_private($pkey_txt, $privkeypass)) == false)
+ {
+ $erreur = "Erreur lors de l'ouverture de la clé privée";
+ }
+ else
+ {
+ // Signature du challenge (cryptage avec clé privée)
+ if ( openssl_private_encrypt($challenge, $response, $pkey_res) == false )
+ {
+ $erreur = "Erreur lors du cryptage du challenge avec la clé privée";
+ }
+ else
+ {
+ // Signature du login (cryptage avec clé privée)
+ if ( openssl_private_encrypt($AX_MATRICULE, $AX_MATRICULE_CRYPTE, $pkey_res) == false )
+ {
+ $erreur = "Erreur lors du cryptage du matricule avec la clé privée";
+ }
+ else
+ {
+ // Envoi de la réponse au serveur avec l'identifiant de l'ancien dont on veut récupérer les infos
+ $reponse_serveur .= file_get_contents ($nom_script_renvoi_infos."?id_session=".urlencode($id_session)."&AX_MATRICULE_CRYPTE=".urlencode($AX_MATRICULE_CRYPTE)."&response=".urlencode($response));
+
+ $parser = xml_parser_create();
+ xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
+ xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
+ xml_parse_into_struct($parser, $reponse_serveur, $vals, $index);
+ xml_parser_free($parser);
+
+ $tree = array();
+ $tree[] = array(
+ 'tag' => $vals[0]['tag'],
+ 'attributes' => isset($vals[0]['attributes'])?
+ $vals[0]['attributes'] : null,
+ 'children' => xml_get_children($vals, $i = 0),
+ );
+
+ for ($i=0; $i < $id; $i++)
+ {
+ $val_ancien[$tree[0]['children'][0]['children'][$i]['tag']] = $tree[0]['children'][0]['children'][$i]['value'];
+ }
+
+ $Ancien_renvoye = new Ancien($val_ancien);
+
+ //adresse while pour nbre d'adresses
+ $num_ad = 0;
+ while ($tree[0]['children'][0]['children'][$id]['tag'] == 'ADRESSE')
+ {
+ for ($i=0; $i <= $id_ad; $i++)
+ {
+ $val_adresse[$tree[0]['children'][0]['children'][$id]['children'][$i]['tag']] = $tree[0]['children'][0]['children'][$id]['children'][$i]['value'];
+ }
+
+ $Adresse_renvoyee = new Adresse($val_adresse);
+ $Ancien_renvoye->Ajout_adresse($Adresse_renvoyee,$num_ad);
+
+ //prochaine adresse
+ $num_ad = $num_ad + 1;
+ $id = $id+1;
+ }
+
+ //idem pour activité
+ $num_ac = 0;
+ while ($tree[0]['children'][0]['children'][$id]['tag'] == 'ACTIVITE')
+ {
+ for ($i=0; $i <= $id_ac; $i++)
+ {
+ $val_activite[$tree[0]['children'][0]['children'][$id]['children'][$i]['tag']] = $tree[0]['children'][0]['children'][$id]['children'][$i]['value'];
+
+ for ($j=0; $j <= $id_ad; $j++)
+ {
+ $val_activite[$tree[0]['children'][0]['children'][$id]['children'][$i]['children'][$j]['tag']] = $tree[0]['children'][0]['children'][$id]['children'][$i]['children'][$j]['value'];
+ }
+ }
+
+ $Activite_renvoyee = new Activite($val_activite);
+ $Ancien_renvoye->Ajout_activite($Activite_renvoyee,$num_ac);
+
+ //prochaine activité
+ $num_ac = $num_ac + 1;
+ $id = $id+1;
+ }
+ //idem pour formation
+ $num_fo = 0;
+ while ($tree[0]['children'][0]['children'][$id]['tag'] == 'FORMATION')
+ {
+ for ($i=0; $i <= $id_fo; $i++)
+ {
+ $val_formation[$tree[0]['children'][0]['children'][$id]['children'][$i]['tag']] = $tree[0]['children'][0]['children'][$id]['children'][$i]['value'];
+ }
+
+ $Formation_renvoyee = new Formation($val_formation);
+ $Ancien_renvoye->Ajout_formation($Formation_renvoyee,$num_fo);
+
+ //prochaine formation
+ $num_fo = $num_fo + 1;
+ $id = $id+1;
+ }
+ }
+ }
+ }
+ }
+
+ //erreur indiquée
+ if ($erreur) //erreur ici
+ {
+ $Ancien_renvoye = new Ancien('');
+ $Ancien_renvoye->Ajout_erreur($erreur);
+ }
+ else
+ { //renvoyée par le fichier serveur_renvoie_infos
+ $Ancien_renvoye->Ajout_erreur($tree[0]['children'][1]['value']);
+ }
+
+ return $Ancien_renvoye;
+ }
+
+?>
- <!ELEMENT MESSAGE (CODE_RETOUR, ANCIEN)>\r
- <!ELEMENT CODE_RETOUR (#PCDATA)>\r
- <!ELEMENT ANCIEN (NOM_PATR, PART_NOM, PRENOM, NOM_USUEL, PART_NOMUS, NOM_COMPLET, CIVILITE, GRADE, CORPS, PROMO, NATIONALITE, CORPS_LIBELLE, EMAIL, ADRESSE, ACTIVITE, FORMATION)>\r
- <!ELEMENT NOM_PATR (#PCDATA)>\r
- <!ELEMENT PART_NOM (#PCDATA)>\r
- <!ELEMENT PRENOM (#PCDATA)>\r
- <!ELEMENT NOM_USUEL (#PCDATA)>\r
- <!ELEMENT PART_NOMUS (#PCDATA)>\r
- <!ELEMENT NOM_COMPLET (#PCDATA)>\r
- <!ELEMENT CIVILITE (#PCDATA)>\r
- <!ELEMENT GRADE (#PCDATA)>\r
- <!ELEMENT CORPS (#PCDATA)>\r
- <!ELEMENT PROMO (#PCDATA)>\r
- <!ELEMENT NATIONALITE (#PCDATA)> \r
- <!ELEMENT EMAIL (#PCDATA)> \r
- <!ELEMENT CORPS_LIBELLE (#PCDATA)> \r
- <!ELEMENT ADRESSE (TYPE, ADRESS1, ADRESS2, ADRESS3, CODE_PST, VILLE, ZIPCEDEX, ETATREGION, PAYS, MOBILE,TEL,FAX)>\r
- <!ELEMENT TYPE (#PCDATA)>\r
- <!ELEMENT ADRESS1 (#PCDATA)>\r
- <!ELEMENT ADRESS2 (#PCDATA)>\r
- <!ELEMENT ADRESS3 (#PCDATA)>\r
- <!ELEMENT CODE_PST (#PCDATA)>\r
- <!ELEMENT VILLE (#PCDATA)>\r
- <!ELEMENT ZIPCEDEX (#PCDATA)>\r
- <!ELEMENT ETATREGION (#PCDATA)>\r
- <!ELEMENT PAYS (#PCDATA)>\r
- <!ELEMENT MOBILE (#PCDATA)>\r
- <!ELEMENT TEL (#PCDATA)>\r
- <!ELEMENT FAX (#PCDATA)>\r
- <!ELEMENT ACTIVITE (ENTREPRISE, RAISON_SOCIALE, FONCTION, ADRESSE)>\r
- <!ELEMENT ENTREPRISE (#PCDATA)>\r
- <!ELEMENT RAISON_SOCIALE (#PCDATA)>\r
- <!ELEMENT FONCTION (#PCDATA)>\r
- <!ELEMENT FORMATION (LIBELLE)>\r
+ <!ELEMENT MESSAGE (CODE_RETOUR, ANCIEN)>
+ <!ELEMENT CODE_RETOUR (#PCDATA)>
+ <!ELEMENT ANCIEN (NOM_PATR, PART_NOM, PRENOM, NOM_USUEL, PART_NOMUS, NOM_COMPLET, CIVILITE, GRADE, CORPS, PROMO, NATIONALITE, CORPS_LIBELLE, EMAIL, TYPE_ANC, ADRESSE, ACTIVITE, FORMATION)>
+ <!ELEMENT NOM_PATR (#PCDATA)>
+ <!ELEMENT PART_NOM (#PCDATA)>
+ <!ELEMENT PRENOM (#PCDATA)>
+ <!ELEMENT NOM_USUEL (#PCDATA)>
+ <!ELEMENT PART_NOMUS (#PCDATA)>
+ <!ELEMENT NOM_COMPLET (#PCDATA)>
+ <!ELEMENT CIVILITE (#PCDATA)>
+ <!ELEMENT GRADE (#PCDATA)>
+ <!ELEMENT CORPS (#PCDATA)>
+ <!ELEMENT PROMO (#PCDATA)>
+ <!ELEMENT NATIONALITE (#PCDATA)>
+ <!ELEMENT CORPS_LIBELLE (#PCDATA)>
+ <!ELEMENT EMAIL (#PCDATA)>
+ <!ELEMENT TYPE_ANC (#PCDATA)>
+ <!ELEMENT ADRESSE (TYPE, ADRESS1, ADRESS2, ADRESS3, CODE_PST, VILLE, ZIPCEDEX, ETATREGION, PAYS, MOBILE,TEL,FAX)>
+ <!ELEMENT TYPE (#PCDATA)>
+ <!ELEMENT ADRESS1 (#PCDATA)>
+ <!ELEMENT ADRESS2 (#PCDATA)>
+ <!ELEMENT ADRESS3 (#PCDATA)>
+ <!ELEMENT CODE_PST (#PCDATA)>
+ <!ELEMENT VILLE (#PCDATA)>
+ <!ELEMENT ZIPCEDEX (#PCDATA)>
+ <!ELEMENT ETATREGION (#PCDATA)>
+ <!ELEMENT PAYS (#PCDATA)>
+ <!ELEMENT MOBILE (#PCDATA)>
+ <!ELEMENT TEL (#PCDATA)>
+ <!ELEMENT FAX (#PCDATA)>
+ <!ELEMENT ACTIVITE (ENTREPRISE, RAISON_SOCIALE, FONCTION, ADRESSE)>
+ <!ELEMENT ENTREPRISE (#PCDATA)>
+ <!ELEMENT RAISON_SOCIALE (#PCDATA)>
+ <!ELEMENT FONCTION (#PCDATA)>
+ <!ELEMENT FORMATION (LIBELLE)>
<!ELEMENT LIBELLE (#PCDATA)>
\ No newline at end of file