六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

CGI圖文說明教程(7)解碼數(shù)據(jù)發(fā)送給CGI腳本之一

[摘要]解碼數(shù)據(jù)發(fā)送給CGI腳本  當(dāng)使用表單的時(shí)候,收集在表單的信息給發(fā)送給CGI腳本用于處理。這個(gè)信息被放置在環(huán)境變量QUERY_STRING中。  為了清除地將信息傳遞給環(huán)境變量QUERY_STRING,被修改錨標(biāo)簽的表單將被使用。在這個(gè)被修改的錨標(biāo)簽中,傳遞給環(huán)境變量QUERY_STRING的數(shù)據(jù)...
解碼數(shù)據(jù)發(fā)送給CGI腳本

  當(dāng)使用表單的時(shí)候,收集在表單的信息給發(fā)送給CGI腳本用于處理。這個(gè)信息被放置在環(huán)境變量QUERY_STRING中。

  為了清除地將信息傳遞給環(huán)境變量QUERY_STRING,被修改錨標(biāo)簽的表單將被使用。在這個(gè)被修改的錨標(biāo)簽中,傳遞給環(huán)境變量QUERY_STRING的數(shù)據(jù)是在指示CGI腳本的URL之后附上的。字符”?”被用來分隔指定CGI腳本以及發(fā)送給腳本的數(shù)據(jù)的URL。比如:

<A HREF="/cgi-bin/script?name=Your+name&action=find"> Link </A>

其中數(shù)據(jù)"name=Your+name&action=find"被放置在環(huán)境變量QUERY_STRING中并且CGI腳本被執(zhí)行。

  下面給出一個(gè)例子:由C++編寫一個(gè)類,具體文件parse.h 和parse.cpp被用于在QUERY_STRING中提取個(gè)別的組件,其中的頭文件t99_type.h在上節(jié)教程已經(jīng)提到,它是包含了一些定義。具體代碼如下:

//以下是parse.h文件

#ifndef CLASS_PARSE

#define CLASS_PARSE

//#define NO_MAP // 定義沒有用戶處理

#include "t99_type.h"http://這個(gè)文件在前面教程中有

class Parse

{

public:

Parse( char [] );

~Parse();

void set( char [] );

char *get_item( char [], int pos=1, bool=false );

char *get_item_n( char [], int pos=1, bool=false );

protected:

void remove_escape(char []);

int hex( char ); //返回十六進(jìn)制數(shù)

char *map_uname( char [] );

private:

enum { SEP = '&' }; // 使用&分隔字符

char *the_str; // 字符部分

int the_length; // 字符長度

};

#endif

//以下是parse.cpp文件

#ifndef CLASS_PARSE_IMP

#define CLASS_PARSE_IMP

#include "parse.h"

#include

#include

#ifndef NO_MAP

# include

#endif

Parse::Parse( char list[] )

{

the_str = NULL;

set( list );

}

Parse::~Parse()

{

if ( the_str != NULL ) { // 釋放存儲(chǔ)器

delete [] the_str;

}

}

void Parse::set( char list[] )

{

if ( the_str != NULL ) { // 釋放存儲(chǔ)器

delete [] the_str;

}

the_length = strlen( list ); // 字符長度

the_str = new char[the_length+1]; // 分配空間

strcpy( the_str, list ); // 復(fù)制

}

char *Parse::get_item( char name[], int pos, bool file )

{

int len = strlen( name );

int cur_tag = 1;

for( int i=0; i

{

if ( the_str[i] == name[0] &&

strncmp( &the_str[i], name, len ) == 0 )

{

if ( the_str[i+len] == '=' )

{

if ( cur_tag == pos )

{

int start = i+len+1; int j = start;

while ( the_str[j] != SEP && the_str[j] != '\0' ) j++;

int str_len = j-start;

char *mes = new char[ str_len+1 ];

strncpy( mes, &the_str[start], str_len );

mes[str_len] = '\0';

remove_escape( mes );

# ifndef NO_MAP

return file ? map_uname(mes) : mes;

# else

return file ? mes : mes;

# endif

} else {

cur_tag++;

}

}

}

}

return NULL;

}

char *Parse::get_item_n( char name[], int pos, bool file )

{

char *res = get_item( name, pos, file );

return res == NULL ? (char*)"----" : res;

}

void Parse::remove_escape(char str[])

{

char * from = &str[0];

char * to = &str[0];

while ( *from != '\0' )

{

char ch = *from++;

switch ( ch )

{

case '%' :

ch = (hex(*from++)><4) hex(*from++);

break;

case '+' :

ch = ' '; break;

}

*to++ = ch;

}

*to = '\0';

}

int Parse::hex( char c )

{

if ( isdigit( c ) )

return c-'0';

if ( isalpha( c ) )

return tolower(c)-'a'+10;

return 0;

}

char* Parse::map_uname( char *path )

{

#ifndef NO_MAP

if ( path[0] == '~' )

{

char uname[255]; // 容納用戶名字的變量

char *rest = &path[1];

char *p = &uname[0];

while ( *rest != '/' && *rest != '\0' )

{

*p++ = *rest++;

}

*p = '\0'; // 結(jié)束標(biāo)識(shí)

char *root = uname;

passwd *pw = getpwnam( uname );

if ( pw != NULL )

{

root = pw->pw_dir; // 用戶的主目錄

}

int len_root = strlen(root);

int len_path = len_root + strlen(rest);

char *new_path = new char[len_path+1]; // 動(dòng)態(tài)字符

strcpy( &new_path[0], root ); // 復(fù)制用戶路徑

strcpy( &new_path[len_root], rest ); // 其余部分

return new_path;

} else {

return path;

}

#endif

return path;

}

#endif




主站蜘蛛池模板: 日本国产成人精品视频 | 四虎影库网址 | 亚洲国产成人精品一区91 | 亚洲光棍天堂 | 青青草国产免费久久久91 | 四虎精品永久在线 | 啪啪免费网站 | 在线欧美自拍 | 亚洲第一狼人区 | 日韩中文网 | 伊人影视传媒有限公司 | 伊人蕉久中文字幕无码专区 | 亚洲成a人片在线v观看 | 午夜国产福利在线 | 天天综合天天射 | 日韩欧美中文在线 | 欧美一区2区 | 三级黄在线播放 | 一区亚洲 | 色综合色 | 日韩亚洲国产综合久久久 | 午夜视频网址 | 色噜噜狠狠一区二区 | 亚洲第一影视 | 热の综合热の国产热の潮小说 | 手机看片自拍自拍 | 日本tv欧美tv天堂 | 影音先锋亚洲综合小说在线 | 亚洲国产精品久久精品成人 | 丝袜 欧美 视频 首页 在线 | 色碰视频 | 一区二区在线视频观看 | 日本一区二区三区在线 视频观看免费 | 午夜aaa| 婷婷5月天| 速度与激情9下载 | 亚洲人成网址在线观看 | 日韩经典欧美一区二区三区 | 青青青青手机在线视频观看国产 | 啪在线视频 | 四虎a456tncom|