Я пытаюсь создать веб-страницу, которая будет подключаться к веб-службе и добавлять данные в базу данных.
Будучи новичком в cURL и веб-службах, я думал, что смогу сделать форму, поскольку хочу иметь форму в своем html: подключить эту форму к сценарию php, который содержит мой cURL, а затем подключить cURL к веб-службе для обновить данные. Тем не менее не уверен, что это логика веб-сервисов.
Проблема в том, что, несмотря на получение http-кода 200 OK, в базу данных данные не вставляются.
индексная форма:
<form method="post" action="addPoiCurl.php">
<input type="text" name="addPoiName" placeholder="Name" />
<br />
<input type="text" name="addPoiCountry" placeholder="Country" />
<br />
<input type="text" name="addPoiRegion" placeholder="region" />
<br />
Choose the type of POI<br />
<select name="addPoiType">
<option value="empty">...</option>
<option value="city">City</option>
<option value="hill">Hill</option>
<option value="industrial estate">Industrial Estate</option>
<option value="lost city">Lost City</option>
<option value="moor">Moor</option>
<option value="mountian">Mountain</option>
<option value="point">Point</option>
<option value="port">Port</option>
<option value="pub">Pub</option>
<option value="restaurant">Restaurant</option>
<option value="town">Town</option>
</select>
<br />
<input type="text" name="addPoiDescription" placeholder="Description"
style="width:200px; height:100px" />
<br />
<input type="submit" value="Submit!" />
cURL PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$aPoiName = $_POST["addPoiName"];
$aPoiCountry = $_POST["addPoiCountry"];
$aPoiRegion = $_POST["addPoiRegion"];
$aPoiType = $_POST["addPoiType"];
$aPoiDescription = $_POST["addPoiDescription"];
// Curl -----------------
// Initialize
$connection = curl_init();
//URL to sned the request to
curl_setopt($connection, CURLOPT_URL, 'https://addPoiWebService.php');
$dataToPost=
[ "Name" => $aPoiName ,
"Country" => $aPoiCountry ,
"Region" => $aPoiRegion ,
"Type" => $aPoiType ,
"Description" => $aPoiDescription
];
//Execute the request
curl_setopt($connection,CURLOPT_RETURNTRANSFER, 1);
curl_setopt($connection,CURLOPT_POSTFIELDS,$dataToPost);
$response = curl_exec($connection);
//HTTP CODE
$httpCode = curl_getinfo($connection, CURLINFO_HTTP_CODE);
echo "The script returned the HTTP status code: $httpCode <br />";
//close
curl_close($connection);
?>
(учтите, что я изменил ссылку в соединении только для этого поста)
что касается веб-службы php:
$aPoiName = $_POST["Name"];
$aPoiCountry = $_POST["Country"];
$aPoiRegion = $_POST["Region"];
$aPoiType = $_POST["Type"];
$aPoiDescription = $_POST["Description"];
if($aPoiName !="" && $aPoiCountry !="" && $aPoiRegion !="" && $aPoiType
!="empty" && $aPoiDescription !=""){
header("Content-type: application/json");
$results = $conn->query("INSERT INTO pointsofinterest (name, country,
region, type, description) VALUES ('$aPoiName', '$aPoiCountry',
'$aPoiRegion', '$aPoiType', '$aPoiDescription')");
}
else{
echo "Missing Information";
}
(связь с базой данных также была специально удалена для этого поста)
Результаты, которые я получаю, - это всего лишь эхо-результат 200 из проверки http-кода.
В базу данных не вставлено никаких данных.