将用户输入从 python 发送到 php

Sending User input from python to php

这是我的 python 文件:

host = socket.gethostname()

mac = hex(uuid.getnode())

sign = host + mac
message = input('plz enter message')
userdata = { message, sign}
url = "http://localhost:8081/project/server.php"
resp = requests.post(url,  data=str(userdata))

print(resp.text)

这是我的PHP脚本:

<?php

if (isset($_GET['userdata'])){
    $userdata = $_GET['userdata'];
    echo $userdata;
 }
else{
     echo "Data not received";
 }
echo $userdata ;
?>

问题 我的 python 文件没有将用户数据发送到 php 脚本。任何帮助将不胜感激谢谢。

requests.post 需要 dict 对象,而不是 str.

所以用请求发布数据,

data = {'userdata': message}
resp = requests.post(url, data=data)

编辑

data = {'userdata': message}
resp = requests.get(url, params=data)

问题是您正在发送 post 数据,但在 PHP 脚本中,您正在捕获 GET 数据。 我们可以像这样重写这两个文件以发送 POST 数据并捕获 POST 数据

Python 文件

sign = host + mac
message = input('plz enter message')
url = 'http://localhost:8081/project/server.php'
postdata = {'sign': sign , 'msg' : message }

x = requests.post(url, data = postdata)

print(x.text)

PHP 文件

 <?php

if (isset($_POST['sign'])) {
    $myfile = fopen("data", "a");
    $sign = $_POST['sign'];
    $msg = $_POST['msg'];

    echo $sign . " " . $msg ;
    fwrite($myfile , $sign.','.$msg."\n");
    fclose($myfile);
}
else {
    echo "Data not received <br/>";
}

$myfile = fopen("data", "r");

while(!feof($myfile)) {
    echo fgets($myfile). "<br/>";
}
fclose($myfile);

?>