(現在 過去ログ6 を表示中)

HOME HELP 新着記事 トピック表示 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■14768 / inTopicNo.1)  I-BOARD2001の書き込み制限で
  
□投稿者/ ひらしき -(2003/09/22(Mon) 08:11:40)
    I-BOARD2001を利用させて頂いてます。たいへん素敵なCGIを有り難うございます。
    書き込み制限をした状態
    $s_ret= 1;# 記事を見る際の制限(0=しない 1=書くとき 2=書く&読むとき)
    で利用しているのですが、これでpassを入れて書き込んだ後、
    cookieを削除せずに「記事検索」「過去ログ」に入ろうとすると
    (isrch.cgi を呼び出すと)isrch.cgi?no=0&P= の後に"R"ではなく書き込み
    パスワードが入ってしまい、そのため、Internal Server Errorとなってしまいます。
    isrch.cgi?no=0&P= の後をRに直してリロードすると正常に入れます。
    どのように対処したら、「記事検索」「過去ログ」がそのまま利用できるように
    なりますか?ご教示下さいm(_ _)m
引用返信 [メール受信/OFF] 削除キー/
■14777 / inTopicNo.2)  Re[1]: I-BOARD2001の書き込み制限で
□投稿者/ りゅういち -(2003/09/22(Mon) 21:56:48)
http://www.cj-c.com/
    No14768に返信(ひらしきさんの記事)
    > 書き込み制限をした状態
    > で利用しているのですが、これでpassを入れて書き込んだ後、
    > cookieを削除せずに「記事検索」「過去ログ」に入ろうとすると
    > (isrch.cgi を呼び出すと)isrch.cgi?no=0&P= の後に"R"ではなく書き込み
    > パスワードが入ってしまい、そのため、Internal Server Errorとなってしまいます。
    > isrch.cgi?no=0&P= の後をRに直してリロードすると正常に入れます。

    原因はcookieを呼び出しているのに、そのサブルーチンがないからのようです。
    isrch.cgi の最後に
    #---------------------------------------------------------------------------------------------------------------------
    # [cookie発行]
    # -> cookie の発行処理を行ないます(set_)
    sub set_ {
    if($_[0] eq "I"){$kday=1826;}else{$kday=30;}
    ($secg,$ming,$hourg,$mdayg,$mong,$yearg,$wdayg,$ydayg,$isdstg) = gmtime(time + 30*24*60*60);
    $yearg += 1900;
    if($secg < 10){$secg ="0$secg"; }
    if($ming < 10){$ming ="0$ming"; }
    if($hourg < 10){$hourg="0$hourg";}
    if($mdayg < 10){$mdayg="0$mdayg";}
    $month = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec')[$mong];
    $youbi = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday')[$wdayg];
    $date_gmt = "$youbi, $mdayg\-$month\-$yearg $hourg:$ming:$secg GMT";
    if($_[0] eq "P"){print"Set-Cookie: $s_pas=$s_pas; expires=$date_gmt\n";}
    }
    #---------------------------------------------------------------------------------------------------------------------
    # [cookie取得]
    # -> cookie の取得処理を行ないます(get_)
    sub get_ {
    $cookies = $ENV{'HTTP_COOKIE'};
    @pairs = split(/;/,$cookies);
    foreach $pair (@pairs) {
    ($NAME, $value) = split(/=/, $pair);
    $NAME=~ s/ //g;
    $DUMMY{$NAME} = $value;
    }
    if($_[0] eq "P"){if($DUMMY{"$s_pas"}){$FORM{"P"}=$DUMMY{"$s_pas"};}}
    }
    と入れてみてください。配布ファイルの方も修正しておきます。
引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Pass/

HOME HELP 新着記事 トピック表示 検索 過去ログ

- Child Tree -