Diskuze: cURL - odeslání dat metodou POST
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Pokud komunikuješ se scriptem B metodou POST, tak v poli $_POST.
To jsem očekával také, ale z nějakého důvodu se mi POST vracel prázdný. Vytvořil jsem si primitivní 2 scripty a již mi to šlo, zřejmě jedno z nastavení "setopt" má negativní vliv na výsledek, nebo problémem byly i jiné faktory, které jsem na konec vyřešil. (IPN a PayPal).
Tohle mi již fungovalo v pořádku a $_POST ve scriptu B se podařilo vypsat, standardním způsobem.
$_POST['jmeno'] = "Mirek";
$_POST['prijmeni'] = "Kat....";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://URL/curl.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$head = curl_exec($ch);
curl_close($ch);
var_dump($head);
Vzhledem k tomu, že tvé tvrzení je určitě správné, tak pro ostatní ho potvrdím "Akceptováním".
Děkuji.
Nejsem si na 100% jistý, ale nemůže to souviset s tím, že máš hodnoty v json?
Zkus pouze to pole odeslat:
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
Je to dost možné, problém také vznikal na skryté chybě u volaného scriptu, který se choval jinak při volání cURL. Zároveň i když IPN od PayPal je instantní, tak ne vždy to chodí hned, ale i s hodinovým zpožděním. Je tedy možné, že když jsem zrovna vkládal čistě POST a na druhé straně vypisoval POST, tak chyba byla na konec úplně jinde, následně jsem zkoušel předávání v json, nebo jiném řetězci/formátu a tak jsem se dostal do slepé uličky. Již mi 50% komunikace funguje, ale teď už aspoň vím, co je z toho správně a jak dosáhnout správného výsledku.
Takže dneska fakt zábava, ale aspoň se šťastným koncem
Místo json_encode zkus použít http_build_query.
Zobrazeno 6 zpráv z 6.