Я пытаюсь создать небольшой файл API и по какой-либо причине файл api.php
, который я отправляю cURL-данные через POST, не получает данные. Я бесконечно смотрел здесь и Google и не мог понять, что случилось. Я пробовал разные методы и ничего не работая.cURL не отправляет данные POST в PHP
Вот мой код.
client.php:
$url = 'http://localhost/listcross2/api.php';
//var_dump($_POST);
$rCURL = curl_init();
$params = array('action' => 'login',
'username' => $_POST["username"],
'password' => $_POST["password"]);
curl_setopt_array($rCURL, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_REFERER => "http://www.localhost/listcross2/client.php",
CURLOPT_POSTFIELDS => http_build_query($params)
)
);
$aData = curl_exec($rCURL);
if(curl_errno($rCURL))
{
echo 'error:' . curl_error($rCURL);
}
curl_close($rCURL);
$login_result = json_decode ($aData, true);
var_dump($login_result);
api.php
$value = "An error has occurred within API: ";
var_dump($_POST);
// For POST actions
if (!empty($_POST))
{
switch($_POST["action"])
{
case "login":
if (isset($_POST["username"]) && isset($_POST["password"]))
$value = login($_POST["username"], $_POST["password"]);
else
$value = "Missing argument";
break;
}
}
exit(json_encode($value));
Вы пробовали разные вещи? Как что? –
Изменение любых параметров CURLOPT, которые я обнаружил, когда пользователи пытались подключиться к сети, и используя urlencode() для преобразования массива в URL-адрес. – jmeanor
Вам не нужно делать 'http_build_query'. cURLcan принять массив напрямую и сделать это сам: 'CURLOPT_POSTFIELDS => $ params'. –