动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
  
   Cgi/Perl → 阅读文章

 用户数据集中写入

作者来源: 
阅读 数 114 人次 , 2006-3-29 4:05:00 


以前看到小石榴写的一个用户数据集中读写的帖子,看了好几遍,没看懂,实在对不起,又没看懂。没看懂就自己写,下面是个我写的集中写入用户数据的过程。

代码:
--------------------------------------------------------------------------------

sub upmemberdate {
my $membernametemp = shift;
my %userinfo = @_;

my $filetoopen = "$lbdir$memdir/$membernametemp.cgi";
if (-e $filetoopen) {
open (file,$filetoopen);
my $filedata=<file>;
close(file);
chomp $filedata;
local ( $membername, $password, $membertitle, $membercode, $numberofposts, $emailaddress, $showemail, $ipaddress, $homepage, $oicqnumber, $icqnumber, $location, $interests, $joineddate, $lastpostdate, $signature, $timedifference, $privateforums, $useravatar, $userflag, $userxz, $usersx, $personalavatar, $personalwidth, $personalheight, $rating, $lastgone, $visitno, $addjy, $meili, $mymoney, $postdel, $sex, $education, $marry, $work, $born, $chatlevel, $chattime, $jhmp, $useradd3, $useradd4, $onlinetime, $userquestion, $useradd6, $useradd7, $useradd8) = split(/\t/,$filedata);
local($numberofposts,$numofreplys)=split(/\|/,$numberofposts);
foreach my $info (keys %userinfo) {
if ($userinfo{$info}=~/^[\+\-][0-9]+$/) {
$$info += $userinfo{$info};
}
else {
$userinfo{$info} =~ s/^\\(\-|\+)/$1/;
$userinfo{$info} =~ s/^\\\\/\\/;
$$info = $userinfo{$info};
}
#print "$info $$info\n";
}
open(file,">$filetoopen");
print file "$membername\t$password\t$membertitle\t$membercode\t$numberofposts\|$numberofreplys\t$emailaddress\t$showemail\t$ipaddress\t$homepage\t$oicqnumber\t$icqnumber\t$location\t$interests\t$joineddate\t$lastpostdate\t$signature\t$timedifference\t$privateforums\t$useravatar\t$userflag\t$userxz\t$usersx\t$personalavatar\t$personalwidth\t$personalheight\t$rating\t$lastgone\t$visitno\t$addjy\t$meili\t$mymoney\t$postdel\t$sex\t$education\t$marry\t$work\t$born\t$chatlevel\t$chattime\t$jhmp\t$useradd3\t$useradd4\t$onlinetime\t$userquestion\t$useradd6\t$useradd7\t$useradd8\t\n";
close(file);
}
}


所传递的参数,第一个是所要写入的用户名,后面是一个哈希表,哈希表的关键字是要被改变的变量名,值是增减的值或被改为的值。
如果哈希表的值以 + - 开头,则是对相应的用户数据增减,否则就将相应的用户数据设为哈希表的值。
如果要将一个以 + - 开头的字串付给一个变量的话,就要用 \ 对其进行一次转义,如果以 \ 开头还要进行一次转义。
例如,将用户 test 的发贴数加1 ,威望设为 -6 ,可以这样调用过程。
&upmemberdate('test',numofposts,'+1',rating,'\-6');

 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:一种html模版输出方式
· 下一篇:外部准确测试你的脚本执行时间
· Perl的经典用法
· 使用脚本下载网页
· CGI教学:第四章 设置Web Server以运行CGI
· CGI教程(8)记录用户记录脚本之一
· perl文件上传程序,支持多文件,2进制


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077