-PR-
解決済み

掲示板なぜ消える?

  • 暇なときにでも
  • 質問No.13306
  • 閲覧数56
  • ありがとう数5
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 77% (530/685)

http://haporun.go.to/index.cgi?bbs/index.html
で掲示板を作っています。
初心者の浅い知識で作ったので、機能もほとんどなし。
たまに、以前にあった文が消えてしまうことがあります。
また、文章が長いと切り取られてしまうことがあります。
なぜなのか、わかりません。

ソースファイルは
http://haporun.go.to/temp/bbs.zip
においてあるので、ソースを見れば原因がわかりそうな人は、ぜひ見にきてください。

こういう方法はあまりいいことだとは思いませんが、この欄にソースやファイル構成をずらずら書き並べるのもいやだったので、こうさせてもらいました。

よろしくお願いします。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.4
レベル7

ベストアンサー率 52% (11/21)

require '../lib/cgi-lib.pl';

&ReadParse(*input_data);
$data1=$input_data{'post_name'};

PerlであればPOSTされたデータは上記のような方法で取れると思います。$ENV{'QUERY_STRING'}に入るのはGETメソッドです。
サーバがポストに対応してないときはPOST Method not allowedとかでるはずです。

ファイルロックはしておいたほうが後々のためです。
ログが頻繁に消えちゃうんじゃ掲示板の意味がないですから。参考URLをご覧ください

ご存知かもしれませんが「とほほのWWW入門」
http://wakusei.cplaza.ne.jp/twn/www.htm
はHTMLからPerlまでいろいろな情報がそろいます。
ご一読ください
お礼コメント
haporun

お礼率 77% (530/685)

できました!
POSTに対応していないなんてことは、なかったようです。
長い文章も送れるようになりました。
ファイルのロックにも挑戦してみようと思います。

どうもありがとうございました。
投稿日時 - 0000-00-00 00:00:00
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1

GETで送っているからでしょう。

POSTで送った方がURLなどに表示されませんし、
送信情報の制限も少ないですよ。

文章が切られてしまうのは、そのためだと
思います。

ざっとしか見ていないので、間違っていたら
すいません。
ではでは☆
補足コメント
haporun

お礼率 77% (530/685)

すみません。
そのPOSTを使ったときのデータの取得の仕方がわからなかったので、GETを使ってしまいました。
POSTのときの方法や例文などを紹介していだければと思います。
よろしくお願いします。
投稿日時 - 2000-11-20 09:17:11
  • 回答No.2
レベル7

ベストアンサー率 52% (11/21)

以前あった文が消えてしまうというのはファイルロックがしていないか仕方がまずいのでは?

フリーで出ている掲示板のソースを見てファイルロックを実装することをお勧めします。
補足コメント
haporun

お礼率 77% (530/685)

すみません、"お礼" の&datじゃなくて$datですね。
投稿日時 - 2000-11-22 09:35:20
お礼コメント
haporun

お礼率 77% (530/685)

回答ありがとうございます。
返事が遅くなってすみません。

文が消えてしまうというのは、ファイルの読み方に問題があったようです。
&bbs = <F>;
では1行しか読めないそうですね。
配列を使う方法で解決しました。

ロックの方法はわからないので、今のところやっていません。
やったほうがいいでしょうか。
投稿日時 - 0000-00-00 00:00:00
  • 回答No.3
レベル7

ベストアンサー率 57% (8/14)

method="get" → method="post" にすれば解決するのでは?
取得も何も、ただそれだけ?

あと、データを書き込む際にファイルをロックしないと一気に数人で書き込まれると壊れちゃうよ?
サーバが落ちないようにお気をつけて。
補足コメント
haporun

お礼率 77% (530/685)

そのように変えましたが、引数が送られていないようです。
CGI側での取得方法はそのままでいいのでしょうか。
$ENV{'QUERY_STRING'}には何も入ってきてないようです。
標準入力に入ってくると聞いたのですが、perlでの標準入力からの取得ってどうやるんでしょう。
<>とか<STDIN>とかには何も入ってきませんでした。
しかし、HP上では何も入ってこなかったのですが、UNIX端末上ではちゃんと入ってきました。
もしかしたら、POSTに対応してないサーバーだとか。

ロック?
今はあまりURLひろめてないので心配ないですが、もちろん、そんな高度な技術はわかりません(これがC++だとわからないこともないのですが)。
投稿日時 - 2000-11-22 09:17:36
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ