Besoin d'aide : Envoyer des requêtes MQTT via un script PHP

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Besoin d'aide : Envoyer des requêtes MQTT via un script PHP

Re: Besoin d'aide : Envoyer des requêtes MQTT via un script PHP

par Saian » 03 mars 2021, 22:34

Salut, je vois plusieurs problèmes avec ton script. Déjà un input tout seul comme ça je suis pas sur que ça fonctionne. Ça se place normalement dans une balise form ou tu définis entre autre la method (get ou post) et le script à appeler. Ensuite la variable $bdd dans la fonction test n'est à priori pas définie. Il faudrait soit la passer en paramètre soit utiliser le mot clés global.

Re: Besoin d'aide : Envoyer des requêtes MQTT via un script PHP

par Ryle » 03 mars 2021, 17:29

Salutations !

PHP est un script qui s'exécute côté serveur, il n'y a donc effectivement pas d'interaction avec le html qui est utilisé côté client pour afficher la page.

Deux options s'offrent à toi :
- En html, tu peux proposer un lien ou un formulaire avec un bouton, qui vont diriger l'utilisateur vers une page de ton site sur laquelle se trouve ton script php afin qu'il soit exécuté. Tu peux ensuite réafficher la même page ou rediriger l'utilisateur vers un écran de confirmation ou autre.
- En javascript, avec la techno AJAX, tu peux faire appel à la page où se trouve ton script php afin qu'il soit exécuté, sans changer de page affichée à l'écran. Tu pourras également gérer le succès ou l'échec en retour de l'appel ajax avec du javascript.

Besoin d'aide : Envoyer des requêtes MQTT via un script PHP

par ARP67 » 03 mars 2021, 16:52

Bonjour,

Je débute avec PHP et MySQL, j'ai réussi à envoyer, stocker et afficher des valeurs dans ma base de donnée ainsi qu'envoyer des messages mosquitto_pub.
Maintenant j'aimerai exécuter ma fonction lors d'un clique sur un bouton HTML, mais je me rend compte qu'exécuter du PHP depuis HTML est impossible sauf si on bypass un peu cela :

Code : Tout sélectionner

<input type="submit" class="button" name="insert" value="insert" /> <?php $bdd = new PDO("mysql:host=localhost;dbname=iotmqtt", "root", "toto"); if($_GET){ if(isset($_GET['insert'])){ test(); } } function test(){ $stmt = $bdd->prepare('INSERT INTO lampe (stats) VALUES (:stats)'); shell_exec('mosquitto_pub -h localhost -t test -m "ON"'); $stmt->bindValue(':stats', 'ON', PDO::PARAM_STR); $stmt->execute(); } ?>
Lorsque je clique sur le bouton il ne se passe rien !

PS : Le code pour se connecter et ajouter une valeur à la BDD fonctionne, je pense que ça vient du shell_exec ou du if($GET)