php : curl ne fonctionne pas

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

php : curl ne fonctionne pas

Message par papoo »

Bonjour,
sur un site wordpress, j'ai créé un script php contenant une requete mysql pour extraire le nombre d'utilisateurs de ce site.
Cela fonctionne correctement.
dans le même fichier, je souhaite ensuite mettre à jour via json un device sur mon domoticz.

lorsque j'appelle manuellement l'url vers mon domoticz via un navigateur cela fonctionne correctement
mais avec curl cela ne fonctionne pas.
mon script

Code : Tout sélectionner

<?php

$url = 'http://mon_ip.com:8080/json.htm?param=udevice&username=zzzzzzz=&password=zzzzzzz&type=command&idx=1332&nvalue=0&svalue='.$nb;
 
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
  $output = curl_exec($ch);
  curl_close($ch);

    echo $nb;
    echo "</br>";
    echo '<a href="'.$url.'">lien</a>';
?>
$nb => variable contenant le nombre à mettre à jour
j'ai bien sur changé mon , ip les login et mdp au format based64 encode

j'affiche le lien sur la page via echo '<a href="'.$url.'">lien</a>';
et lorsque je clique sur lien cela fonctionne mais pas via la commande curl

j'ai testé aussi

Code : Tout sélectionner

$curl = curl_init($url); 
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);*/
/* $json = json_decode($result);
curl_close($curl);
echo '<pre>';
print_r($json);
echo '</pre>';
sans succès
Dernière modification par papoo le 30 sept. 2018, 21:29, modifié 1 fois.
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: php : curl ne fonctionne pas

Message par vil1driver »

Salut,

As tu testé avec user et pass hors url ?

Code : Tout sélectionner

curl_setopt($curl, CURLOPT_USERPWD, "$username:$password");
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: php : curl ne fonctionne pas

Message par papoo »

merci. je viens de le faire avec les login/mdp encodé 64b et en clair, même problème.
ça ne fonctionne pas.
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: php : curl ne fonctionne pas

Message par vil1driver »

L'authentification dans domoticz est bien sur 'Basi-Auth' ?
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: php : curl ne fonctionne pas

Message par papoo »

oui j'ai essayé les 2
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: php : curl ne fonctionne pas

Message par papoo »

j'ai contourné le problème
je ne cherche plus à envoyer les données depuis le script PHP via curl.
je mets les données $nb au format json

Code : Tout sélectionner

$tableau_pour_json = ['users'=>$nb];
// Convertir le tableau au format json
$contenu_json = json_encode($tableau_pour_json);
et depuis domoticz j'interroge le json via un script lua toutes les 30 minutes
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
Répondre