トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

SION0025

Parts1

<TABLE width="778" border="0" cellspacing="0" cellpadding="5">

<TR bgcolor="#FFCCCC"> 
	<TD class="text"> 
		<HR>
		<CENTER>
			<FONT color="#6666FF">この改造について </FONT> 
		</CENTER>
		<HR>
		<FONT class="text">● <FONT color="#FF0000">sendmail </FONT></FONT> <FONT color="#FF0000">が使えるサーバーである事が必須条件です。</FONT> 
		sendmail が使えなくてもエラーメッセージは出ませんのでご注意下さい。 <BR>
		  sendmail が使えるかどうかは、サーバーの説明書をご確認下さい。<BR>
		● 登録時にメルアドを入力させ、それを元にメールを自動発信します。この為、荒らしによるイタヅラなどには十分ご注意下さい。<BR>
		  特に、数日間管理が出来なくなる場合には、新規登録を一時停止する事が望ましいです。<BR>
		  (※ 同一アドレスには1通しかメールを送らない仕様としています) <BR>
		● パスワードの生成に メールアドレス上位8桁を利用し、また乱数の2桁を種とする crypt による暗号パスワードを生成しています。<BR>
		   crypt は不可逆暗号化であり、また万一解読される事があってもメルアド上位8桁しか解読できません。<BR>
		● メールアドレスは一つのファイルに記録しています。個人情報の漏洩を防ぐ為、 次の点を必ず厳守して下さい。<BR>
		 <B><FONT color="#FF0000">○  $maillistdat で指定するファイル名は必ず変更して下さい。 <BR>
		 ○ ファイルの拡張子は出来るだけ .cgi として下さい。<BR>
		 ○ 外部から直接アクセス出来ないパスを指定できる場合には、そのパスを利用する様にして下さい。<BR>
		 ○ 可能な場合には、データファイルのパーミッションを600として下さい。(通常666|606です) </FONT></B> 
		<HR>
	</TD>
</TR>

</TABLE>
<TABLE width="778" border="0" cellspacing="0" cellpadding="5">

<TR bgcolor="#FFCCFF"> 
	<TD class="text"> 
		<HR>
		<CENTER>
			<FONT color="#6666FF">当改造における追加利用規約</FONT> 
		</CENTER>
		<HR>
		<P><FONT class="text">● <FONT color="#FF0000">この改造、又は改変した物を、下記に定める条件を逸脱して利用する事を禁止します。</FONT></FONT><BR>
			 ○ Script of SAGA の運営の為にのみ利用する事。<BR>
			 ○ (例えメールの一部分であっても)広告や宣伝文などを送信しない事。<BR>
			 ○ 非営利目的に限定して利用する事。<BR>
			● <FONT color="#FF0000">この改造を利用、又は改造し</FONT><FONT class="text"><FONT color="#FF0000">た結果、収集したメールアドレスを</FONT><FONT class="text"><FONT color="#FF0000">、下記に定める条件を逸脱して利用する事を禁止します</FONT></FONT><FONT color="#FF0000">。</FONT></FONT><BR>
			 ○ Script of SAGA の運営の為にのみ利用する事。<BR>
			 ○ 非営利目的に限定して利用する事。<BR>
			 ○ 部外者にメールアドレスを提供しない事。<BR>
			● <FONT color="#FF0000">この改造を利用、又は改造して、悪用することを禁止します。 </FONT> <FONT class="text"><BR>
			</FONT>● <FONT class="text"><FONT color="#FF0000">この改造を、改造の有無に関わらず再配布する行為を禁止します。</FONT></FONT></P>
		<P> ● <FONT class="text"><FONT color="#FF0000"><B>上記の規約に違反した場合、【送信したメール一通につき 
			金¥1,000- の送信機能利用料を支払う事に同意した物と致します。】</B></FONT></FONT><BR>
			● <FONT class="text"><FONT color="#FF0000"><B>上記の規約に違反した場合、【この改造で収集したメールアドレス1アドレスにつき 
			金 \50,000- のアドレス収集機能利用料を支払う</B></FONT></FONT><B><FONT color="#FF0000">事</FONT><FONT class="text"><FONT color="#FF0000">に同意した物と致します。</FONT></FONT><FONT color="#FF0000">】</FONT> 
			<BR>
			● この改造を利用する場合、上記の追加利用規約および他に定める利用規約の全てに同意が必要です。 <BR>
			  これより先に読み進めた時点で、これらに同意したものと致します。 </B></P>
		<HR>
	</TD>
</TR>

</TABLE>

Parts2

<BR>
<B><FONT color="#0000FF"><A href="../download/sionmail_cgi.txt">sionmail.cgi</A> downloadしてお使い下さい。</FONT></B><BR>
<B>1行目に、利用者のメールアドレスを設定して下さい(必須)。<BR>
2行目に、SOSを利用する為のURL(http://〜)を設定して下さい。(必須)<BR>
3行目に、sendmail のパスを設定して下さい。(サーバーの説明を調べてください)</B><BR>
ダウンロードしたファイルは、<B><FONT color="#FF0000">適当な名前をつけてアップロード</FONT></B>します。 <BR>
本体から require で読み出して動作させる為、<B><FONT color="#FF00FF">パーミッションは(644|604)</FONT></B>になります。<BR>

Parts3

<BR>
<B><FONT color="#0000FF">sos2.cgi # ---------- FILE PATH Line:31</FONT></B><BR>
<B>$bitdat = './bit.dat'; # bit.datのパス 666(606) </B><BR>
<TEXTAREA name="textfield" cols="100" rows="5" wrap="OFF">
$bitdat = './bit.dat'; # bit.datのパス 666(606)
#-ADD-
$maillistdat = 'maillist.cgi'; # maillist.dat のパス 666(606)
$sionmailcgi = 'sionmail.cgi'; # sionmail.cgi のパス 644(604)
#-END of ADD- SION0025v1.00-2-1/9
</TEXTAREA><BR>
<B><FONT color="#FF0000">※ sionmail,cgi のファイル名は改造ポイント1で設定したファイル名です。</FONT></B> <BR>
<B><FONT color="#FF0000">※ 必ず maillist,cgi のファイル名を任意のファイル名に変更する事。</FONT></B>

Parts4

<BR>
<B><FONT color="#0000FF">sos2.cgi # Sub New Game # Line:465-466</FONT></B><BR>
<B>print qq|&lt;tr>&lt;td>パスワード&lt;/td>&lt;td>&lt;input type=password name=pass>&lt;/td>&lt;/tr>\n|;<BR>
print qq|&lt;tr>&lt;td>確認のためもう一度&lt;/td>&lt;td>&lt;input type=password name=pass2>&lt;/td>&lt;/tr>\n|; </b><Br>
<TEXTAREA name="textarea5" cols="100" rows="5" wrap="OFF">
#-EDIT- print qq|&lt;tr&gt;&lt;td&gt;パスワード&lt;/td&gt;&lt;td&gt;&lt;input type=password name=pass&gt;&lt;/td&gt;&lt;/tr&gt;\n|;
# print qq|&lt;tr&gt;&lt;td&gt;確認のためもう一度&lt;/td&gt;&lt;td&gt;&lt;input type=password name=pass2&gt;&lt;/td&gt;&lt;/tr&gt;\n|;

print qq|&lt;tr&gt;&lt;td&gt;メールアドレス&lt;/td&gt;&lt;td&gt;&lt;input type=password name=mail&gt;&lt;/td&gt;&lt;/tr&gt;\n|;
print qq|&lt;tr&gt;&lt;td&gt;確認のためもう一度&lt;/td&gt;&lt;td&gt;&lt;input type=password name=mail2&gt;&lt;/td&gt;&lt;/tr&gt;\n|;
push (@editor,&quot;メルアド登録制度 Ver 1.00 &amp;lt;A href='http://www.salion2.halfmoon.jp/soswiki/wiki.cgi' target='_blank'&amp;gt;by SION & SOSWiki&amp;lt;/A&amp;gt;&quot;);

#-END of EDIT- SION0025v1.00-3-2/9
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">sos2.cgi # Sub Make New # Line:501-503</FONT></B> <BR>
<B>if ($Fm{'pass'} eq "") { &error("パスワードを入力してください") }<BR>
if ($Fm{'pass'} ne $Fm{'pass2'}) { &error("2つのパスワードが一致しません") }<BR>
if ($def_pa && $Fm{'job'} eq $def_pb && $Fm{'pass'} !~ /$def_pp/) { </b><br>
<TEXTAREA name="textarea4" cols="100" rows="5" wrap="OFF">
#-EDIT- if ($Fm{'pass'} eq &quot;&quot;) { &amp;error(&quot;パスワードを入力してください&quot;) }
# if ($Fm{'pass'} ne $Fm{'pass2'}) { &amp;error(&quot;2つのパスワードが一致しません&quot;) }
# if ($def_pa &amp;&amp; $Fm{'job'} eq $def_pb &amp;&amp; $Fm{'pass'} !~ /$def_pp/) {

push (@editor,&quot;メルアド登録制度 Ver 1.00 &amp;lt;A href='http://www.salion2.halfmoon.jp/soswiki/wiki.cgi' target='_blank'&amp;gt;by SION & SOSWiki&amp;lt;/A&amp;gt;&quot;);
if ($Fm{'mail'} eq &quot;&quot;) { &amp;error(&quot;メールアドレスを入力してください&quot;) }
if ($Fm{'mail'} ne $Fm{'mail2'}) { &amp;error(&quot;2つのメールアドレスが一致しません&quot;)
}
if ($Fm{'job'} ne $def_pb &amp;&amp; ($Fm{'mail'} =~ /[^\w-\@\.]/ || $Fm{'mail'} !~ /.+\@.+\..+/)) { &amp;error('メールアドレスとして認識出来ませんでした。'); }
if ($def_pa &amp;&amp; $Fm{'job'} eq $def_pb &amp;&amp; $Fm{'mail'} !~ /$def_pp/) {

#-END of EDIT- SION0025v1.00-3-3/9
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">sos2.cgi # Sub Make New # Line:509</FONT></B> <BR>
<b>$Fm{'ps'} = $Fm{'pass'}; </b><br>
<TEXTAREA name="textarea6" cols="100" rows="5" wrap="OFF">
#-ADD-

if ($Fm{'job'} ne $def_pb) {
	$Fm{'pass'} = crypt(substr($Fm{'mail'},0,8),substr(int(rand(time)),-2));
	require $sionmailcgi;
	if (-e $maillistdat) {
		@maillist = &amp;opendat(&quot;$maillistdat&quot;);
	}
	foreach (0 .. $#maillist) {
		($mid,$mailadd) = split('&lt;&gt;',$maillist[$_]);
		if ($mailadd eq $Fm{'mail'}) {
			&amp;error(&quot;同一のメルアドが既に存在しています&quot;);
		}
	}
}

#-END of ADD- SION0025v1.00-3-4/9

$Fm{'ps'} = $Fm{'pass'};

</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">sos2.cgi # Sub Make New # Line:524</FONT></B> <BR>
<b>$Fm{'id'} = $id; &cookie_set; &play_form; </b><br>
<TEXTAREA name="textarea6" cols="100" rows="5" wrap="OFF">
#-EDIT- $Fm{'id'} = $id; &amp;cookie_set; &amp;play_form;

if ($Fm{'job'} ne $def_pb) {
	push(@maillist,join('&lt;&gt;',$id,$Fm{'mail'},&quot;\n&quot;));
	&amp;writedat(&quot;$maillistdat&quot;,@maillist);
	chmod(0666,&quot;$maillistdat&quot;);
	$mailmsg = &lt;&lt;END_OF_MAILMSG;

Script of SAGA : Welcome to our world!
 あなたのパスワードは [ $Fm{'pass'} ] です。
 ゲームを開始するには、[ $starturl ] から始めて下さい。
END_OF_MAILMSG

	&amp;sion_sendmail(&quot;$mailmsg&quot;,&quot;$Fm{'mail'}&quot;);
	push (@msg,'登録したアドレスにパスワードを送信致しました。');
	push (@msg,'受信したパスワードを使用してゲームをして下さい。');
	&amp;main_form;
} else {
	$Fm{'id'} = $id; &amp;cookie_set; &amp;play_form;
}

#-END of EDIT- SION0025v1.00-3-5/9
</TEXTAREA>

Parts5

<BR>
<B><FONT color="#0000FF">sos2.cgi # Sub Delete After # Line:1833</FONT></B> <BR>
<b>unlink("$usrdir$id\.dat"); </b><br>
<TEXTAREA name="textarea2" cols="100" rows="5" wrap="OFF">

	unlink(&quot;$usrdir$id\.dat&quot;);

#-ADD-

	if (-e $maillistdat) {
		require $sionmailcgi;
		@maillist = &amp;opendat(&quot;$maillistdat&quot;);
		foreach (0 .. $#maillist) {
			($mid,$mailadd) = split('&lt;&gt;',$maillist[$_],2);
			if ($mid eq $Fm{'id'}) {
				$maillist[$_] = &quot;del&lt;&gt;$mid&lt;&gt;$mailadd&quot;;
				$exist = 1; last;
			}
		}
		if ($exist) { &amp;writedat(&quot;$maillistdat&quot;,@maillist); }
	}

#-END of ADD- SION0025v1.00-4-6/9
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">sos2.cgi # Sub Find to Delete # Line:1985</FONT></B> <FONT color="#FF0000"><B>Ver1.01修正</B></FONT><BR>
<b>if ($now > $tm && $ps ne $admpas) { unlink("$usrdir$id\.dat") } </b><Br>
<TEXTAREA name="textarea2" cols="100" rows="5" wrap="OFF">
#-EDIT-

if ($now &gt; $tm &amp;&amp; $ps ne $admpas) {
	unlink(&quot;$usrdir$id\.dat&quot;)
	if (-e $maillistdat) {
		require $sionmailcgi;
		@maillist = &amp;opendat(&quot;$maillistdat&quot;);
		foreach (0 .. $#maillist) {
			($mid,$mailadd) = split('&lt;&gt;',$maillist[$_],2);
			if ($mid eq $id) {
				$maillist[$_] = &quot;del&lt;&gt;$mid&lt;&gt;$mailadd&quot;;
				$exist = 1; last;
			}
		}
		if ($exist) { &amp;writedat(&quot;$maillistdat&quot;,@maillist); }
	}
}

#-END of ADD- SION0025v1.00-4-7/9
</TEXTAREA>

Parts6

<BR>
<B><FONT color="#0000FF">sos2.cgi # Sub Continue Game # Line:490</FONT></B> <BR>
<b>print qq|&lt;tr>&lt;td>4桁のID&lt;/td>&lt;td>&lt;input type=password name=id value="$c_id">&lt;/td>&lt;/tr>\n|; </b><br>
<TEXTAREA name="textarea7" cols="100" rows="4" wrap="OFF">

print qq|&lt;tr&gt;&lt;td&gt;4桁のID&lt;/td&gt;&lt;td&gt;&lt;input type=password name=id value=&quot;$c_id&quot;&gt;&lt;/td&gt;&lt;/tr&gt;\n|;

#-ADD-

print qq|&lt;tr&gt;&lt;td&gt;メルアド&lt;BR&gt;(未登録の場合のみ)&lt;/td&gt;&lt;td&gt;&lt;input type=password name=mail value=&quot;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;\n|;
push (@editor,&quot;メルアド登録制度 Ver 1.00 &amp;lt;A href='http://www.salion2.halfmoon.jp/soswiki/wiki.cgi' target='_blank'&amp;gt;by SION & SOSWiki&amp;lt;/A&amp;gt;&quot;);

#-END of ADD- SION0025v1.00-5-8/9
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">sos2.cgi # Sub Make Continue # Line:536</FONT></B> <BR>
<b>$Fm{'ps'} = $Fm{'pass'}; </b><Br>
<TEXTAREA name="textarea7" cols="100" rows="5" wrap="OFF">
#-ADD-

if ($jb ne $def_pb &amp;&amp; $Fm{'pass'} ne $admpas) {
	push (@editor,&quot;メルアド登録制度 Ver 1.00 &amp;lt;A href='http://www.salion2.halfmoon.jp/soswiki/wiki.cgi' target='_blank'&amp;gt;by SION & SOSWiki&amp;lt;/A&amp;gt;&quot;);
	require $sionmailcgi;
	if (-e $maillistdat) {
		@maillist = &amp;opendat(&quot;$maillistdat&quot;);
	}
	foreach (0 .. $#maillist) {
		($mid,$mailadd) = split('&lt;&gt;',$maillist[$_]);
		if ($mid eq $id) {
			$exist = 1; last;
		}
	}
	if (!$exist) {
		if ($Fm{'mail'} eq &quot;&quot;) { &amp;error(&quot;メールアドレスを入力してください&quot;) }
		if ($Fm{'mail'} =~ /[^\w-\@\.]/ || $Fm{'mail'} !~ /.+\@.+\..+/) { &amp;error('メールアドレスが認識出来ませんでした。'); }
		foreach (0 .. $#maillist) {
			($mid,$mailadd) = split('&lt;&gt;',$maillist[$_]);
			if ($mailadd eq $Fm{'mail'}) {
				&amp;error(&quot;同一のメルアドが既に存在しています&quot;);
			}
		}
		$ps = crypt(substr($Fm{'mail'},0,8),substr(int(rand(time)),-2));
		push(@maillist,join('&lt;&gt;',$id,$Fm{'mail'},&quot;\n&quot;));
		&amp;writedat(&quot;$maillistdat&quot;,@maillist);
		chmod(0666,&quot;$maillistdat&quot;);
		$mailmsg = &lt;&lt;END_OF_MAILMSG;

Script of SAGA : Welcome to our world!
 あなたのパスワードは [ $ps ] です。
 ゲームを開始するには、[ $starturl ] から始めて下さい。
END_OF_MAILMSG

		&amp;sion_sendmail(&quot;$mailmsg&quot;,&quot;$Fm{'mail'}&quot;);
		push (@msg,'登録したアドレスにパスワードを送信致しました。');
		push (@msg,'受信したパスワードを使用して再開して下さい。');
		&amp;userout; &amp;main_form; return;
	}
}

#-END of ADD- SION0025v1.00-5-9/9

$Fm{'ps'} = $Fm{'pass'};

</TEXTAREA>

Parts7

<BR>
<B><FONT color="#0000FF">ufs2.cgi # ---------- FILE PATH Line:32</FONT></B> <BR>
<B>$bitdat = './bit.dat'; # bit.datのパス 666(606) </b><Br>
<TEXTAREA name="textarea9" cols="100" rows="5" wrap="OFF">
$bitdat = './bit.dat'; # bit.datのパス 666(606)
#-ADD-
$maillistdat = 'maillist.cgi'; # maillist.dat のパス 666(606)
$sionmailcgi = 'sionmail.cgi'; # sionmail.cgi のパス 644(604)
#-END of ADD- SION0025v1.00-2-1/3
</TEXTAREA><BR>
<B><FONT color="#FF0000">※ 改造ポイント2 sos2.cgi に合わせてください。</FONT></B> <br><BR><BR>
<B><FONT color="#0000FF">ufs2.cgi # Sub Recover Player # Line:766</FONT></B> <BR>
<b>&admin; </b><br>
<TEXTAREA name="textarea8" cols="100" rows="4" wrap="OFF">
#-ADD-

if (-e $maillistdat) {
	require $sionmailcgi;
	@maillist = &amp;opendat(&quot;$maillistdat&quot;);
	foreach (0 .. $#maillist) {
		($del,$mid,$mailadd) = split('&lt;&gt;',$maillist[$_],3);
		if ($del eq 'del' &amp;&amp; $mid eq $Fm{'bid'}) {
			$maillist[$_] = &quot;$id&lt;&gt;$mailadd&quot;;
			$exist = 1; last;
		}
	}
	if ($exist) { &amp;writedat(&quot;$maillistdat&quot;,@maillist); }
}

#-END of ADD- SION0025v1.00-6-2/3

&amp;admin;

</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">ufs2.cgi # Sub Delete # Line:776</FONT></B> <BR>
<b>&admin; </b><br>
<TEXTAREA name="textarea8" cols="100" rows="5" wrap="OFF">
#-ADD-

if (-e $maillistdat) {
	require $sionmailcgi;
	@maillist = &amp;opendat(&quot;$maillistdat&quot;);
	foreach (0 .. $#maillist) {
		($mid,$mailadd) = split('&lt;&gt;',$maillist[$_],2);
		if ($mid eq $Fm{'id'}) {
			$maillist[$_] = &quot;del&lt;&gt;$mid&lt;&gt;$mailadd&quot;;
			$exist = 1; last;
		}
	}
	if ($exist) { &amp;writedat(&quot;$maillistdat&quot;,@maillist); }
}

#-END of ADD- SION0025v1.00-6-3/3

&amp;admin;

</TEXTAREA>

Parts8

<BR>
<B><FONT color="#0000FF"><A href="download/sionmail_cgi.txt">sionmail.cgi</A> downloadしてお使い下さい。</FONT></B><BR>
<B>1行目に、利用者のメールアドレスを設定して下さい(必須)。<BR>
2行目に、SOSを利用する為のURL(http://〜)を設定して下さい。(必須)<BR>
3行目に、sendmail のパスを設定して下さい。(サーバーの説明を調べてください)</B><BR>
ダウンロードしたファイルは、<B><FONT color="#FF0000">適当な名前をつけてアップロード</FONT></B>します。 <BR>
本体から require で読み出して動作させる為、<B><FONT color="#FF00FF">パーミッションは(644|604)</FONT></B>になります。<BR>

Parts9

<BR>
<B><FONT color="#0000FF">ini/perl.cgi # ------------ PERL PATH Line:25</FONT></B><BR>
<B>$usepl = './perl/use.cgi'; # use.plのパス 644 </b><Br>
<TEXTAREA name="textarea11" cols="100" rows="5" wrap="OFF">
$usepl = './perl/use.cgi'; # use.plのパス 644
#-ADD-
$sionmailcgi = 'perl/sionmail.cgi'; # sionmail.cgi のパス 644(604)
#-END of ADD- SION0025v1.00-2-1/10
</TEXTAREA><BR>
<B><FONT color="#FF0000">※ sionmail,cgi のファイル名は改造ポイント1で設定したファイル名です。</FONT></B> <BR><BR><BR>
<B><FONT color="#0000FF">ini/filepath.cgi # ---------- SOS FILE PATH Line:13</FONT></B><BR>
<B>$sosikidat = './dat/sosiki.cgi'; # sosiki.datのパス 666(606) </b><Br>
<TEXTAREA name="textarea10" cols="100" rows="5" wrap="OFF">
$sosikidat = './dat/sosiki.cgi'; # sosiki.datのパス 666(606)
#-ADD-
$maillistdat = 'dat/maillist.cgi'; # maillist.dat のパス 666(606)
#-END of ADD- SION0025v1.00-2-2/10
</TEXTAREA><BR>
<B><FONT color="#FF0000">※ 必ず maillist,cgi のファイル名を任意のファイル名に変更する事。</FONT></B>

Parts10

<BR>
<B><FONT color="#0000FF">login.cgi # Sub New Game # Line:36-37</FONT></B><BR>
<b>print qq|&lt;tr>&lt;td>パスワード&lt;/td>&lt;td>&lt;input type=password name=pass>&lt;/td>&lt;/tr>\n|;<BR>
print qq|&lt;tr>&lt;td>確認のためもう一度&lt;/td>&lt;td>&lt;input type=password name=pass2>&lt;/td>&lt;/tr>\n|; </b><br>
<TEXTAREA name="textarea10" cols="100" rows="5" wrap="OFF">
#-EDIT- print qq|&lt;tr&gt;&lt;td&gt;パスワード&lt;/td&gt;&lt;td&gt;&lt;input type=password name=pass&gt;&lt;/td&gt;&lt;/tr&gt;\n|;
# print qq|&lt;tr&gt;&lt;td&gt;確認のためもう一度&lt;/td&gt;&lt;td&gt;&lt;input type=password name=pass2&gt;&lt;/td&gt;&lt;/tr&gt;\n|;

print qq|&lt;tr&gt;&lt;td&gt;メールアドレス&lt;/td&gt;&lt;td&gt;&lt;input type=password name=mail&gt;&lt;/td&gt;&lt;/tr&gt;\n|;
print qq|&lt;tr&gt;&lt;td&gt;確認のためもう一度&lt;/td&gt;&lt;td&gt;&lt;input type=password name=mail2&gt;&lt;/td&gt;&lt;/tr&gt;\n|;
push (@editor,&quot;メルアド登録制度 Ver 1.00 &amp;lt;A href='http://www.salion2.halfmoon.jp/soswiki/wiki.cgi' target='_blank'&amp;gt;by SION & SOSWiki&amp;lt;/A&amp;gt;&quot;);

#-END of EDIT- SION0025v1.00-3-3/10
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">perl/option.cgi # Sub Make New # Line:120-122</FONT></B> <BR>
<b>if ($Fm{'pass'} eq "") { &error("パスワードを入力してください") }<BR>
if ($Fm{'pass'} ne $Fm{'pass2'}) { &error("2つのパスワードが一致しません") }<BR>
if ($def_pa && $Fm{'job'} eq $def_pb && $Fm{'pass'} !~ /$def_pp/) { </b><br>
<TEXTAREA name="textarea10" cols="100" rows="5" wrap="OFF">
#-EDIT- if ($Fm{'pass'} eq &quot;&quot;) { &amp;error(&quot;パスワードを入力してください&quot;) }
# if ($Fm{'pass'} ne $Fm{'pass2'}) { &amp;error(&quot;2つのパスワードが一致しません&quot;) }
# if ($def_pa &amp;&amp; $Fm{'job'} eq $def_pb &amp;&amp; $Fm{'pass'} !~ /$def_pp/) {

push (@editor,&quot;メルアド登録制度 Ver 1.00 &amp;lt;A href='http://www.salion2.halfmoon.jp/soswiki/wiki.cgi' target='_blank'&amp;gt;by SION & SOSWiki&amp;lt;/A&amp;gt;&quot;);
if ($Fm{'mail'} eq &quot;&quot;) { &amp;error(&quot;メールアドレスを入力してください&quot;) }
if ($Fm{'mail'} ne $Fm{'mail2'}) { &amp;error(&quot;2つのメールアドレスが一致しません&quot;)
}
if ($Fm{'job'} ne $def_pb &amp;&amp; ($Fm{'mail'} =~ /[^\w-\@\.]/ || $Fm{'mail'} !~ /.+\@.+\..+/)) { &amp;error('メールアドレスとして認識出来ませんでした。'); }
if ($def_pa &amp;&amp; $Fm{'job'} eq $def_pb &amp;&amp; $Fm{'mail'} !~ /$def_pp/) {

#-END of EDIT- SION0025v1.00-3-4/10
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">perl/option.cgi # Sub Make New # Line:131</FONT></B> <BR>
<b>$Fm{'ps'} = $Fm{'pass'}; </b><br>
<TEXTAREA name="textarea10" cols="100" rows="5" wrap="OFF">
#-ADD-

if ($Fm{'job'} ne $def_pb) {
	$Fm{'pass'} = crypt(substr($Fm{'mail'},0,8),substr(int(rand(time)),-2));
	require $sionmailcgi;
	if (-e $maillistdat) {
		@maillist = &amp;opendat(&quot;$maillistdat&quot;);
	}
	foreach (0 .. $#maillist) {
		($mid,$mailadd) = split('&lt;&gt;',$maillist[$_]);
		if ($mailadd eq $Fm{'mail'}) {
			&amp;error(&quot;同一のメルアドが既に存在しています&quot;);
		}
	}
}

#-END of ADD- SION0025v1.00-3-5/10

$Fm{'ps'} = $Fm{'pass'};

</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">perl/option.cgi # Sub Make New # Line:144</FONT></B> <BR>
<b>$Fm{'id'} = $id; &cookie_set; require $formpl; &play_form; </b><Br>
<TEXTAREA name="textarea10" cols="100" rows="5" wrap="OFF">
#-EDIT- $Fm{'id'} = $id; &cookie_set; require $formpl; &play_form;

if ($Fm{'job'} ne $def_pb) {
	push(@maillist,join('&lt;&gt;',$id,$Fm{'mail'},&quot;\n&quot;));
	&amp;writedat(&quot;$maillistdat&quot;,@maillist);
	chmod(0666,&quot;$maillistdat&quot;);
	$mailmsg = &lt;&lt;END_OF_MAILMSG;

Script of SAGA : Welcome to our world!
 あなたのパスワードは [ $Fm{'pass'} ] です。
 ゲームを開始するには、[ $starturl ] から始めて下さい。
END_OF_MAILMSG

	&amp;sion_sendmail(&quot;$mailmsg&quot;,&quot;$Fm{'mail'}&quot;);
	push (@msg,'登録したアドレスにパスワードを送信致しました。');
	push (@msg,'受信したパスワードを使用してゲームをして下さい。');
	&amp;main_form;
} else {
	$Fm{'id'} = $id; &cookie_set; require $formpl; &play_form;
}

#-END of EDIT- SION0025v1.00-3-6/10
</TEXTAREA>

Parts11

<BR>
<B><FONT color="#0000FF">perl/motion.cgi # Sub Delete After # Line:143</FONT></B> <BR>
<b>unlink("$usrdir$id\.dat"); </b><br>
<TEXTAREA name="textarea10" cols="100" rows="5" wrap="OFF">

	unlink(&quot;$usrdir$id\.dat&quot;);

#-ADD-

	if (-e $maillistdat) {
		require $sionmailcgi;
		@maillist = &amp;opendat(&quot;$maillistdat&quot;);
		foreach (0 .. $#maillist) {
			($mid,$mailadd) = split('&lt;&gt;',$maillist[$_],2);
			if ($mid eq $Fm{'id'}) {
				$maillist[$_] = &quot;del&lt;&gt;$mid&lt;&gt;$mailadd&quot;;
				$exist = 1; last;
			}
		}
		if ($exist) { &amp;writedat(&quot;$maillistdat&quot;,@maillist); }
	}

#-END of ADD- SION0025v1.00-4-7/10
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">perl/any.cgi # Sub Find to Delete # Line:93</FONT></B> <BR>
<b>if ($now > $tm && $ps ne $admpas) { unlink("$usrdir$id\.dat") } </b><br>
<TEXTAREA name="textarea10" cols="100" rows="5" wrap="OFF">

if ($now &gt; $tm &amp;&amp; $ps ne $admpas) { unlink(&quot;$usrdir$id\.dat&quot;) }

#-ADD-

if (-e $maillistdat) {
	require $sionmailcgi;
	@maillist = &amp;opendat(&quot;$maillistdat&quot;);
	foreach (0 .. $#maillist) {
		($mid,$mailadd) = split('&lt;&gt;',$maillist[$_],2);
		if ($mid eq $id) {
			$maillist[$_] = &quot;del&lt;&gt;$mid&lt;&gt;$mailadd&quot;;
			$exist = 1; last;
		}
	}
	if ($exist) { &amp;writedat(&quot;$maillistdat&quot;,@maillist); }
}

#-END of ADD- SION0025v1.00-4-8/10
</TEXTAREA>

Parts12

<BR>
<B><FONT color="#0000FF">login.cgi # Sub Continue Game # Line:59</FONT></B> <BR>
<b>print qq|&lt;tr>&lt;td>4桁のID&lt;/td>&lt;td>&lt;input type=password name=id value="$c_id">&lt;/td>&lt;/tr>\n|; </b><br>
<TEXTAREA name="textarea10" cols="100" rows="4" wrap="OFF">

print qq|&lt;tr&gt;&lt;td&gt;4桁のID&lt;/td&gt;&lt;td&gt;&lt;input type=password name=id value=&quot;$c_id&quot;&gt;&lt;/td&gt;&lt;/tr&gt;\n|;

#-ADD-

print qq|&lt;tr&gt;&lt;td&gt;メルアド&lt;BR&gt;(未登録の場合のみ)&lt;/td&gt;&lt;td&gt;&lt;input type=password name=mail value=&quot;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;\n|;
push (@editor,&quot;メルアド登録制度 Ver 1.00 &amp;lt;A href='http://www.salion2.halfmoon.jp/soswiki/wiki.cgi' target='_blank'&amp;gt;by SION & SOSWiki&amp;lt;/A&amp;gt;&quot;);

#-END of ADD- SION0025v1.00-5-9/10
</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">perl/option.cgi # Sub Make Continue # Line:154</FONT></B> <BR>
<b>$Fm{'ps'} = $Fm{'pass'}; </b><br>
<TEXTAREA name="textarea10" cols="100" rows="5" wrap="OFF">
#-ADD-

if ($jb ne $def_pb &amp;&amp; $Fm{'pass'} ne $admpas) {
	push (@editor,&quot;メルアド登録制度 Ver 1.00 &amp;lt;A href='http://www.salion2.halfmoon.jp/soswiki/wiki.cgi' target='_blank'&amp;gt;by SION & SOSWiki&amp;lt;/A&amp;gt;&quot;);
	require $sionmailcgi;
	if (-e $maillistdat) {
		@maillist = &amp;opendat(&quot;$maillistdat&quot;);
	}
	foreach (0 .. $#maillist) {
		($mid,$mailadd) = split('&lt;&gt;',$maillist[$_]);
		if ($mid eq $id) {
			$exist = 1; last;
		}
	}
	if (!$exist) {
		if ($Fm{'mail'} eq &quot;&quot;) { &amp;error(&quot;メールアドレスを入力してください&quot;) }
		if ($Fm{'mail'} =~ /[^\w-\@\.]/ || $Fm{'mail'} !~ /.+\@.+\..+/) { &amp;error('メールアドレスが認識出来ませんでした。'); }
		foreach (0 .. $#maillist) {
			($mid,$mailadd) = split('&lt;&gt;',$maillist[$_]);
			if ($mailadd eq $Fm{'mail'}) {
				&amp;error(&quot;同一のメルアドが既に存在しています&quot;);
			}
		}
		$ps = crypt(substr($Fm{'mail'},0,8),substr(int(rand(time)),-2));
		push(@maillist,join('&lt;&gt;',$id,$Fm{'mail'},&quot;\n&quot;));
		&amp;writedat(&quot;$maillistdat&quot;,@maillist);
		chmod(0666,&quot;$maillistdat&quot;);
		$mailmsg = &lt;&lt;END_OF_MAILMSG;

Script of SAGA : Welcome to our world!
 あなたのパスワードは [ $ps ] です。
 ゲームを開始するには、[ $starturl ] から始めて下さい。
END_OF_MAILMSG

		&amp;sion_sendmail(&quot;$mailmsg&quot;,&quot;$Fm{'mail'}&quot;);
		push (@msg,'登録したアドレスにパスワードを送信致しました。');
		push (@msg,'受信したパスワードを使用して再開して下さい。');
		&amp;userout; &amp;main_form; return;
	}
}

#-END of ADD- SION0025v1.00-5-10/10

$Fm{'ps'} = $Fm{'pass'};

</TEXTAREA>

Parts13

<BR>
<B><FONT color="#0000FF">ufs/other.cgi # Sub Recover Player # Line:90</FONT></B><BR>
<b>&admin; </b><br>
<TEXTAREA name="textarea10" cols="100" rows="4" wrap="OFF">
#-ADD-

if (-e $maillistdat) {
	require $sionmailcgi;
	@maillist = &amp;opendat(&quot;$maillistdat&quot;);
	foreach (0 .. $#maillist) {
		($del,$mid,$mailadd) = split('&lt;&gt;',$maillist[$_],3);
		if ($del eq 'del' &amp;&amp; $mid eq $Fm{'bid'}) {
			$maillist[$_] = &quot;$id&lt;&gt;$mailadd&quot;;
			$exist = 1; last;
		}
	}
	if ($exist) { &amp;writedat(&quot;$maillistdat&quot;,@maillist); }
}

#-END of ADD- SION0025v1.00-6-1/2

&amp;admin;

</TEXTAREA><BR><BR><BR>
<B><FONT color="#0000FF">ufs/other.cgi # Sub Delete # Line:102</FONT></B><BR>
<b>&admin; </b><Br>
<TEXTAREA name="textarea10" cols="100" rows="5" wrap="OFF">
#-ADD-

if (-e $maillistdat) {
	require $sionmailcgi;
	@maillist = &amp;opendat(&quot;$maillistdat&quot;);
	foreach (0 .. $#maillist) {
		($mid,$mailadd) = split('&lt;&gt;',$maillist[$_],2);
		if ($mid eq $Fm{'id'}) {
			$maillist[$_] = &quot;del&lt;&gt;$mid&lt;&gt;$mailadd&quot;;
			$exist = 1; last;
		}
	}
	if ($exist) { &amp;writedat(&quot;$maillistdat&quot;,@maillist); }
}

#-END of ADD- SION0025v1.00-6-2/2

&amp;admin;

</TEXTAREA>