Вставка данных с помощью веб-службы - cURL & PHP - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь создать веб-страницу, которая будет подключаться к веб-службе и добавлять данные в базу данных.

Будучи новичком в 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-кода. В базу данных не вставлено никаких данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...