Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1949 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [HTML/PHP] Redirection via Arduino

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[HTML/PHP] Redirection via Arduino

n°2296927
Gwy_
Posté le 28-02-2017 à 14:46:52  profilanswer
 

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
mood
Publicité
Posté le 28-02-2017 à 14:46:52  profilanswer
 

n°2296931
Anonymouse
Posté le 28-02-2017 à 15:13:32  profilanswer
 

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
 

n°2296933
B4X
Golden boy.
Posté le 28-02-2017 à 15:24:19  profilanswer
 

Rassure-moi, ton code dans "transfert.php", c'est pas juste une redirection 302 avec un header('Location: https://ton-api-sms'); ?
Si c'est le cas, ça n'a aucun sens. Si tu redirige vers du https, que ce soit en HTML avec une metarefresh, en JS avec un windowlocation, en PHP avec un header, ça revient au même pour l'OS de ton Arduino qui manifestement ne gère pas le ssl.
 
Ton "transfert.php" devrait se comporter comme un proxy. Cherche "php curl" sur google. T'en a pour 15-20 lignes de code max à priori pour faire marcher ton truc.


---------------
In vanitas veritas.
n°2296938
Gwy_
Posté le 28-02-2017 à 16:00:19  profilanswer
 

"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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [HTML/PHP] Redirection via Arduino

 

Sujets relatifs
Passer de MySQL à MySQLi pour PHP 7Formulaire créé en javascript limité à 90 "lignes"
[PHP] pourquoi ma regex ne marche pas ?Programmer un lecteur code barre arduino
Chargement page HTML[PHP] Lire la page HTML d'un site sur lequel on est connecté
PHP - Apache, best practices pour serveur multi sitesPb lecture mail envoyé via PHP
Html Fancybox 
Plus de sujets relatifs à : [HTML/PHP] Redirection via Arduino



Copyright © 1997-2016 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR