- 追加された行はこの色です。
- 削除された行はこの色です。
*紹介すると報酬 [#ke0768f3]
-ページ: [[罪罰改造板2]]
-投稿者: [[kanta]]
-優先順位: 普通
-状態: 着手
-カテゴリー: こんなのが欲しい♪
-投稿日: 2005-12-11 (日) 01:46:14
-バージョン:
**内容 [#k7c46a86]
新規登録時に紹介者を入力することによって、紹介者の倉庫に入金できるようにしたいのですが、倉庫ファイルに書き込もうとしているのですがなかなか出来ません。どのようにやったらうまくいくと思われますか?
----
-倉庫ファイルに直接書き込みを行うより、soko.cgiを利用するのが簡単だと思います -- [[あくあ]] &new{2005-12-11 (日) 02:01:36};
# 相手指定であずける
sub soko_com_in{
ここの部分が、他の人に送付する部分なので参考にするといいと思います。ここ(soko_com_in)に書かれていることと同じような処理を実装すれば可能だと思います。
-とりあえず、新規登録のフォームに相手の"aite"を追加しました。 -- [[kanta]] &new{2005-12-11 (日) 02:27:47};
-
# 相手指定であずける
sub soko_com_in{
$suryo = 100000;
&usr_check;
&soko_open;
if($in{'aite'} ne $SAT{'nm'}){
# 相手が見つからない
$soko_com .= qq|14<>0<>$suryo<>$time<>1212<>$to_uid<>_|;
}
&soko_write;
}
#-----------------------------------------
# 倉庫ファイル
sub soko_open{
# 倉庫ファイル読み込み
if(-e $soko_file){
open(IN,"$soko_file") || &error("1 can't open $soko_file.",1);
$soko_com = <IN>;
close(IN);
}
# 配列に格納
my @line_com = split(/_/,$soko_com);
# $log .= qq|<br>*** $#line ***<br>|;
foreach(0..$#line_com){
my($typ,$lst,$cnt,$sokotime,$from,$to,$lv) = split(/<>/,$line_com[$_]);
$csoko_typ[$_]=$typ;
$csoko_lst[$_]=$lst;
$csoko_cnt[$_]=$cnt;
$csoko_time[$_]=$sokotime;
$csoko_from[$_]=$from;
$csoko_to[$_]=$to;
$csoko_lv[$_]=$lv;
}
}
sub soko_write{
# if($lockkey){ &lock; }
open(OUT,">$soko_file") || &error("2 can't open $soko_file");
print OUT $soko_com;
close(OUT);
if(-e $lockfile){ unlink($lockfile); }
if($flg_backup==1){
open(BAK,">>$soko_back") || &error("3 can't Open $soko_file");
print BAK "$soko_com\n";
close(BAK);
}
}
#-----------------------------------------
# 宛先確認
sub usr_check{
local @tdat;
# 参加者データファイル一覧取得/一括読み込み
opendir(DIR,"$usrdata") || &error("ユーザデータ読みこみエラー",1);
@usrfile = grep /\.cgi/,readdir(DIR);
closedir(DIR);
foreach (0 .. $#usrfile) {
open(IN,"$usrdata$usrfile[$_]") || &error("can't open $usrfile[$_]",1);
$line = <IN>;
close(IN);
push(@tdat,$line);
}
my $flag=0;
foreach(0 .. $#tdat){
%SAT = '';
my @prats = split(/,/,$tdat[$_]);
foreach $prats (@prats){
my($key,$v) = split(/;/,$prats);
$SAT{$key} = $v;
}
if($SAT{'nm'} eq $in{'aite'}){
$to_uid=$SAT{'id'};
$flag=1;
last;
}
}
if(!$flag){
$log = qq|$in{'aite'}さんという参加者は存在しません。<br>| ;
$to_uid="";
}
}
# キャラファイル追加処理、
&soko_com_in;
を追加しました。アドバイスお願いしますm(_ _)m
-- [[kanta]] &new{2005-12-11 (日) 02:32:07};
-testしてみると、2 can't open と出ます。 -- [[kanta]] &new{2005-12-11 (日) 15:16:49};
- これは興味ありますねー -- [[窺儒]] &new{2008-03-25 (火) 19:48:11};
- 倉庫ファイルを読み込んで、soko_com_inを呼び出してみては?(よけいな事かもしれませんが、自分当てに捨てキャラを作られたりしませんか?) -- [[あくあ]] &new{2008-05-04 (日) 00:44:57};
#comment