$value=~s/%([a-f A-F 0-9][a-f A-f 0-9])/pack("C",hex($1))/eg; $FORM{$name}=$value;} $file_name="guestbook.txt";#File name #具体内容 open(FILE,">>$file_name")||die "打开文件错误"; print FILE "记录时间":$date /n/n"; print FILE "姓名":$FORM{'name'}"; print FILE "单位":$FORM{'company'}/n"; print FILE "电话":$FORM{'phone'} print FILE "地址":$FORM{'address'}/n"; print FILE "邮编":$FORM{'zip'} print FILE "邮件地址":$FORM{'email'}/n"; print FILE "返回意见":$FORM{'content'} close (FILE)
大家可以感觉到,与 ASP 相比此类 CGI 程序的可读性和易操作性都较差。那么你一定想问 ASP 是否也能直接在服务器上写文件呢?答案当然是肯定的。但是聪明的朋友可能会想到,既然 ASP 同 WEB 数据库的连接如此便捷,我们又何需再将客户信息写在文本文件中呢, ASP 的这个功能岂不是画蛇添足?的确,对于那些我们常见的留言簿、 BBS 等 WEB 应用程序而言,无论是在程序的执行效率还是易用性上,我们都不可能再用写文本文件来替代数据库,但是在某些 WEB 应用领域里写文本文件既是一种规范也是一种相对数据库而较便捷的方法。如果你对 NT 较熟悉的话,你一定知道 NT 具有非常强大的安全机制,它可以将几乎所有的服务器操作和连接的信息自动保存在一个后缀名为 .log 的文件中,其实这种技术也完全可以被运用在 WEB 上,用来记录一些的客户登陆信息。下面的这段程序正是利用 ASP 读写文本文件的特性,在一个 WEB BBS 程序中创建自动记录每个用户发言记录的功能。
< % Set fs = CreateObject("Scripting.FileSystemObject") ForReading = 1 '以只读模式打开文件。不能对此文件进行写操作。 ForAppending = 8 '打开文件并在文件末尾进行写操作。 TristateUseDefault = -2 TristateTrue = -1 TristateFalse = 0
'-----------写入系统log开始-------- servermap=server.MapPath("/bbs/log/") '映射系统物理路径 temp=servermap&"/"&year(date)&month(date)&"/" '获取系统物理路径和时间,并以此作为log文件存放的物理路径 if Not fs.FolderExists(temp) then fs.CreateFolder(temp) end if '检测是否存在文件夹,否则自动创建 dim syslog dim tempname tempname=date syslog=temp&tempname&".log" '文件名为e:/bbs/log/月份/月日.log li=user&"&"&Now&"&"&Request.ServerVariables("REMOTE_ADDR")&"&"&tempfile&"&"&letter&"&"&title 'log文件记录的格式为:用户名&发信时间&用户ip&文件路径&信区&信件标题 if fs.FileExists(syslog) then Set ss = fs.OpenTextFile(syslog,ForAppending,true) else set ss = fs.CreateTextFile(syslog,ForWriting,false) end if '检测log文件是否存在,如果存在则追加文件内容,反之则直接写文件 ss.WriteLine(l 
2/2 首页 上一页 1 2 |