虽然许多cgi程序在不同的服务器上都运行得很好,但是还有一个问题,当程序员需要对文件进行拷贝,改名或删除时,他用的是特定的操作系统上的shell命令,而没有采用perl语句。 (例如, system("cp $file1 $file2");) 这样做仅在unix下行得通,而且,当你把未经检查的变量传给shell时,还将可能产生潜在的安全隐患。
下面是一些perl语句,可以用来替换常用的操作系统命令,这些语句可以工作于任何操作系统上。
### 删除
unlink("$cgidir/file.dat");
### 改名
rename("$cgidir/oldfile.dat","$cgidir/newfile.dat");
### 拷贝
open(file1,"<$cgidir/file1.dat");
open(file2,">$cgidir/file2.dat");
binmode(file1);
binmode(file2);
while (<file1>) { print file2; }
close(file1);
close(file2);
### 设置文件权限
chmod(0777,"$cgidir/file.dat");
### 创建目录
mkdir("$cgidir/newdir",0777);
### 删除目录
rmdir("$cgidir/newdir");
### 当前日期/时间
$date = scalar localtime(time);
print $date;
通过使用上面介绍的这些技巧,你不仅可以节省时间,而且也可以写出更好的程序。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器