#!/usr/bin/perl my $passwd = '840818'; my @scales = ( '0〜500サイト','500〜1000サイト','1000〜3000サイト','3000〜5000サイト','5000サイト〜'); my %FORM = &replace(&decode); if ( $FORM{mode} eq 'regist' ) { ®ist(); } elsif ( $FORM{mode} eq 'do_regist' ) { &do_regist(); } elsif ( $FORM{mode} eq 'edit' ) { &edit(); } elsif ( $FORM{mode} eq 'do_edit' ) { &do_edit(); } else { &html(); } #通常表示 sub html{ &head(); print &fix_indent(<<"EOM"); | | | | | | | |
■管理者モード
|
|登録処理 password: |
|
|変更処理 password: id: |
|
|
| |
EOM &foot(); } #登録処理 sub regist{ if ( $FORM{passwd} ne $passwd ){ &error("パスワードが間違っています。"); } &head(); print &fix_indent(<<"EOM"); | | | | | | | |
■登録処理
|
| |
| | | | | | | | | | | | | | | | | | | | | | | | | | | |
HN
e-mail
サイト名
サイトURL
バナーURL
ジャンル
サイト登録数 | |
使用エンジン
紹介文 | | |
| |
|
|
EOM &foot(); } #登録実行処理 sub do_regist{ open(INOUT, "+; my @log = split(/<>/, $lines[-1]); my $id = $log[0]+1; my $n_line = "$id<>$FORM{admin}<>$FORM{name}<>$FORM{url}<>$FORM{mail}<>$FORM{banner}<>$FORM{genre}<>$FORM{system}<>$FORM{scale}<>$FORM{com}\n"; push(@lines, $n_line); seek INOUT, 0, 0; truncate INOUT, 0; print INOUT @lines; close INOUT; &head(); print &fix_indent(<<"EOM"); | | | | | | | |
■登録完了
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | |
HN$FORM{admin}
e-mail$FORM{mail}
サイト名$FORM{name}
サイトURL$FORM{url}
バナーURL$FORM{banner}
ジャンル$FORM{genre}
サイト登録数 |$scales["$FORM{scale}"] |
使用エンジン$FORM{system}
紹介文 |$FORM{com} | |
|
|
EOM &foot(); } #変更処理 sub edit{ if ( $FORM{id} eq "" ){ &error("idが未記入です。"); } if ( $FORM{passwd} ne $passwd ){ &error("パスワードが間違っています。"); } open(IN, "sea.dat") or &error("ファイルが開けません"); while (my $line = ){ my @log_temp = split(/<>/,$line); if ($log_temp[0] eq $FORM{id} ){ $site = $line; } } close(IN); if ( $site eq "" ){ &error("そのidは存在しません。"); } my @log = split(/<>/, $site); &head(); print &fix_indent(<<"EOM"); | | | | | | | |
■変更処理
|
| | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | |
HN
e-mail
サイト名
サイトURL
バナーURL
ジャンル
サイト登録数 | |
使用エンジン
紹介文 | | |
| |
|
|
EOM &foot(); } #変更実行処理 sub do_edit{ open(INOUT, "+; my @new = (); foreach (@lines){ my @log = split(/<>/, $_); if ( $log[0] eq $FORM{id} ){ $_ = "$log[0]<>$FORM{admin}<>$FORM{name}<>$FORM{url}<>$FORM{mail}<>$FORM{banner}<>$FORM{genre}<>$FORM{system}<>$FORM{scale}<>$FORM{com}\n"; } push(@new, $_); } seek INOUT, 0, 0; truncate INOUT, 0; print INOUT @new; close INOUT; &head(); print &fix_indent(<<"EOM"); | | | | | | | |
■変更完了
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | |
HN$FORM{admin}
e-mail$FORM{mail}
サイト名$FORM{name}
サイトURL$FORM{url}
バナーURL$FORM{banner}
ジャンル$FORM{genre}
サイト登録数 |$scales["$FORM{scale}"] |
使用エンジン$FORM{system}
紹介文 |$FORM{com} | |
|
|
EOM &foot(); } #デコード処理 sub decode{ my %hash; my $q = $ENV{REQUEST_METHOD} eq 'POST' ? : $ENV{QUERY_STRING}; %hash = map{tr/+/ /; s/%([a-fA-F0-9]{2,2})/pack("C", hex($1))/eg; $_} split(/[=&]/, $q); return \%hash; } #ヘッダ sub head{ print qq|Content-type:text/html\n\n|; print &fix_indent(<<"EOM"); | | | | | |S.E.A-検索管理人交流サイト- | | | |
| |
|

EOM } #フッタ sub foot{ print &fix_indent(<<"EOM"); |

|
|-Search Engine Alliance- |
| | | | EOM } #タグ等の置換処理 sub replace{ my %hash = %{ shift() }; foreach (keys %hash) { $hash{$_} =~ s//>/g; $hash{$_} =~ s/\"/"/g; $hash{$_} =~ s/(\r\n|\r|\n)//g; } return %hash; } #フォームの記入未記入チェック処理 sub check_dat{ if ( $FORM{"$_[0]"} eq ""){ &error($_[1]); } } #整形処理 sub fix_indent{ my @d = @_; foreach (@d) { $_ =~ s/^\s*\|//mg; } return @d; } #エラー処理 sub error{ &head; print qq|

=エラー:$_[0]=

|; &foot; exit; }