Member 12899279 Ответов: 2

Не получая запрос web post из кода C++ в мой PHP скрипт


я использую curl и он отлично получает тестовые данные но я не могу отправить данные из него в мой php скрипт
код c++, который я использую, взят из примеров curl post, которые являются:
CURL * curl;
	curl_global_init(CURL_GLOBAL_ALL);
	CURLcode res;
	string data1 = "testData";
	curl = curl_easy_init();
	if (curl)
	{
		curl_easy_setopt(curl, CURLOPT_URL, "addess of my wamp server here with php file");
		//curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data1.c_str());
		curl_easy_setopt(curl, CURLOPT_POSTFIELDS,"name=daniel&project=curl");

		res = curl_easy_perform(curl);
		if (res != CURLE_OK)
		{
			fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
		}
		curl_easy_cleanup(curl);
	}
	curl_global_cleanup();


Что я уже пробовал:

и это очень простой php скрипт только для проверки того приходят ли данные которых нет
<?php
  global $conn; // db connection variable
  $db_server = "localhost";
  $username = "root";
  $password = "";
  $db_name = "pcinfo";
  // create a connection
  $conn = new mysqli($db_server, $username, $password, $db_name);
  // check connection for errors
  if ($conn->connect_error) {
      die("Error: " . $conn->connect_error);
  }
  else
 // echo"its still working";
  // uncomment the line below to confirm a connection is established
  // echo '<h1 style="color: green;">Connected to DB!</h1>';
  // your can clear these comments afterwards
  $name=mysqli_escape_string($_POST['name']);
  $project=mysqli_escape_string($_POST['project']);

  $data1 = mysqli_escape_string($_POST['data1']);
  if ($data1 == NULL)
	{
		echo "Error, datas is empty! ";	
  }
  if ($name== NULL)
	{
		echo "Error, name is empty! ";	
  }  if ($project == NULL)
	{
		echo "Error, project is empty! ";	
  }
  $sqlInsert = "INSERT INTO test (testdata,name2,project)VALUES ($data1,$name,$project)";

  if ($conn->query($sqlInsert) === TRUE) {
    echo "New record created successfully";
  }
  else
  echo "Unable to store in db!!!";

?>

2 Ответов

Рейтинг:
4

Member 12899279

заставил его работать с этими изменениями
Изменения Php:-

$data1=mysqli_escape_string($conn,$_POST['data1']);
  $name=mysqli_escape_string($conn,$_POST['name']);
  $project=mysqli_escape_string($conn,$_POST['project']);

Изменения в коде C++ :-
string data1 = "data1="+name+"&name="+n+"&project="+k;

curl_easy_setopt(curl, CURLOPT_POSTFIELDS,data1.c_str());


Рейтинг:
13

CPallini

Я бы проверил это C++ код с помощью бесплатного HTTP сервер доступен онлайн. Тестирование связи-это лучший опыт, когда одна из конечных точек является твердой как скала.