#!/usr/local/bin/perl ############################################################################## # shiromukuHTPASSWD version 2.12 # Created 10/08/2002 # Copyright 2002 Shiromuku # Available at http://www.t-okada.com/cgi/ ############################################################################### # COPYRIGHT NOTICE (著作権の告示) # Copyright 2002 Shiromuku All Rights Reserved. # This script can be used and modified free of charge as long as you don't change this header or any of the parts that give me credit for writing this. (このスクリプトは無償で使用または改変できます。ただしこの著作権の告知と上記のコメント、及びCGIにより生成されるHTML表示下部にある著作権表示部は変えないで下さい。) # By using this script you agree to indemnify me from any liability that might arise from its use. In simple English, if this script somehow makes your computer run amuck and kill the pope, it's not my fault.(このスクリプトを使用することにより、使用者はその使用によって起こる可能性のあるいかなる事柄に対する責務についても、私Shiromukuに免責の保証を与えることに同意したものとします。) # Redistributing and selling the code for this program without prior written consent is expressly forbidden.(前もって書面での承諾を得ることなくこのプログラムのコードを再配布したり売ったりすることは 明確に禁じられています。) ####################### require './jcode.pl'; require './s_htpasswd_lib.cgi'; ####################### use strict; my $gl = &get_globals("s_htpasswd_gl.cgi"); $gl->{version} = "version 2.12"; $gl->{userip} = $ENV{'REMOTE_ADDR'}; #$gl->{hosts} = gethostbyaddr(pack('C4',split(/\./,$gl->{userip})),2); if ($gl->{hosts} eq "") {$gl->{hosts} = $gl->{userip};} $gl->{hosts}="$gl->{hosts}--$ENV{'HTTP_USER_AGENT'}"; my ($form, $cform, $sform, $filename, $h_filename, $key); if ($ENV{'CONTENT_LENGTH'}) {($form, $cform, $sform) = &parse_data($gl);} my$config = &open_config ($gl, $form); my %HoD = (); @HoD{"gl", "config", "form", "cform", "sform"} = ($gl, $config, $form, $cform, $sform); #foreach $key (keys (%{$HoD{config}})) { #if ($key =~ /^c2_/) {$HoD{config}{$key} =~ s/
/\n/g;} #} $filename = "$gl->{basedir}/$gl->{passfile}"; if (-e $filename) { if($config->{allow_submit}) {&return_main (\%HoD);} else {&return_admin_enter(\%HoD);} } else { open(FILE,">$gl->{basedir_h}/isweb_htaccess") || &error("$gl->{basedir_h}/\.htaccessがオープンできません。1\n"); print FILE <<"HERE"; AuthUserFile $gl->{userfile} AuthGroupFile /dev/null AuthName ByPassword AuthType Basic require valid-user order deny,allow deny from all HERE close(FILE); chmod 0666, "$gl->{basedir_h}/\.htaccess"; &head("管理用ページ", \%HoD); print "

IDとパスワードの設定をする

\n"; print "
まず最初にIDとパスワードの設定をして下さい
\n"; print "
{cgi_a}\">\n"; print "\n"; print "
\n"; print "\n"; print "\n"; print "
ユーザID
(半角英数字で8文字以内にして下さい。)
パスワード
(半角英数字で8文字以内にして下さい。)
パスワード
(確認のためもう一度)
\n"; print "
\n"; print "
\n"; print "\n"; exit; } ############################ sub parse_data { my $gl = shift; my ($buffer, @pairs, $pair, $name, %form, %cform, %sform, $value, $value_count, $value_count1); if ($ENV{'REQUEST_METHOD'} eq "POST") { &check_referer($gl); read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/\|\|\|//g; $value =~ s//>/ig; if (($name eq "id") || ($name eq "pass")){$value =~ s/\://g;} if ($name =~ /^c1_/) { $value =~ s/"/"/g; $value_count = $value =~ tr/"/"/; if ($value_count == 1) { $value .= "\"";} else { $value_count && ($value_count1 = $value_count % 2); if ($value_count1 == 1) { $value .= "\"";} } } if ($name =~ /^c2_/) { $value =~ s/
/
/g; $value =~ s/\r\n/
/g; $value =~ s/\r/
/g; $value =~ s/\n/
/g; } else { $value =~ s/\r\n/
/g; $value =~ s/\r/
/g; $value =~ s/\n/
/g; } if ($value =~ /^http\:\/\/$/) {$value = "";} jcode::convert(\$value,$gl->{mycode}); if ($gl->{mycode} eq 'sjis') {jcode::h2z_sjis(\$value); } if ($gl->{mycode} eq 'euc') {jcode::h2z_euc(\$value); } if ($name eq "removesection") { $form{$name} .= $value . ","; } elsif ($name =~ /^(\w+)\*(\w+)$/) { $sform{$1}{$2} = $value; } elsif ($name=~ /change_(\d+)/) { $cform{$1} = $value; } else {$form{$name} = $value;} } } return (\%form, \%cform, \%sform); } ############################ #メインページ sub return_main { my$HoD = shift; print "Content-type: text/html\n\n"; &head_html(\*STDOUT,$HoD); print "$HoD->{config}{c2_title}\n"; print "$HoD->{config}{c2_introduction}\n"; print "

新規登録

\n"; print "
メールアドレスと登録したいIDを記入して「送信」ボタンを押して下さい。
\n"; print "
{gl}{cgi_a}\">\n"; print "\n"; print "
\n"; if ($HoD->{config}{allow_submit} == 2) { print "\n"; print "\n"; print "\n"; } print "\n"; print "\n"; print "
お名前必須
メッセージ\n"; print "
E-mail正確にご記入下さい
I D8文字以内の半角英数字で
\n"; print "
\n"; print "

パスワード変更

\n"; print "
メールアドレスと登録済みIDとパスワード及び希望する新パスワードを記入して「変更」ボタンを押して下さい。
\n"; print "
{gl}{cgi_a}\">\n"; print "\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
E-mail正確にご記入下さい
I D8文字以内の半角英数字で
旧パスワード
新パスワード8文字以内の半角英数字で
新パスワード確認用にもう一度
\n"; print "
\n"; print "

パスワード再発行

\n"; print "
パスワードを忘れた場合はメールアドレスと登録済みIDを記入して「再発行」ボタンを押して下さい。
\n"; print "
{gl}{cgi_a}\">\n"; print "\n"; print "
\n"; print "\n"; print "\n"; print "
E-mail正確にご記入下さい
I D8文字以内の半角英数字で
\n"; print "
\n"; print "$HoD->{config}{c2_back}\n"; print "
\n"; print "
{gl}{cgi_a}\">\n"; print "\n"; print "\n"; print "
\n"; print "shiromukuHTPASSWD $HoD->{gl}{version}
\n"; if ($HoD->{config}{c2_adsbanner_bottom}) { print "
$HoD->{config}{c2_adsbanner_bottom}
"; } print "\n"; }