2010-11-18 23 views
13
kod

PHP:Wysyłanie danych przy użyciu POST w Pythonie do PHP

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

Kiedy zrobić, strona HTML, która drukuje Python informuje mnie że PHP nie otrzyma żadnej wartości w $data IE:

Błąd w $ nazwa; Indeks niezdefiniowany

Jednak kiedy wysłać dane jako GET (http://localhost/mine.php?data=data) i zmienić metodę PHP z POST na GET ($data=$_GET['data']), wartość jest zdobyć i przetwarzane.

Moim głównym problemem jest to, że wydaje się, że wartość danych nie przechodzi do PHP, ponieważ chciałbym użyć POST. Co może być nie tak?

+4

Biorąc pod uwagę, że większość z nas nie jest jasnowidzem, to może być dobry pomysł, aby umieścić swój kod. –

Odpowiedz

5
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) 
31

Spójrz na tego pytona:

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 

Prawie wszystko było tam Spójrz na linię 2

Herezje PHP:

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

to powinno dać

1 
2 

Powodzenia i mam nadzieję, że to pomoże innym

5

Jest wiele artykułów, które obecnie nie sugeruję, używając żądań a następnie urllib i urllib2. (Czytaj Aby uzyskać więcej informacji, rozwiązanie pierwsze)

Twój python-File (test.php):

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

Twój plik PHP:

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

Imię: John lastName : Hasło do Doe: jdoe123

Referencje:

1) Good Article, why you should use requests

2) What are the differences between the urllib, urllib2, and requests module?

Powiązane problemy