WEB相談室

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

タイトル:掲示板で1回だけの書き込み制限

syaa[MAIL][URL][WriteDate : Sun Oct 1 17:12:39 2000]

お久しぶりです。
いつもお世話になっているsyaaといいます。

今、KENTさんのCGIスクリプトを改造して
1回しか書き込みをできないよう改造しようと思ったのですが
まだまだPeriが理解できなくて分かりませんでした。

この場合ブラウザにクッキーを
持たせてやればいいんでしょうか・・・?

改造したいCGIスクリプトのソース
http://members.cool.ne.jp/~syaa/bbs/help.txt

どなたか教えてください。お願いします。


ちゃいぱ[MAIL][URL][WriteDate :Mon Oct 2 10:30:49 2000]

sub get_cookieの
            :
            :
$c_name  = $COOKIE{'name'};
        
        if($c_name ne ""){ &error("1回しか書き込みできません!!"); }  # この行を追加して下さい!

$c_email = $COOKIE{'email'};
           :


syaa[MAIL][URL][WriteDate :Mon Oct 2 17:47:47 2000]

ちゃいぱぱさん。返答ありがとうございます。

以下に設置しているのですが
http://members.cool.ne.jp/~syaa/bbs/help/help.cgi

私はすでにクッキーをもらっているので
入室することができませんでした。

入室はできて、書き込みだけできないようにすることは可能ですか?
わがまま言ってすみませんm(_ _)m


わごな[MAIL][URL][WriteDate :Tue Oct 3 00:23:25 2000]

こんな方法はいかがですか?

sub html の中を変更

print <<"EOM";
<hr width="90%">
[<a href="$home" target="_top">BBSに戻る</a>]
[<a href="$script?mode=howto">使い方</a>]
[<a href="$script?mode=find">ワード検索</a>]
[<a href="$script?mode=admin">管理用</a>]
<hr width="90%">
</center>
EOM                           ###追加
        if($c_name eq "") {    ###追加
          print <<"EOM2";
<blockquote>
<form action="$script" method="$method">
<input type=hidden name=mode value="regist">


</form>
</blockquote>
<hr>
EOM2         ###変更
} else { print "投稿はお一人様一回限りです<BR>\n";} ##追加
# ページ区切り処理
$start = $page + 1;



エラーにするのではなく
入力フォームを出さない方式です


わごな[MAIL][URL][WriteDate :Tue Oct 3 00:25:00 2000]

漏れてました
          print <<"EOM2"; 
の行も追加です

syaa[MAIL][URL][WriteDate :Tue Oct 3 11:56:51 2000]

わごなさん。教えてくれてありがとうございます。

書いてあるとうりに変更したのですが、
500 サーバーエラーがでてしまいました。

設置してあるCGI
http://members.cool.ne.jp/~syaa/bbs/help/help.cgi

変更したソース
http://members.cool.ne.jp/~syaa/bbs/help.txt


ちゃいぱ[MAIL][URL][WriteDate :Tue Oct 3 13:08:23 2000]

ポイントは2つ!

1、修正した所に、漢字のスペースが結構入っています。これでエラーになっています。
    
2、ヒアドキュメントの終端はコメント不可です。取って下さい。これでエラーになっています。

syaaさんへ
ソースを添付でメールします。

わなごさんへ
>入力フォームを出さない方式です 
ナイスアイデア!


「EOM2         ###変更」

など、ちなみに、終端の右は改行のみ有効です。

ソースをメールします。




ちゃいぱ[MAIL][URL][WriteDate :Tue Oct 3 13:17:20 2000]


>syaaさんへ 
>ソースを添付でメールします。

エラーメールで送れません! 

syaa@viola.on.ne.jp

メールアドレスが間違っているみたい?


syaa[MAIL][URL][WriteDate :Tue Oct 3 14:41:47 2000]

すいませんcが抜けてました。

syaa@viola.ocn.ne.jp

です。

syaa[MAIL][URL][WriteDate :Tue Oct 3 19:43:11 2000]

ちゃいぱぱさん、ソースありがとうございます。
さっそく設置し、問題なく動作しています。

それで気がついたのですが、
第2回、第3回と変わるごとに書き込みを可能にしたいのですが
その場合はどうしたらいいんでしょうか?

また渡したクッキーをある一定の期間が過ぎると
自動消去されるように、設定はできるのでしょうか?

わがままな質問ばかりして本当にすみません。
もしよろしければ教えてください。


ちゃいぱ[MAIL][URL][WriteDate :Wed Oct 4 08:47:04 2000]


>第2回、第3回と変わるごとに書き込みを可能にしたいのですが
意味がよくわかりません!
 
>また渡したクッキーをある一定の期間が過ぎると自動消去されるように、設定はできるのでしょうか? 
このKENTさんの掲示板のクッキーは60日まで有効です。



syaa[MAIL][URL][WriteDate :Wed Oct 4 11:45:26 2000]


>意味がよくわかりません! 

すいません。説明不足でした。

掲示板の書き込みがいっぱいになったら
また全ての人を、書き込み可能にしたいんです。

これについてなにか良い方法があれば教えてください。
お願いします。


ちゃいぱ[MAIL][URL][WriteDate :Wed Oct 4 13:12:43 2000]

これは、難しいと思います。
まず、書き込みがいっぱいをどう判断するか、そして、それをクッキー毎に処理させなくてはいけないし...。

ここは簡単に、クッキーの60日を1〜2日にすれば、 いいのでは?


syaa[MAIL][URL][WriteDate :Thu Oct 5 11:23:12 2000]

分かりました。その方法でやることにします。

ソースで60を検索したところ、いくつか対象が出てきたのですが
どれを変えればいいのでしょうか?

お手を煩わせてすみませんです。


ちゃいぱ[MAIL][URL][WriteDate :Thu Oct 5 12:06:20 2000]

730行目ぐらいの

($secg,$ming,$hourg,$mdayg,$mong,$yearg,$wdayg) = gmtime(time + 60*24*60*60);

2日間なら
($secg,$ming,$hourg,$mdayg,$mong,$yearg,$wdayg) = gmtime(time + 2*24*60*60);



syaa[MAIL][URL][WriteDate :Thu Oct 5 15:24:24 2000]

おかげさまで思いどうりのことができました。
ちゃいぱぱさん。最後まで教えていただいて、
本当にありがとうございました!



回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]