使用POST从PHP发送数据到raspberry的Python脚本

时间:2017-12-13 19:20:09

标签: php python-3.x server httprequest raspberry-pi3

我最近发现了使用请求帖子将数据从python文件发送到php文件的方法,现在我希望能够使用相同的php文件方法将数据发送到python文件知道我的文件php是在一个服务器而python文件是在一个连接到3g Internet的覆盆子,但我不太了解这个域我还是新的我告诉你我的代码将python文件发送到PHP文件:

raspberry python客户端:

import requests
import time
i =1
j= 0
while i==1 :
   j = j+1
   userdata = {"id": j ,  "firstname": "jo", "lastname": "rasp",
               "password": "666"}
   resp = requests.post('http://jawad.meswatts.fr/sous/api.php',
                          data = userdata)
   print(resp.text)
   time.sleep(3)

php服务器脚本:

<?php
try
    {
      $bdd = new PDO('mysql:host=localhost;dbname=jawad;charset=utf8',
                     'jawad', 'knlnklml54vn,6');
    }
   catch(Exception $e)
   {
     die('Erreur : '.$e->getMessage());
   }


      $id = htmlspecialchars($_POST["id"]);
      $firstname = htmlspecialchars($_POST["firstname"]);
      $lastname = htmlspecialchars($_POST["lastname"]);
      $password = htmlspecialchars($_POST["password"]);


      $req = $bdd->prepare( '                            
                            INSERT INTO reception(nom,prenom,identifiant,id)
                            VALUES (:lastname,:firstname,:password,:id);
                            ' );

    $req->execute(array('lastname' => $lastname, 'firstname' => 
                       $firstname,'password' => $password,'id' => $id)); 
  ?>

所以这是我的两个程序运行得很好现在我想以另一种方式做到这一点我非常了解PHP但是我不是很强大的网络你可以帮我吗?

1 个答案:

答案 0 :(得分:0)

因此,您当前计划的问题在于您必须能够在某处将发送到

如果pi发布到服务器,我们将发布到 http://jawad.meswatts.fr/sous/api.php

但是如果服务器想要发布到pi。它会发布到哪里? pi不在任何域名或公共IP上公开。 (可以通过这种方式进行设置,但我不建议初学者使用它。)

相反,我会先从其他人如何解决这个问题开始。让pi向服务器上的另一个位置发出GET请求。此函数将返回已发布的信息。通过这种方式,服务器永远不会尝试找到pi。只是等到它被告知要存储一些信息(POST)或者直到它被问到某些信息是什么(GET)。