2010-11-18 5 views
13

code PHP:Envoi de données via POST en Python pour PHP

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

Quand je fais cela, la page HTML qui imprime Python me signale que PHP n'a pas reçu de valeur $data Ie:

Erreur dans $ name; index undefined

Cependant, lors de l'envoi des données EEG (http://localhost/mine.php?data=data) et modifier la méthode de PHP POST à ​​GET ($data=$_GET['data']), la valeur est obtenue et traitée.

Mon problème principal ici est qu'il semble que la valeur dans les données ne passe pas par PHP car j'aurais voulu utiliser POST. Quel pourrait être le problème?

+4

Étant donné que la plupart d'entre nous ne sont pas clairvoyante, il peut être une bonne idée de poster votre code. –

Répondre

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

Regardez ce 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 

Presque tout était de regarder là à la ligne 2

Heres PHP:

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

cela devrait vous donner

1 
2 

Bonne chance et j'espère que cela aide les autres

5

Il y a des articles beaucoup là-bas qui suggèrent d'utiliser demandes plutôt que urllib et urllib2. (En savoir Références Pour plus d'informations, la première solution)

Votre Python-File (test.php):

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

Votre PHP-fichier:

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

prenom: John lastname : Doe mot de passe: jdoe123

Références:

1) Good Article, why you should use requests

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

Questions connexes