Heim > Artikel > Backend-Entwicklung > So lösen Sie das PHP-Curl-Post-Fehlerproblem
Lösung für den PHP-Curl-Post-Fehler: Öffnen Sie zuerst die PHP-Codedatei mit dem Fehler und ändern Sie dann die „$data“ im PHP-Code von einem Array in die von der Funktion „urlencode()“ codierten Daten.
Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
Lösung für das Problem beim PHP-Curl-Post
Es gibt die folgenden Szenarien:
POST in a. php-Methode zum Senden von Daten an b.php, aber b.php kann die Daten nicht empfangen und die CURL-Operation zeigt Erfolg, was sehr seltsam ist. Es stellt sich heraus, dass „bei der Übergabe eines Arrays an CURLOPT_POSTFIELDS cURL die Daten als multipart/form-data codiert, bei der Übergabe einer URL-codierten Zeichenfolge werden die Daten jedoch als application/x-www-form-urlencoded codiert.“ .
Wenn Leute, die mit CURL nicht vertraut sind, Programme schreiben, ist der Code oft:
Codebeispiel:
<?php $data = array( 'Title' => $title, 'Content' => $content, 'ComeFrom' => $comefrom ); curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, false); curl_setopt($ch, CURLOPT_URL, 'http://example.com/b.php'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_exec($ch);
Senden Sie die zu übermittelnden Daten in Form eines Arrays per POST, was zu „Fehlern“ führt. bei der CURL-Verwendung Die Codierung von „multipart/form-data“ entspricht dem direkten Abschluss des Vorgangs mit einem Formular wie „5a32402db781e97170288e283abb42da“ können Sie es versuchen. Derzeit kann „b.php“ ohnehin keine Daten über $_POST empfangen.
Der richtige Ansatz sollte also darin bestehen, $data im obigen Code von einem Array in ein durch urlencode() codiertes Array zu ändern.
【Empfohlenes Lernen: PHP-Video-Tutorial】
Das obige ist der detaillierte Inhalt vonSo lösen Sie das PHP-Curl-Post-Fehlerproblem. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!