如何解决将用户输入从python发送到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 脚本。任何帮助将不胜感激谢谢。
解决方法
问题是您正在发送发布数据,但在 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);
?>
,
requests.post
需要 dict
对象,而不是 str
。
所以用请求发布数据,
data = {'userdata': message}
resp = requests.post(url,data=data)
编辑
data = {'userdata': message}
resp = requests.get(url,params=data)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。