文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | firefox | WPS | 杀毒软件 | Picasa
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形图像 办公软件 媒体动画 精文荟萃 常用软件 网页编程 技术开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程CGI/PerlCGI教程(8)记录用户记录脚本
精品推荐
特别推荐
·在CGI中如何使用cookie的方法
·CGI脚本在WIN2000、WINNT下安装
热点TOP10
·cgic: 为C语言编写CGI的C函数库
·Perl实例:
·在CGI中如何使用cookie的方法
·CGI 安全问题
·怎样一次打印多个文件
·CGI脚本在WIN2000、WINNT下安装
·CGI教程(4)HTML 表单
·cgilib例
·Perl教学 第十二篇 Perl5中的引用之二
·Perl教学 第十二篇 Perl5中的引用之一
·Perl/Tk FAQ - 4. 哪里有Perl/Tk?
·用Perl写出自己的安全工具--初级
·购建ASP、CGI、PHP+MySQL运行环境——服务器运行环境配置全攻略(二)
·跟我学Perl
·访问标准CGI变量
·关于我和刘思平发现的xx(www.xxxxxxx.com)的cgi漏洞
·关于Sendmail和Perl的邮件附件过滤系统
·关于odbc的一个文挡说明
·建立个人服务器脱机调试CGI脚本
·计数器的编写方法

CGI教程(8)记录用户记录脚本

日期:2007年5月10日 作者: 查看:[大字体 中字体 小字体]


记录用户记录脚本

  在<IMG>标签使用一个指定CGI脚本的URL,可以在图象被传递之前进行额外处理。额外的处理记录了有关网页当前用户的详细信息。这个额外信息将发送给CGI脚本来指定Action的正确的详细数据。比如 :

格式化的文本
Html

.
<IMG SRC="http://www.QQread.com/cgi-bin/mas_rec?page=HTML&file=log&img=dot.gif"

ALT="Record not made">


语句中的CGI脚本mas_rec是用C++编写的,它发送以下的信息:

参数名字
要求

File
文件的名字,在上面用法信息将被附上

Page
网页的名字,它将被记录在日志中

img
要装载的图片

记录用户记录脚本

//以下是mas_res程序

#include "t99_type.h"

#include

#include

#include

#include

#include

#include

#include

#include "parse.h"

#include "parse.cpp"

#include "mas_cvo.cpp"

void write_log_entry( char[], char[] );

void cgi_var_output();

char* getenv_n( char [] );

void gif_output( char [] );

int main()

{

char *query_str = getenv("QUERY_STRING");

Parse list( query_str == 0 ?

(char*)"file=mas&page=Test&" : query_str );



if ( list.get_item( "file" ) != NULL )

{

write_log_entry( list.get_item_n( "file", 1, true ),

list.get_item_n( "page" ) );

}

if ( list.get_item( "img" ) != NULL )

{

gif_output( list.get_item_n("img", 1, true) );

} else {

html("Content-type: text/html"); html("");

cgi_var_output(); // debug option

}

return 0;

}



 

void write_log_entry( char file[], char page[] )

{

//cout << "File = [" << file << "] page = [" << page << "]" << "\n";

//cout.flush();

ofstream inf( file, ios::app );

//inf.open( file, ios::out );

if ( !inf.fail() )

{

time_t t;

time( &t);

char *str = ctime( &t ); str[24] = '\0';

inf << setiosflags( ios::left );

inf << setw(24) << str << " " <<

setw(10) << (page!=NULL? page : (char*)"Unknown" ) << " " <<

setw(18) << getenv_n("REMOTE_ADDR") << " " <<

setw(20) << getenv_n("REMOTE_HOST") << "\n";

// setw(20) << getenv_n("REMOTE_USER") << "\n";

}

}

void gif_output( char gif[] )

{

char square [] = {

'G', 'I', 'F', '8', '9', 'a',

0002, 0000, 0002, 0000, 0263, 0000, 0000, 0000, 0000, 0000,

0277, 0000, 0000, 0000, 0277, 0000, 0277, 0277,

0000, 0000, 0000, 0277, 0277, 0000, 0277, 0000,

0277, 0277, 0300, 0300, 0300, 0200, 0200, 0200,

0377, 0000, 0000, 0000, 0377, 0000, 0377, 0377,

0000, 0000, 0000, 0377, 0377, 0000, 0377, 0000,

[1] [2] 下一页 




上一篇:CGI教程(9)编写安全的CGI脚本

下一篇:CGI教程(7)解码数据发送给CGI脚本

CGI教程(8)记录用户记录脚本 相关文章:
·CGI教程(8)记录用户记录脚本
·CGI教程(8)记录用户记录脚本之一
·CGI教程(8)记录用户记录脚本之二
CGI教程(8)记录用户记录脚本 相关软件:

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn