郁金香外挂技术-郁金香灬老师

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

郁金香终身VIP管理员QQ150330575项目合作(有实力的+)视频教程+每月更新+QQ群
飞郁视频分享(每周更新)
查看: 1143|回复: 1

GET 和 POST 方法 CGI c++

[复制链接]
发表于 2019-7-2 17:26:16 | 显示全部楼层 |阅读模式
GET 和 POST 方法
您可能有遇到过这样的情况,当您需要从浏览器传递一些信息到 Web 服务器,最后再传到 CGI 程序。通常浏览器会使用两种方法把这个信息传到 Web 服务器,分别是 GET 和 POST 方法。
使用 GET 方法传递信息
GET 方法发送已编码的用户信息追加到页面请求中。页面和已编码信息通过 ? 字符分隔开,如下所示:
http://www.test.com/cgi-bin/cpp.cgi?key1=value1&key2=value2
GET 方法是默认的从浏览器向 Web 服务器传信息的方法,它会在浏览器的地址栏中生成一串很长的字符串。当您向服务器传密码或其他一些敏感信息时,不要使用 GET 方法。GET 方法有大小限制,在一个请求字符串中最多可以传 1024 个字符。
当使用 GET 方法时,是使用 QUERY_STRING http 头来传递信息,在 CGI 程序中可使用 QUERY_STRING 环境变量来访问。
您可以通过在 URL 后跟上简单连接的键值对,也可以通过使用 HTML <FORM> 标签的 GET 方法来传信息。
简单的 URL 实例:Get 方法
下面是一个简单的 URL,使用 GET 方法传递两个值给 hello_get.py 程序。
/cgi-bin/cpp_get.cgi?first_name=ZARA&last_name=ALI
下面的实例生成 cpp_get.cgi CGI 程序,用于处理 Web 浏览器给出的输入。通过使用 C++ CGI 库,可以很容易地访问传递的信息:
实例#include <iostream>#include <vector>  #include <string>  #include <stdio.h>  #include <stdlib.h> #include <cgicc/CgiDefs.h> #include <cgicc/Cgicc.h> #include <cgicc/HTTPHTMLHeader.h> #include <cgicc/HTMLClasses.h>   using namespace std;using namespace cgicc; int main (){   Cgicc formData;      cout << "Content-type:text/html\r\n\r\n";   cout << "<html>\n";   cout << "<head>\n";   cout << "<title>使用 GET 和 POST 方法</title>\n";   cout << "</head>\n";   cout << "<body>\n";    form_iterator fi = formData.getElement("first_name");     if( !fi->isEmpty() && fi != (*formData).end()) {        cout << "名:" << **fi << endl;     }else{      cout << "No text entered for first name" << endl;     }   cout << "<br/>\n";   fi = formData.getElement("last_name");     if( !fi->isEmpty() &&fi != (*formData).end()) {        cout << "姓:" << **fi << endl;     }else{      cout << "No text entered for last name" << endl;     }   cout << "<br/>\n";    cout << "</body>\n";   cout << "</html>\n";      return 0;}


现在,编译上面的程序,如下所示:
$g++ -o cpp_get.cgi cpp_get.cpp -lcgicc
生成 cpp_get.cgi,并把它放在 CGI 目录中,并尝试使用下面的链接进行访问:
/cgi-bin/cpp_get.cgi?first_name=ZARA&last_name=ALI
这会产生以下结果:
名:ZARA 姓:ALI 简单的表单实例:GET 方法
下面是一个简单的实例,使用 HTML 表单和提交按钮传递两个值。我们将使用相同的 CGI 脚本 cpp_get.cgi 来处理输入。
<form action="/cgi-bin/cpp_get.cgi" method="get">名:<input type="text" name="first_name">  <br /> 姓:<input type="text" name="last_name" /><input type="submit" value="提交" /></form>


下面是上述表单的实际输出,请输入名和姓,然后点击提交按钮查看结果。
使用 POST 方法传递信息
一个更可靠的向 CGI 程序传递信息的方法是 POST 方法。这种方法打包信息的方式与 GET 方法相同,不同的是,它不是把信息以文本字符串形式放在 URL 中的 ? 之后进行传递,而是把它以单独的消息形式进行传递。该消息是以标准输入的形式传给 CGI 脚本的。
我们同样使用 cpp_get.cgi 程序来处理 POST 方法。让我们以同样的例子,通过使用 HTML 表单和提交按钮来传递两个值,只不过这次我们使用的不是 GET 方法,而是 POST 方法,如下所示:
<form action="/cgi-bin/cpp_get.cgi" method="post">名:<input type="text" name="first_name"><br />姓:<input type="text" name="last_name" /> <input type="submit" value="提交" /></form>


向 CGI 程序传递复选框数据
当需要选择多个选项时,我们使用复选框。
下面的 HTML 代码实例是一个带有两个复选框的表单:
<form action="/cgi-bin/cpp_checkbox.cgi"          method="POST"          target="_blank"><input type="checkbox" name="maths" value="on" /> 数学<input type="checkbox" name="physics" value="on" /> 物理<input type="submit" value="选择学科" /></form>


下面的 C++ 程序会生成 cpp_checkbox.cgi 脚本,用于处理 Web 浏览器通过复选框给出的输入。
实例#include <iostream>#include <vector>  #include <string>  #include <stdio.h>  #include <stdlib.h> #include <cgicc/CgiDefs.h> #include <cgicc/Cgicc.h> #include <cgicc/HTTPHTMLHeader.h> #include <cgicc/HTMLClasses.h> using namespace std;using namespace cgicc; int main (){   Cgicc formData;   bool maths_flag, physics_flag;    cout << "Content-type:text/html\r\n\r\n";   cout << "<html>\n";   cout << "<head>\n";   cout << "<title>向 CGI 程序传递复选框数据</title>\n";   cout << "</head>\n";   cout << "<body>\n";    maths_flag = formData.queryCheckbox("maths");   if( maths_flag ) {        cout << "Maths Flag: ON " << endl;     }else{      cout << "Maths Flag: OFF " << endl;     }   cout << "<br/>\n";    physics_flag = formData.queryCheckbox("physics");   if( physics_flag ) {        cout << "Physics Flag: ON " << endl;     }else{      cout << "Physics Flag: OFF " << endl;     }   cout << "<br/>\n";   cout << "</body>\n";   cout << "</html>\n";      return 0;}


向 CGI 程序传递单选按钮数据
郁金香外挂教程,学习中...
回复

使用道具 举报

发表于 2019-7-16 10:29:26 | 显示全部楼层
学习下            
郁金香外挂教程,学习中...
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

限时限量优惠

QQ|小黑屋|手机版|郁金香外挂技术-郁金香灬老师 ( 苏ICP备10059359号 )

GMT+8, 2019-9-19 08:06 , Processed in 0.072749 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表