Я построил API на PHP. При отправке запроса POST переменные, указанные в URL-адресе POST, не принимаются, а входной набор данных пуст. Переменная data в представленном ниже файле create.php пуста.
Если мы предоставляем жестко закодированные данные при создании PHP-файла, то все работает нормально.
Ниже приведен мой основной код файла data.php. Который содержит функцию для создания продукта с использованием переменных POST.
<?php
class Data{
private $conn;
private $table_name = "data";
public $id;
public $email;
public $address;
public $lasttx;
public $created;
public function __construct($db){
$this->conn = $db;
}
function create(){
$query = "INSERT INTO " . $this->table_name . " SET email=:email,
address=:address, lasttx=:lasttx, created=:created";
$stmt = $this->conn->prepare($query);
$this->email=htmlspecialchars(strip_tags($this->email));
$this->address=htmlspecialchars(strip_tags($this->address));
$this->lasttx=htmlspecialchars(strip_tags($this->lasttx));
$this->created=htmlspecialchars(strip_tags($this->created));
$stmt->bindParam(":email", $this->email);
$stmt->bindParam(":address", $this->address);
$stmt->bindParam(":lasttx", $this->lasttx);
$stmt->bindParam(":created", $this->created);
if($stmt->execute()){
return true;
}
return false;
}
Ниже приведен код create.php, который вызывается в вызовах API. Этот файл получает данные и вызывает функцию создания в data.php
<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Max-Age: 3600");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-
Headers, Authorization, X-Requested-With");
include_once '../config/database.php';
include_once '../objects/data.php';
$database = new Database();
$db = $database->getConnection();
$data1 = new Data($db);
$data = json_decode(file_get_contents("php://input"), true); // THIS VARIABLE is EMPTY while calling API.
$data1->email = $data["email"];
$data1->address = $data["address"];
$data1->lasttx = $data["lasttx"];
$data1->created = date('Y-m-d H:i:s');
if($data1->create()) {
echo '{';
echo '"message": "Product was created."';
echo '}';
}
else{
echo '{';
echo '"message": "Unable to create product."';
echo '}';
}
?>
Пожалуйста, сообщите. Большое спасибо.