PHPを使用して単純なAPIを作成しようとしていますが、データがファイルに投稿されません。cURLを使用中にデータがphpファイルに投稿されない
$url = "http://localhost/api.php";
$session = curl_init();
curl_setopt($session, CURLOPT_URL, $url);
curl_setopt($session, CURLOPT_REFERER, "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
curl_setopt($session, CURLOPT_POST, true);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($session, CURLOPT_TIMEOUT, 200);
curl_setopt($session, CURLOPT_HEADER, true);
curl_setopt($session, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data'));
curl_setopt($session, CURLOPT_POSTFIELDS, http_build_query(array("process"=>"login","user"=>$_POST['user'],"pass"=>$_PO ST['pass'])));
printArr2($session);
$result = curl_exec($session);
$httpCode = curl_getinfo($session, CURLINFO_HTTP_CODE);
curl_close($session);
次は、私は、出力が常にisset($_RESPONSE['process'])
の "それ以外" の部分で行うどのようなAPI
if(isset($_RESPONSE['process']))
{
if(!strcmp($_RESPONSE['content']['process'],"login"))
{
$con = dbConnect();
$str = userLogin($con,$_POST['content']['user'],$_POST['content']['pass']);
if(is_bool($str))
{
$jsonData = json_encode($str);
header("HTTP/1.1 200 OK");
header("Content-type: application/json");
echo $jsonData;
}
else
{
$jsonData = json_encode($str);
header("HTTP/1.1 401 Unauthorised access");
header("Content-type: application/json");
header("Location: ".$_SERVER['HTTP_REFERER']);
echo $jsonData;
}
dbClose($con);
exit;
}
if(!strcmp($_POST['process'],"plagiarism"))
{
$con = dbConnect();
$user = $_POST['user'];
$text = $_POST['text'];
}
}
else
{
$jsonData = json_encode(array("Error"=>"No methods called"));
if(isset($_SERVER['HTTP_REFERER']))
{
header('HTTP\1.1 400', true, 400);
header("Content-type: application/json");
header("Location: ".$_SERVER['HTTP_REFERER']);
echo $jsonData;
exit;
}
else
{
echo "Invalid entry";
}
}
です。
「プロセス」をURLに追加して取得しようとしました。あなたはPOSTリクエストを行っている
$url = "http://localhost/checkapi.php?process=login";
それがどのファイルに掲載さではないのですか?それをどのファイルにも保存していません。 – martin
私はAPIを貼り付けました。それをチェックしてください –
$ _REQUESTと$ _RESPONSEを混在させてしまったと思います。しかし、daniel axelが以下に書いているので、代わりに$ _POSTを使用してください。 –