WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:Kent Webさんのe-padのアクセス制限について

0:[投稿] トレーダー [2007/10/26 11:15 ] [環境:Firefox 2.0.0.8 An Httpd, Active Perl]

Kent Webさんの携帯、PC両用掲示板、e-padを会員制にしたいと
思っています。そのため、CGIROOMさんの

http://cgiroom.nu/list/level_up/member/index.htm

member.cgiを利用してアクセス制限を行いたいと考えております。
しかし、携帯はクッキーに対応していないため、携帯からの書き
込みが上手くいきません。

このmember.cgiのクッキー部分を消してしまうには、どのように
変更を施したらよいのか、ご教示願えませんでしょうか?
自分なりに試行錯誤してみたのですが、どうしても上手くいきません。

よろしくお願いいたします。


1:[質問] トレーダー [2007/10/29 11:05 ]

再度、お願いします。CGIROOMさんの、Member.cgiです。これを用いることでe-padにパスワードなしにアクセスすることができなくなります。しかし、DoCoMoがクッキーを受け付けないため、e-pad内の、携帯掲示板用ライブラリ、ptel.plが投稿しようとしても、再度パスワードを尋ねてきます。FirefoxのUser AgentをDoCoMoに偽装した場合、クッキーを受け付けるため、PC用も携帯用も正常に動作します。どの用にすれば、携帯に対してはクッキーを発行しないようにできるのか、ご教示願えないでしょうか?以下が、member.cgiのスクリプトです。

package cgiroommember;

# Copyright (c) CGIROOM.                              http://cgiroom.nu/
#======================================================================#
# [Ver  1.00] パスワード機能
#
# このプログラムによって起きた事にCGIROOMは責任を負いません。
# 利用契約に同意できない方のご利用は、遠慮下さい。


#======================================================================#
# 設定

#◆ パスワード (半角の英字・数字の組み合わせ文字で)

$pass = 'PASSWORD';


#======================================================================#
#

@COOKIE=split(/;/,$ENV{'HTTP_COOKIE'});
foreach (@COOKIE){
    ($n,$v) = split(/=/);
    $n=~ s/ //g;
    $FORM{$n} = $v;
}
unless(&check){
    if($ENV{'REQUEST_METHOD'} eq "POST"){
        read(STDIN,$QUERY,$ENV{'CONTENT_LENGTH'});
    }else{
        $QUERY = $ENV{'QUERY_STRING'};
    }
    @QUERY=split(/&/,$QUERY);
    foreach (@QUERY){
        ($n,$v) = split(/=/);
        $FORM{$n} = $v;
    }
    if(&check){
        print "Set-Cookie: cgiroomember=$FORM{'cgiroomember'};\n";
    }else{
        @filename=split(/\\|\/|\:/,$0);
        $filename=pop(@filename);
        print "Content-type: text/html\n\n";
        print <<HTML;
<HTML>
    <HEAD>
        <TITLE>入室</TITLE>
    </HEAD>
    <BODY bgcolor="#FFFFFF" text="#FF0000">
        <FORM action="$filename" method=POST>
        <TABLE height="100%" width="100%">
            <TR>
                <TD align=center>
                    この項目はパスワードが必要になります。<p>
                    <INPUT type=text size=25 name=cgiroomember>
                    <INPUT type=submit value=OK><br>
                    <font size=2>ブラウザのCookie機能\をONにしてください。<br>
                    退室後は必ずブラウザを閉じてください。</font>
                    <HR width=200>
                    <A href="http://cgiroom.nu">CGIROOM</A>
                </TD>
            </TR>
        </TABLE>
        </FORM>
    </BODY>
</HTML>

HTML
        exit;
    }
}
sub check{
    return 1 if $FORM{'cgiroomember'} eq $pass;
}
1;
__END__
1999/12/18 Ver 1.00
1999/12/30 Ver 1.01


2:[回答] j [2007/10/29 22:35 ]

このプログラムはクッキーを使う事を前提にしています。クッキーなしで動作させるようにするのは完全に一から作り直すのと同じ事と思われます。
クッキーを使わない別の物を探すかアクセス制限機能を持つ掲示板を探すかするしかないですね。


3:[完了] トレーダー [2007/10/30 08:06 ]

jさん、ご回答ありがとうございます。そうですね、確かにクッキーを発行することを前提にしており、手直しは難しいと思っていました。

他のアクセス制限機能を持つ掲示板を探してみます。ご回答ありがとうございました。


4:[質問] 天狗太郎 [2009/11/24 15:32 ][URL]

わからないので、もう少し詳しく教えてください!

回答(必須): 状態:

お名前(必須):

URL:




[戻る]