You are not logged in.
Bonjour
je travaille sur un projet comporte une page web contineant un formulaire a fin de créer un ticket mais les soucie quej'arrive pas a touver l'id de mon utilisateur car mon serveur me donne des erreur depasser le 30s pour excuter la script ci-dessous,
ex : utilisateur a le nom x je peux obtenire son id 10
ex : utilisateur a le nom y je ne peux pas obtenire son id 500
pour moi c'est un probelem de temps d'excution
merci d'avance pour tous ce qui vont particper et essayer de resoudre mon probleme
function get_id_user($headers,$nom){
$ok=false;
$min=0;
$max=100;
while(!$ok){
$i=$min;
// for($i=$min;$i<$max;$i++){
while(!$ok&&$i<$max){
$user=get_user($headers,$i);
if($user["name"]==$nom){
echo $user["name"];
$id=$user["id"];
$ok=true;
echo "<pre>";
print_r($user);
echo "</pre>";
}
$i++;
}
$min=$max;
$max+=100;
}
}
function get_user($headers,$id){
$api_url="http://support-test.calt.local.com/apirest.php/";
$url=$api_url."User/".$id;
$ch = curl_init($api_url);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
$json = curl_exec($ch);
curl_close ($ch);
$obj = json_decode($json,true);
return $obj;
}
Last edited by ibrahim (2019-02-21 18:03:18)
Offline
utilisez tous simplement search :
$url=$api_usl."/search/User/?forcedisplay[0]=2&forcedisplay[1]=34&is_deleted=0&criteria[0][field]=1&criteria[0][searchtype]=contains&criteria[0][value]=^ladenree$";
pour les critères j'ai mis 1 pour retrouver à partir du login mais pour chercher sur le nom utilisez 34
pour avoir la correspondance exacte ajoutez ^ au début et $ à la fin
edit : url corrigée suite erreur typo
Trouver la panne avant de réparer...
GLPI10.0.16 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.3 reports 1.16.0 formcreator 2.13.9, datainjection 2.13.5 fields 1.21.9
Offline
je vous remercie pour votre reponse , en fait je voudrais que la function get user me rend objet user pour recuperer id , app token ...
mais ce url me rend le fait que l'utilisateur est existe ou pas
la reponse reçue :
Array
(
[totalcount] => 1
[count] => 1
[sort] => 1
[order] => ASC
[data] => Array
(
[0] => Array
(
[1] => ibra
)
)
[content-range] => 0-0/1
)
la reponse souhaitée
Array
(
[id] => 534
[name] => ibra
[phone] =>
[phone2] =>
[mobile] =>
[realname] =>
[firstname] => Ibrahim
[locations_id] => 0
[language] =>
[use_mode] => 0
[list_limit] =>
[is_active] => 1
[comment] => service Informatique
[auths_id] => 1
[authtype] => 3
[last_login] => 2019-02-21 11:40:14
[date_mod] => 2018-09-05 11:52:12
[date_sync] => 2019-02-21 11:40:14
[is_deleted] => 0
[profiles_id] => 0
[entities_id] => 0
[usertitles_id] => 0
[usercategories_id] => 0
......
Last edited by ibrahim (2019-02-22 10:35:23)
Offline
dans la réponse reçue vous avez $reponse[data][0][1]=ibra
je suis surpris qu'il n'y ait pas $reponse[data][0][2]= "idUser"
avez vous bien mis forcedisplay[0]=2 ?
une fois que vous avez son id $url=$api_url."User/".$id;
$url=$api_url."User/".$id;
Trouver la panne avant de réparer...
GLPI10.0.16 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.3 reports 1.16.0 formcreator 2.13.9, datainjection 2.13.5 fields 1.21.9
Offline
c'est bon c'est reglé ,il y avait juste une faut dans l'url que vous m'avez envoyé , j'ai remplacé ( , ) par ( &) entre forcedisplay[0]=2&forcedisplay[1]
Merci
Last edited by ibrahim (2019-02-22 12:45:16)
Offline