Page 1 sur 1
Envoyer le contenu fichier vers un serveur sms
Posté : 09 oct. 2016, 09:00
par gtv61
Bonjour,
je vous donne le code,
------------------------------------
<?
//on inclus le fichier conf //
error_reporting(0);
$fichier="toto.txt";
$handle=fopen($fichier, "r");
$contenu=fread($handle,filesize($fichier));
echo $contenu."\n";
$url="
http://192.168.0.53:52007/send.html?sms ... mstype=sms";
echo $url."\n";
//echo exec('wget "
http://192.168.0.53:52007/send.html?sms ... mstype=sms"');
?>
-----------------------------
Voila, la ligne du fond qui est dé-commentée fonctionne très bien , la ligne du dessus récupéré le contenu d'un fichier toto.txt
pour l'intégrer à l'URL mais ne le fait pas parvenir au serveur distant !
-------------------
voila le retour dans dans la page !
test toto
http://192.168.0.53:52007/send.html?sms ... body='test toto '&smstype=sms
-------------------
"test toto" est la valeur lue dans le fichier toto.txt
Mon but est de récupérer dans un fichier la température qu'il renseigne et me la faire parvenir tous les jour
par SMS via un vieux smartphone et un serveur .
Il ne doit pas manquer grand chose dans le fichier php mais je bloque.
Merci pour votre aide
Jean Claude
Re: Envoyer le contenu fichier vers un serveur sms
Posté : 09 oct. 2016, 09:50
par @rthur
Bonjour,
Il faut que tu fasses un urlencode() sur les variables que tu passes en url, par ailleurs je doute que wget ait besoin de guillemets pour ses paramètres. Test en ligne de commande pour vérifier
Re: Envoyer le contenu fichier vers un serveur sms
Posté : 09 oct. 2016, 10:40
par gtv61
Bonjour ,
Peux tu m'en dire un peux plus urlencode() ?
pour le test en ligne de commande sur wget il n'y en a juste avant http sinon ne fonctionne pas !
Merci
Re: Envoyer le contenu fichier vers un serveur sms
Posté : 09 oct. 2016, 10:54
par @rthur
Re: Envoyer le contenu fichier vers un serveur sms
Posté : 09 oct. 2016, 12:17
par gtv61
J'ai pris l'exemple 1 , j'ai bien l'url qui arrive sur la page en bleu je clique dessus et il part en erreur l'encodage ne lui plait pas !
je vais voir un peu plus loin pour les exemples .
Merci
Re: Envoyer le contenu fichier vers un serveur sms
Posté : 10 oct. 2016, 12:37
par gtv61
Bonjour,
toujours en essai mais pas de résultat !
Pourquoi urlencode ? et ne pas l'envoyer normalement !
Cordialement
Jean Claude
Re: Envoyer le contenu fichier vers un serveur sms
Posté : 10 oct. 2016, 14:46
par @rthur
Il est impossible de mettre des caractères spéciaux (notamment des espaces) dans une url, c'est pour cette raison qu'il faut passer par urlencode() qui va encoder tous ses caractères spéciaux qui seront décodés automatiquement par le serveur destinataire.
Re: Envoyer le contenu fichier vers un serveur sms
Posté : 10 oct. 2016, 17:14
par gtv61
Ok je vais vérifier mais sans les caractère spéciaux j'ai des résultat il m’envoie bien les sms en ligne de commande mais avec php s'il y a des espaces dans le contenu du sms il l’envoi que le premier mot .
Au pire même s'il n'y a que le premier mot pas grave mais le tout est qu'il face partir sur le serveur comme le fait la dernière ligne si je la décommente .
Cdt
Jean Claude
Re: Envoyer le contenu fichier vers un serveur sms
Posté : 10 oct. 2016, 19:48
par @rthur
avec php s'il y a des espaces dans le contenu du sms il l’envoi que le premier mot .
Ah ? ça envoie bien avec PHP ?
Je suis pas sûr d'avoir compris le problème alors ?
Re: Envoyer le contenu fichier vers un serveur sms
Posté : 10 oct. 2016, 21:44
par gtv61
Bonsoir Arthur,
//echo exec('wget "
http://192.168.0.53:52007/send.html?sms ... mstype=sms"');
la parti que tu vois fonctionne bien mais ne récupéré rien dans le fichier c'est un envoi simple ,
Mon but est de lire le continu du fichier et de l'intégrer à la place de "toto-est-revenu" pour l'envoyer .
Rien ne part , et en plus reste sur la page web comme lien qui correspond tout a fait avec la ligne que tu vois au dessus ,
si j'y clique dessus j'ai dans l'url il y a :
http://192.168.0.5/test/moncgi?foo=http ... type%3Dsms
-----------------
Voila le résultat et le codage qui part dans l'url, maintenant dans le fichier tout ça au dessous !
----------------
<?
//on inclus le fichier conf //
error_reporting(0);
$fichier="toto.txt";
$handle=fopen($fichier, "r");
$contenu=fread($handle,filesize($fichier));
$url= "
http://192.168.0.53:52007/send.html?sms ... mstype=sms";
echo '<a href="moncgi?foo=', urlencode($url),'">';
echo $url."\n";
//echo exec('wget "
http://192.168.0.53:52007/send.html?sms ... mstype=sms"');
?>
-------------------
Cdt
JC
Re: Envoyer le contenu fichier vers un serveur sms
Posté : 12 oct. 2016, 13:03
par gtv61
Bonjour Arthur,
voici la fonction qui marche ' ou presque'
<?
//on inclus le fichier conf //
error_reporting(0);
echo exec ('cp /sys/bus/w1/devices/w1_bus_master1/28-*/w1_slave /var/www/test/temp.txt');
$fichier="temp.txt";
$handle=fopen($fichier, "r");
$contenu=fread($handle,filesize($fichier));
echo $contenu."\n";
$url= exec('wget "
http://192.168.0.53:52007/send.html?sms ... mstype=sms"');
echo $url."\n";
?>
Et le résultat final est : de echo $contenu affiché dans la page
63 01 55 00 7f ff 0c 10 ec : crc=ec YES 63 01 55 00 7f ff 0c 10 ec t=22187
Si je vais lire un fichier avec du texte normal même long il me le fait parvenir par sms
mais la il bloque . mont but est de faire parvenir seulement "t=22187 " ou même
divisé par 1000, quelle solution pour ne récupérer le t=22187 dans le fichier
Cdt
JC
Re: Envoyer le contenu fichier vers un serveur sms
Posté : 12 oct. 2016, 13:34
par moogli
salut
utillise
substr et
strpos pour ne garde que ce tu as besoin (pense à modifier l'index retourné par strpo pour ne pas garder la chaine qui sert de délimiteur vu que c'est la position du 1er caractère qui est retournée).
@+
Re: Envoyer le contenu fichier vers un serveur sms
Posté : 12 oct. 2016, 16:03
par gtv61
Bonjour Moogli,
J'avais un truc tout simple mais pour le faire fonctionner ! !
cp /sys/bus/w1/devices/28-03*/w1_slave | grep "t=" | awk -F "t=" '{print $2/1000}' /var/www/temp/temp.txt
mais copier avec "| grep "t=" | awk -F "t=" '{print $2/1000}'" il n'en veux pas ! alors qu'il ne reste que la valeur ex: 28.182 mais sans :
/var/www/temp/temp.txt .
il doit y avoir une solution pour qu'il considère que | grep "t=" | awk -F "t=" '{print $2/1000} fasse parti de la copie et non du destinataire .
Merci et à suivre
JC
Re: Envoyer le contenu fichier vers un serveur sms
Posté : 18 oct. 2016, 20:47
par gtv61
Voici le résultat qui fonctionne
Partie php :
<?
echo ('T=');
$temp = exec('"./temp.sh"');
echo $temp,"\n";
$url= exec('wget "
http://192.168.0.53:52007/send.html?sms ... mstype=sms"');
?>
Et la partie temp.sh :
#!/bin/bash
sudo cat /sys/bus/w1/devices/28-03*/w1_slave | grep "t=" | awk -F "t=" '{print $2/1000}'
Merci et à bientôt
Jean Claude