<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style type="text/css">
.container {
/* background-color: gray; */
width: 500px;
height:500px;
position:absolute;
left:50%;
margin-left:-250px;
top:50%;
margin-top:-190px
/* 整个大的div的长度*/
}
.input {
/* position: absolute; */
font-size: 15px;
height:30px;
width: 500px;
/* right: 0;
top: 0;
opacity: 0;
filter: alpha(opacity=0);
cursor: pointer */
}
.btton{
font-size: 20px;
height:30px;
width: 90px;
}
</style>
</head>
<body>
<div class="container">
<form method=get action="http://localhost/cgi-bin/test2.cgi">
url的值:<input class="input" id="result1" type="text" name="i1" value="点击获取按钮获得参数"/>
<p></p>
bck_url的值:<input class="input" id="result2" type="text", name="i2" value="点击获取按钮获得参数"/>
<p></p>
<p></p>
<input class="btton" id="modify" type='button' name="callcpp" value="获取参数" οnclick="resCalc();" />
<input class="btton" type="submit"/>
</form>
</div>
<h2>获得cgi程序的返回值</h2>
<button type="button" οnclick="loadXMLDoc()">返回数据</button>
<div id="myDiv"></div>
<script type="text/javascript">
function UrlSearch() {
var name, value;
var str = "http://www.example.com/number_checking?{'url':'http://ovuhjq3qc.bkt.clouddn.com/2017-11-1617:20:22-920-.png','bkg_url':'http://ovuhjq3qc.bkt//.clouddn.com/2017-11-1617:20:22-921-.png'}"
// var str = "http://www.example.com/number_checking?{'url':'htt/povuhjq3qc','bkg_url':'httpovuhjq3qc1'}"
var num = str.indexOf("?")
str = str.substr(num + 1); //取得所有参数 stringvar.substr(start [, length ]
str = str.substring(1, str.length - 1);
var arr = str.split(","); //各个参数放到数组里
for (var i = 0; i < arr.length; i++) {
num = arr[i].indexOf(":");
if (num > 0) {
//name=arr[i].substring(0,num);
name = arr[i].substring(1, num - 1);
value = arr[i].substr(num + 1);
value = value.substring(1, value.length - 1);
this[name] = value;
}
}
}
var Request = new UrlSearch(); //实例化
// var draw_image=Request.draw_image;
var url = Request.url;
var bkg_url = Request.bkg_url;
</script>
<script type="text/javascript">
function resCalc()
{
var input1=document.getElementById("result1");
var input2=document.getElementById("result2");
var btn=document.getElementById("modify");
// alert(url);
//var str="http://www.baidu.com";
input1.value=url;
//input1.value="677";
input2.value=bkg_url;
//input2.value="78";
alert("已获得参数值,请点击提交按钮进行提交数据");
}
</script>
<!-- 获得cgi程序的返回值 -->
<script type="text/javascript">
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
//VAR RESPONSEtEXT = XMLHTTP.RESPONSEtEXT;
// IF (RESPONSEtEXT){
// ALERT(RESPONSEtEXT);//SHOWiNFO("USERNAME_NOTICE",RESPONSEtEXT);
// }
// }ELSE{
// ALERT("ERROR!");
// }
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
var getStr=xmlhttp.responseText;
//alert(getStr);
var param = getStr;
var href = "http://www.baidu.com?param=" + param;
alert(href);
}
}
// var url11="/cgi-bin/test2.cgi?i1=http%3A%2F%2Fovuhjq3qc.bkt.clouddn.com%2F2017-11-1617%3A20%3A22-920-.png&i2=http%3A%2F%2Fovuhjq3qc.bkt%2F%2F.clouddn.com%2F2017-11-1617%3A20%3A22-921-.png";
// var url11="/cgi-bin/test2.cgi";
xmlhttp.open("GET","/cgi-bin/test2.cgi",true);
xmlhttp.send();
}
</script>
</body>
</html>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
//字符串替换
int StrReplace(char strRes[], char from[], char to[]) {
int i, flag = 0;
char *p, *q, *ts;
for (i = 0; strRes[i]; ++i) {
if (strRes[i] == from[0]) {
p = strRes + i; //p为从替换的第一个字符开始后面所有的字符串,例如you are cute,are换成is,p为are cute
//printf(p);
q = from;
while (*q && (*p++ == *q++));
if (*q == '\0') {
ts = (char *)malloc(strlen(strRes) + 1); //malloc函数用于向操作系统申请内存,声明在stdlib.h中,
//并将指针转换为char *类型赋值给ts,申请的大小为(strlen(strRes) + 1)。
strcpy(ts, p); //字符串复制,p为cute
strRes[i] = '\0';
strcat(strRes, to); //字符串链接,strRes为"you ",设strRes[i] = '\0';即是把后面的截断
strcat(strRes, ts);
// printf("strRes2%s\n", strRes);
free(ts);
flag = 1;
}
}
}
return flag;
}
char* main()
{
//设置HTML语言
printf("Content-type:text/html\n\n");
//int i1, i2;//定义2个变量用于接收传递的参数
char i1[100], i2[100];
//int i2;//定义2个变量用于接收传递的参数
//使用环境变量获得传递的参数
char* queryString = getenv("QUERY_STRING");
// printf("%s", queryString);
//把一个字符串解析到另一个字符串中
//将获得的字符串中的%s打印到cName中
//sscanf("12345+acc", "%[^&]", &i1);
//sscanf(queryString, "i1=%s&i2=%s", &i1, &i2);
/*for (int i = 0; queryString[i]!= '\0'; i++) {
if (queryString[i] == '%') {
queryString[i] = '*';
}
}*/
StrReplace(queryString, "%2F", "/");
StrReplace(queryString, "%3A", ":");
//printf("%s", queryString);
sscanf(queryString, "i1=%[^&]&i2=%s", &i1, &i2);
//printf("<br><br>");
//printf("%s", i1);
//printf("<br><br>");
//printf("%s", i2);
//printf("%d+%d=%d", i1, i2, i1 + i2);
//printf("%s", queryString);
char* str = "{hdfskehtierjksdf}";
printf("%s", str);
return str;
}