簡體   English   中英

使用 C++ 上的 CURL 獲取 PHP 上的 POST 值

[英]getting POST values on PHP using CURL on C++

這里是否有人嘗試使用 PHP 發布值並使用 CURL 在 c++ 上獲取所述值。我已經嘗試使用我在谷歌上搜索的代碼,但 CURL 的結果是頁面的 html 組成。

PHP

<html>
<head><title>Test Page</title></head>
<body>
    <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
        <p>Name:</p><input type="text" name="name">
        <input type="submit">
    </form>
    <?php
        if($_SERVER["REQUEST_METHOD"]=="POST")
        {
            $name = $_POST['name'];
            if(empty($name))
                echo "Name is empty";
            else
                echo $name;
        }
    ?>
</body>

C++ 代碼

#include <iostream>
#include "json/json.h"
#include <curl/curl.h>
#include <string.h>

using namespace std;

static size_t WriteCallback(void *contents, size_t size, size_t nmemb, void *userp)
{  
     ((string*)userp)->append((char*)contents, size * nmemb);
     return size * nmemb;
}

int main()
{
     CURL *curl;
     CURLcode curl_res;
     string rBuffer;
     string *s = new string("");

     curl_global_init(CURL_GLOBAL_ALL);

     curl = curl_easy_init();
     if(curl)
     {
         curl_easy_setopt(curl, CURLOPT_URL, "192.168.1.106/testwebserver/index.php");
         curl_easy_setopt(curl, CURLOPT_POST, 1);
         curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "name=test");
         //curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
         //curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
         //curl_easy_setopt(curl, CURLOPT_WRITEDATA, s);
         curl_res = curl_easy_perform(curl);
         if (res != CURLE_OK)
             fprintf(stderr, "curl_easy_perform() failed: %s\n",    curl_easy_strerror(curl_res));
         curl_easy_cleanup(curl);
    }
 }

非常感謝您的幫助。

您的 C++ 腳本確實獲取了整個 PHP 響應。

這包括<html> <head> <body>等。

如果您只想要回聲的響應,請使用:

   <?php
        if($_SERVER["REQUEST_METHOD"]=="POST")
        {
            $name = $_POST['name'];
            if(empty($name))
                echo "Name is empty";
            else
                echo $name;
        }
    ?>

或更短:

<?php
  echo isset($_POST['name'])? $_POST['name'] : "Name is empty" ;
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM