2

cgicc 可以很好地处理表单元素,但是我怎么知道数据是从 get_method 还是 post_method 生成的呢?

我使用的一段代码:

cout << "Content-type:text/html\r\n\r\n";
try {    
    Cgicc cgi;
    const_form_iterator iter;
    for(iter = cgi.getElements().begin(); 
        iter != cgi.getElements().end(); 
        ++iter){
        cout << 
        "<table><tr>"   <<
        "<td>" << iter->getName() << "</td>"  << 
        "<td>" << iter->getValue() << "</td>" << 
        "</tr></table>" << endl;
    }
}catch(exception& e) {
    cout << e.what() << endl;
}

更新:

我从 cgicc 官方页面找到了这个:“透明地解析 GET 和 POST 表单数据。” ( http://www.gnu.org/software/cgicc/ )

似乎cgicc不想按设计分开get和post?

4

2 回答 2

1

您可以使用cgicc::CgiEnvironment::getRequestMethod 找到请求的 HTTP 方法(ì.e. GET, POST, etc...)

于 2013-09-30T08:08:22.683 回答
0

我认为解决它的唯一方法是检查 GET 方法查询字符串中是否存在与 POST 方法中的变量名称相同的变量名称。这意味着变量名称只能在两种方法中的任何一种中提及一次。换句话说,如果将 GET 方法的变量与 POST 的变量组合在一个集合中,则该集合中必须提到一次变量名。

于 2018-12-28T09:28:37.720 回答