Отправка данных с использованием POST в Python для PHP

PHP-код:

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

Когда я это делаю, страница HTML, которую печатает Python, уведомляет меня о том, что PHP не получил никакого значения в $data Ie:

Ошибка в $ name; неопределенный индекс

Однако, когда я отправляю данные как GET ( http://localhost/mine.php?data=data ) и меняю метод PHP с POST на GET ( $data=$_GET['data'] ), значение получает и обрабатывается.

Моя главная проблема здесь в том, что, по-видимому, значение в данных не переходит к PHP, поскольку я бы хотел использовать POST. Что может быть неправильным?

Solutions Collecting From Web of "Отправка данных с использованием POST в Python для PHP"

Посмотрите на этот питон:

 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

heres PHP:

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

это должно дать вам

 1 2 

Удачи, и я надеюсь, что это поможет другим

 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) 

Есть много статей, которые предлагают использовать запросы, а не 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"; 

имя: John фамилия: Doe пароль: jdoe123

Рекомендации:

1) Хорошая статья, почему вы должны использовать запросы

2) Каковы различия между модулем urllib, urllib2 и запросами?