PHP-код:
<?php $data=$_POST['data']; echo $data; ?>
Когда я это делаю, страница HTML, которую печатает Python, уведомляет меня о том, что PHP не получил никакого значения в $data
Ie:
Ошибка в $ name; неопределенный индекс
- Разница между isset и array_key_exists
- Является ли 128 Мбайт памяти PHP слишком много?
- WordPress Рекомендуемое изображение | Все сообщения, соответствующие имени файла изображения
- Обеспечение взаимодействия с MySQL в функции PHP
- Как я могу вызвать вызовы API Win32 с PHP?
- Поиск и замена нескольких значений несколькими / разными значениями в PHP5?
Однако, когда я отправляю данные как GET ( http://localhost/mine.php?data=data
) и меняю метод PHP с POST на GET ( $data=$_GET['data']
), значение получает и обрабатывается.
Моя главная проблема здесь в том, что, по-видимому, значение в данных не переходит к PHP, поскольку я бы хотел использовать POST. Что может быть неправильным?
Посмотрите на этот питон:
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 и запросами?