[HTML/PHP] Redirection via Arduino

Redirection via Arduino [HTML/PHP] - PHP - Programmation

Marsh Posté le 28-02-2017 à 14:46:52    

Salut les cerveaux...
Je viens demander de l'aide pour un projet perso où je suis coincé.
Je suis sur une domotique Arduino+Ethernet, la prog s'est pas trop mal passée, la fonction mini-serveur HTML fonctionne et réagit aux ordres.
La fonction 'envoi SMS" prévue ne se passe pas bien : je passe par le serveur sms de free qui est en https (pas géré par arduino). On m'a donc conseillé de passer par un serveur intermédiaire en HTTP et de faire une redirection JS ou PHP avec passage de paramètres.
Donc sur un serveur gratuit j'ai un rép "priv" où j'ai mis un fichier PHP, un JS et d'autres en HTML sans passage de paramètres "window.location.href = ...." un autre "<meta http-equiv="Refresh" content="10;URL=https:....."
 
Tous fonctionnent en direct des navigateurs : j'ouvre "http://guy.siite.com/priv" je tape "?txt=blabla" et "blabla" arrive en SMS, pareil si j'ouvre la page HTML,  
mais à partir de l'arduino, Niet, la page s'ouvre, me renvoie l'adresse de la redirection y compris les paramètres et le code, mais n'envoie pas la redirection.
 
J'envoie :  
----------------
connect "gwy.siite.com"
 
"POST /priv/transfert.php?txt="   (pareil avec un GET)
 
txtsms                            (une variable déclarée "TEXTE" )
 
" HTTP/1.1 200 OK"
 
"Host:gwy.siite.com"
 
"Content-Type: application/x-www-form-urlencoded"
"$cr"                               (pour essayer de forcer)
'\r'                                      "          "
 
(les 3 dernières lignes sont sans incidence sur les résultats)
---------
 
réponse du serveur :  
 
connecting...
connected
HTTP/1.1 302 Found
Date: Mon, 27 Feb 2017 17:38:40 GMT
Server: Apache
X-Powered-By: PHP/5.2.17
Location: https://smsapi.free-mobile.fr/sendm [...] &msg=TEXTE
Content-Length: 0
Connection: close
Content-Type: text/html
X-Pad: avoid browser bug
disconnecting.
 
---
La ligne "Location: https:/..." est dans mon script PHP et "TEXTE' à la fin est la variable prise en compte.  
J'ai essayé de déplacer les "$cr" '\r' sans incidence, mettre des temporisation entre chaque envoi...
Les redir sur fichier html ou JS sont similaires mais m'affichent la totalité du code de la page
 
J'ai l'impression d'être sur la bonne voie, mais qu'il manque quelque chose de basique...


---------------
100% pur porc
Reply

Marsh Posté le 28-02-2017 à 14:46:52   

Reply

Marsh Posté le 28-02-2017 à 15:13:32    

Gwy_ a écrit :

Salut les cerveaux...
Je viens demander de l'aide pour un projet perso où je suis coincé.
Je suis sur une domotique Arduino+Ethernet, la prog s'est pas trop mal passée, la fonction mini-serveur HTML fonctionne et réagit aux ordres.
La fonction 'envoi SMS" prévue ne se passe pas bien : je passe par le serveur sms de free qui est en https (pas géré par arduino). On m'a donc conseillé de passer par un serveur intermédiaire en HTTP et de faire une redirection JS ou PHP avec passage de paramètres.
Donc sur un serveur gratuit j'ai un rép "priv" où j'ai mis un fichier PHP, un JS et d'autres en HTML sans passage de paramètres "window.location.href = ...." un autre "<meta http-equiv="Refresh" content="10;URL=https:....."
 
Tous fonctionnent en direct des navigateurs : j'ouvre "http://guy.siite.com/priv" je tape "?txt=blabla" et "blabla" arrive en SMS, pareil si j'ouvre la page HTML,  
mais à partir de l'arduino, Niet, la page s'ouvre, me renvoie l'adresse de la redirection y compris les paramètres et le code, mais n'envoie pas la redirection.
 
J'envoie :  
----------------
connect "gwy.siite.com"
 
"POST /priv/transfert.php?txt="   (pareil avec un GET)
 
txtsms                            (une variable déclarée "TEXTE" )
 
" HTTP/1.1 200 OK"
 
"Host:gwy.siite.com"
 
"Content-Type: application/x-www-form-urlencoded"
"$cr"                               (pour essayer de forcer)
'\r'                                      "          "
 
(les 3 dernières lignes sont sans incidence sur les résultats)
---------
 
réponse du serveur :  
 
connecting...
connected
HTTP/1.1 302 Found
Date: Mon, 27 Feb 2017 17:38:40 GMT
Server: Apache
X-Powered-By: PHP/5.2.17
Location: https://smsapi.free-mobile.fr/sendm [...] &msg=TEXTE
Content-Length: 0
Connection: close
Content-Type: text/html
X-Pad: avoid browser bug
disconnecting.
 
---
La ligne "Location: https:/..." est dans mon script PHP et "TEXTE' à la fin est la variable prise en compte.  
J'ai essayé de déplacer les "$cr" '\r' sans incidence, mettre des temporisation entre chaque envoi...
Les redir sur fichier html ou JS sont similaires mais m'affichent la totalité du code de la page
 
J'ai l'impression d'être sur la bonne voie, mais qu'il manque quelque chose de basique...


 
J'ai pas tout compris à ton explication mais:
- Si c'est le JS qui déclenche l'envoie du SMS bah il s'exécute quand tu ouvres la page dans ton navigateur vu que c'est le navigateur qui exécute le Javascript.
-Dans le Arduino il ne s'exécute pas vu que ton arduino ne dispose surement pas de moteur d'exécution du javascript
 

Reply

Marsh Posté le 28-02-2017 à 16:00:19    

"Rassure-moi, ton code dans "transfert.php", c'est pas juste une redirection 302 avec un header('Location: https://ton-api-sms'); ? "
 
Bah si, ça a l'air d'être ça...
Je vais essayer de comprendre le principe du  "curl"
 
Edit :
Je viens d'essayer 5 scripts Curl /PHP, aucun ne fonctionne, même pas via un navigateur, à priori le site ne renvoie pas d'erreur (j'ai mis des "ECHO" partout), mais ça n'envoie pas, ça sent pas bon...


Message édité par Gwy_ le 28-02-2017 à 18:51:42

---------------
100% pur porc
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed