2010-11-18 8 views
13

PHP-Code:Senden von Daten unter Verwendung von POST in Python zu PHP

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

Wenn ich das tue, die HTML-Seite, die Python druckt mich darüber informiert, dass PHP keinen Wert in $data Ie erhalten haben:

Fehler in $ name; undefinierten Index

Wenn ich jedoch die Daten als GET (http://localhost/mine.php?data=data) und ändern die PHP-Methode von Pfosten zu erhalten ($data=$_GET['data']) senden, wird der Wert erhalten und verarbeitet werden.

Mein Hauptproblem dabei ist, dass es der Wert in Daten scheint nicht durch zu PHP geht, wie ich gewollt hätte POST verwenden. Was könnte falsch sein?

+4

Da die meisten von uns nicht hellsichtig sind, kann es eine gute Idee sein, den Code zu schreiben. –

Antwort

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

Schauen Sie sich das 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 

Fast alles war genau dort an Linie Look 2

heren die PHP:

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

dies sollten Sie

1 
2 

Viel Glück und ich hoffe, dass dies viele Artikel andere

5

Es hilft da draußen, die Anfragen eher dann urllib und urllib2 mit vorschlagen. (Lesen Sie Referenzen für weitere Informationen, die Lösung zuerst)

Ihre Python-Datei (test.php):

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

Ihre PHP-Datei:

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

Vorname: John Nachname : Doe Passwort: jdoe123

Referenzen:

1) Good Article, why you should use requests

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

Verwandte Themen