Maison >développement back-end >Problème PHP >Comment résoudre le problème d'erreur de publication php curl
Solution à l'erreur de publication php curl : ouvrez d'abord le fichier de code PHP erroné ; puis modifiez le "$data" dans le code PHP d'un tableau aux données codées par la fonction "urlencode()".
L'environnement d'exploitation de cet article : système Windows7, version PHP7.1, ordinateur DELL G3
Solution au problème lorsque php curl post La méthode
a le scénario suivant :
soumet les données à b.php dans a.php via POST, mais b.php ne peut pas recevoir les données et le CURL opération Cela montre à nouveau le succès, ce qui est très étrange. Il s'avère que "lors du passage d'un tableau à CURLOPT_POSTFIELDS, cURL encodera les données sous la forme multipart/form-data, mais lors de la transmission d'une chaîne codée en URL, les données seront codées sous la forme application/x-www-form-urlencoded." .
Lorsque des personnes qui ne sont pas familières avec CURL écrivent des programmes, le code souvent :
Exemple de code :
<?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);
Convertissez les données à soumettre en tant que un tableau Le formulaire est envoyé via POST, ce qui amènera CURL à utiliser le "mauvais" encodage "multipart/form-data", ce qui équivaut à utiliser directement "3480f8099206c5d23b4229fc094a9243" pour terminer l'opération. Vous pouvez l'essayer. Pour le moment, "b.php" ne peut de toute façon pas recevoir de données via $_POST.
Donc, l'approche correcte devrait être de changer les $data dans le code ci-dessus d'un tableau à un tableau codé par urlencode().
[Apprentissage recommandé : Tutoriel vidéo PHP]
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!