Linux 下虚拟域名的实现 (3)

发表于:2007-07-01来源:作者:点击数: 标签:
CGI 程序的编制 作 者 : 郑涛 要实现虚拟域名的在线申请,就必须编写相应 CGI 程序动态修改独立的配置文件(即上面的 vhos td bm 文件)和进行用户的管理(包括用户申请,登录,密码修改等等)。在此只介绍对独立的配置文件的操作,其他属于如何用 Perl 语言
    
  CGI 程序的编制
  作 者 : 郑涛
  
    要实现虚拟域名的在线申请,就必须编写相应 CGI 程序动态修改独立的配置文件(即上面的 vhostdbm 文件)和进行用户的管理(包括用户申请,登录,密码修改等等)。在此只介绍对独立的配置文件的操作,其他属于如何用 Perl 语言来编写 CGI 程序,请参考有关资料。
  
    vhostdbm 文件使用 dbm 格式来记录数据,与用普通文本文件相比可加快寻找速度,而且易于修改。许多 UNIX 系统都具有叫做 dbm ( database management )的标准库。该库将键 - 值对的集合存贮到一对磁盘文件中,提供简单的数据库管理工具,可以方便的更改、新增或删除数据内容。
  
    Perl 访问 dbm 的方式:通过一个类似于打开文件的进程将关联数组与 dbm 数据库联系起来。在数组中创建新元素时立即就更改了 dbm 数据库。删除一个元素的同时也删除了 dbm 数据库中的数值。可使用:
  
     1 、欲将 dbm 数据库与 dbm 数组相关联起来:
  dbmopen(%arrayname,"dbmfilename",$mode);
  
    如果 dbmfilename 不存在的话就新建该库。 %arrayname 参数是 Perl 的关联数组(如果这个数组已经有值,那么这些值就被删除)。该关联数组连接到叫做 dbmfilename 的 dbm 数据库中。 $mode 参数是当需要创建库时控制库文件权限的数字,该数字被指定为 8 进制,经常被用到的是 0644 ,给除了机主之外的新用户以只读的权限,机主可有全部权限。
  
     2 、关闭 dbm 库:
  dbmclose(%arrayname);
  %arrayname 是已经与 dbm 库关联了的数组名。
  
    例 6 .以 VHOST 打开 vhostdbm ,或新建一个 dbm 库:
  dbmopen(%VHOST,"vhostdbm",0644);
  
    例 7 .新建记录或更改已有记录(设从 html 文件 form 中传过来的参数名为 vhost 、 rhost ):
  $VHOST{$FORM{@#vhost@#}}=$FORM{@#rhost@#};
  
    例 8 .删除已有记录(设从 html 文件 form 中传过来的参数名为 vhost ):
  delete $VHOST{$FORM{@#vhost@#}};
  
    例 9 .关闭 vhostdbm :
  dbmclose(%VHOST);
  
  注:以上已经假设传过来的参数经过了验证,不存在重复的记录,否则会导致已有记录的混乱。
  
  

原文转自:http://www.ltesting.net