太平洋汽车网 | 太平洋游戏网 | 太平洋女性网 | 太平洋亲子网 | PC购物网  网站地图  
太平洋电脑网
首    页
产业资讯
行情报价产品库
数据调研评测室
服 务 器网络设备
方案应用办公设备
软件资讯产品论坛PCclub社区
下载中心软件论坛摄影部落
渠道商情通信游戏科技奥运
图库二手招聘培训
diyDIY硬件 手机手  机 笔记本笔记本 台式机台式机

数码世界

数码相机数码相机 随身听MP3/MP4 摄像机摄像机 数字家电数字家电 精品廊精品廊
北京 上海 广州 深圳 香港 广西 重庆 武汉 山东 江苏 辽宁 福建 成都 西安 江西 湖南 黑龙江 台湾
 
 
   
软件 首页 | 资讯 | 应用 | 评测 | 教你学电脑 | 信息安全 | 创意设计 | 开发特区 | 软件下载 | 专题 | 社区
 
软件 特色专区: QQ大本营 | Vista专区 | msn总动员 | 组网专栏 | Photoshop | 视频专栏 | 常用软件
 
您现在的位置: 软件  >  开发特区  >  Web开发  >  CGI

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

出处:PConline[ 2004-02-14 09:33:55 ] 作者:ZSC 责任编辑:pjl

导 读  
  记录用户记录脚本  在<IMG>标签使用一个指定CGI脚本的URL,可以在图象被传递之前进行额外处理。额外的处理记录了有关网页当前用户的详细信息。这个额外信息将发送给CGI脚本来指定Action的正确的详细数据。比如 :格式化的文本 HTML . <IMG SRC="/cgi-bin/mas_rec?page=HTML&file=log&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, 0377, 0377, 0377, 0377, 0377, 0054, 0000, 0000, 0000, 0000, 0002, 0000, 0002, 0000, 0100, 0004, 0003, 0020, 0200, 0010, 0000, 0073 }; html("Content-type: image/gif"); html(""); if ( gif[0] != '\0' ) // 输出GIF文件 { ifstream in( gif ); if ( !in.fail() ) { char c; in.read( &c, 1 ); while ( !in.eof() ) { cout.write( &c, 1 ); in.read( &c, 1 ); } return; // 结束 } } cout.write( square, (int) sizeof( square ) ); }   当然,网页的浏览器必须是支持浏览图片以及装载图片的。几个不能装载图片的理由是:   浏览器不支持图片浏览;   用户已经取消对浏览图片的选项,因为要加块连接网络服务器的速度;   服务器件接收到返回图片的请求。
前一页 [1] [2] 下一页
下一篇:CGI教程(9)编写安全的CGI脚本
 今日论坛热贴推荐
·几秒钟合并N个TXT文件
·技巧:怎么清除Windows 7视频锯齿现象
·揭密网游帐号是怎样被盗的全过程
·没有刻录机?Windows 7硬盘安装四大法
·Windows 7将解决微软的“纠结”
·全球首款装正版win7的thinkpad x200
·十大理由决定Windows 7成败
·微软官网首次提及Windows 7 SP1
·从Windows桌面看性格【娱乐】
·惊现google官方Chrome Os下载!?
更多资讯请点击: CGI教程  脚本 

  发给好友 我要报错 投稿给我们 加入收藏 返回顶部  
相关文章  

About Us | 关于我们 | 隐私政策 | 广告服务 | 联系我们 | 招聘精英 | 网站律师 | 合作联系 | 友情链接
太平洋专业网站群:  太平洋电脑网 ┊ 太平洋汽车网 ┊ 太平洋游戏网 ┊ 太平洋女性网 ┊ 太平洋亲子网

广东省通信管理局
ICP证粤B2-20040647
互联网清理整顿
技术支持与报障:support@pconline.com.cn
        020-87568837         
对本站有任何建议、意见或投诉,请点这里在线提交.
本网站简体、繁体两种版本,以简体版为准
PConline版权所有,未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任