使用Python中的POST将数据发送到PHP

Sending data using POST in Python to PHP

PHP代码:

1
2
3
4
<?php
$data=$_POST['data'];
echo $data;
?>

当我这样做时,python打印的html页面会通知我在$data中没有收到任何价值,即:

Error in $name; undefined index

但是,当我以get(http://localhost/mine.php?data=data形式发送数据,并将php方法从post改为get($data=$_GET['data']时,会得到并处理该值。

我在这里的主要问题是,数据中的值似乎没有像我希望使用post那样传递给php。可能有什么问题?


Python的:看看这个

1
2
3
4
5
6
7
8
import urllib2, urllib
mydata=[('one','1'),('two','2')]    #The first is the var name the second is the value
mydata=urllib.urlencode(mydata)
path='http://localhost/new.php'    #the url you want to POST to
req=urllib2.Request(path, mydata)
req.add_header("Content-type","application/x-www-form-urlencoded")
page=urllib2.urlopen(req).read()
print page

几乎一切就看线2

PHP的:heres

1
2
3
4
<?php
echo $_POST['one'];
echo $_POST['two'];
?>

这应该给你

1
2
1
2

祝你好运和我希望这帮助他人


有很多文章,建议我出去然后urllib2 urllib和使用要求。(读的参考解决方案的更多信息,第一)

你的Python文件test.php):

1
2
3
import requests
userdata = {"firstname":"John","lastname":"Doe","password":"jdoe123"}
resp = requests.post('http://yourserver.de/test.php', params=userdata)

你的PHP文件。

1
2
3
4
$firstname = htmlspecialchars($_GET["firstname"]);
$lastname = htmlspecialchars($_GET["lastname"]);
$password = htmlspecialchars($_GET["password"]);
echo"firstname: $firstname lastname: $lastname password: $password";

firstname: John lastname: Doe password: jdoe123

参考文献:

1)良好的文章,为什么你应该使用请求

2)什么是差异之间的urllib,urllib2模块和请求?


1
2
3
4
5
6
7
import urllib
import urllib2

params = urllib.urlencode(parameters) # parameters is dicitonar
req = urllib2.Request(PP_URL, params) # PP_URL is the destionation URL
req.add_header("Content-type","application/x-www-form-urlencoded")
response = urllib2.urlopen(req)