web-dev-qa-db-ja.com

POST in Python to PHP

PHPコード:

<?php
$data=$_POST['data'];
echo $data;
?>

これを行うと、Pythonが出力するHTMLページは、PHPが$dataすなわち:

$ nameにエラーがあります。未定義のインデックス

ただし、データをGET(http://localhost/mine.php?data=data)およびPHPメソッドをPOSTからGET($data=$_GET['data'])、値が取得されて処理されます。

ここでの主な問題は、POSTを使用したかったので、データの値がPHPに到達しないようです。何が問題なのでしょうか?

13
Crazywizard

このpythonを見てください。

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:

<?php
echo $_POST['one'];
echo $_POST['two'];
?>

これはあなたに与えるはずです

1
2

がんばって、これが他の人に役立つことを願っています

32
TheBestJohn

requestsではなくUrllibを使用することを提案する記事がたくさんありますurllib2。 (詳細についてはリファレンスをお読みください、最初にソリューション)

あなたのPythonファイル(test.php):

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

あなたのPHPファイル:

$firstname = htmlspecialchars($_GET["firstname"]);
$lastname = htmlspecialchars($_GET["lastname"]);
$password = htmlspecialchars($_GET["password"]);
echo "firstname: $firstname lastname: $lastname password: $password";

名:ジョン姓:Doeパスワード:jdoe123

参考文献:

1) 良い記事、リクエストを使用する理由

2) rllib、urllib2、および要求モジュールの違いは何ですか?

6
user1767754
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)
5
Ilian Iliev