CGI-BBS > 電子掲示板 > 簡易BBS > もう少しだとおもうのですが・・・簡易BBS


カレッヂ
カレッヂ


質問者 迷い人  投稿日 11/30(金) 03:22:04
最近CGIに興味を持ち無い脳みそをフルに使って必死に作成してます。
さて、infoseekに領域を借りて掲示板を作ろうと思ってるのですが、
なかなか上手くいきません。ここまでは表示出来るのですが・・・
http://isweb39.infoseek.co.jp/computer/syamashi/cgi-bin/bbs.cgi?form=1
この後、最初の書き込みをすると、エラーになってしまいます。
プログラムをDLしてパーミッションを設定してFTPでアップロードしただけです。
他に何か設定するところがあるのでしょうか?
また、この掲示板はsendmail機能を使いますが、infoseekでは使用禁止です。
sendmailを使えるサイトに引越ししようかと思うのですが、どこかありますか?
回答者 呑兵衛@大阪  [削除]  投稿日 11/30(金) 20:09:26
2つ URI の指定を間違えておられます。

一つはこのボードに指定されている
http://isweb39.infoseek.co.jp/computer/syamashi/cgi-bin/bbs.cgi?form=1
最後の =1 があると 403 forbbiden になります。

二つ目は bbs.cgi の action の指定が違います。
<form method=POST action="http://isweb39.infoseek.co.jp/computer/syamashi/cgi-bin/index.htmlbbs.cgi">
になっていますよ。
質問者 迷い人  [削除]  投稿日 12/1(土) 01:46:15
呑兵衛@大阪様ありがとうございます。
2つ URI の指定を間違えているとのご指摘を頂いたのですが、
最後の =1 がある 403 forbbiden を直す方法、
bbs.cgi の action の指定を直す方法の2つともどこで直すのか
良く分かりません。後述の方はbbs.cgiファイルのソースを直すのでしょうか?
<form method=POST action="http://isweb39.infoseek.co.jp/computer/syamashi/cgi-bin/index.htmlbbs.cgi">の正しい指定も・・・
ファイルの内容は
cgi-bin -  data  
        -  images - copyright.gif
        -  icon              
        -   bbs.cgi
        -   cgi-lib217.pl
        -   jcode.pl
        -   icon.cgi
        -   index.html
        -   READEME.txt
です。よろしくお願いします
回答者 呑兵衛@大阪  [削除]  投稿日 12/1(土) 22:21:31
403 forbbiden になる理由は isweb**.infoseek.co.jp (旧freeweb.ne.jp) のサーバーが
CGIディレクトリへの直リンクを拒否する設定になっているためでした。
この件は無視してください。

# ●このプログラム'bbs.cgi'を設置した場所を示す仮想パス(URL) ... http://この部分を設定する/bbs.cgi
$cgi_base = "http://CGI部分を設置した場所/";
という個所があります。
ここを
$cgi_base = "http://isweb39.infoseek.co.jp/computer/syamashi/cgi-bin/";
とすると解決するはずです。
質問者 迷い人  [削除]  投稿日 12/2(日) 07:31:00
呑兵衛@大阪様 度重なるご回答ありがとうございます。
さて教えていただいた通りパスを指定したのですが、
http://isweb39.infoseek.co.jp/computer/syamashi/cgi-bin/bbs.cgi?form=1
に書き込んでみると、
http://isweb39.infoseek.co.jp/computer/syamashi/cgi-bin/bbs.cgi
に飛んで、「ページを表示できません」のエラーメッセージが出てしまいます。
本来の正しいアドレスは
http://isweb39.infoseek.co.jp/computer/syamashi/cgi-bin/
ですよね?なぜこのアドレスにリンクしてくれないのでしょうか?
前回、伝授していただいた箇所
$cgi_base = "http://isweb39.infoseek.co.jp/computer/syamashi/cgi-bin/";
は変えました。気になったので上の行の
# ●このプログラム'bbs.cgi'を設置した場所を示す仮想パス(URL) ... http://この部分を設定する/bbs.cgi
これを↓のように変えたらtxtファイルでしか保存出来なくなってしまいました。
# ●このプログラム'bbs.cgi'を設置した場所を示す仮想パス(URL) ... http://この部分を設定する/
分かりづらい表記で申し訳ございません。ご回答よろしくお願いします。
回答者 呑兵衛@大阪  [削除]  投稿日 12/3(月) 01:07:14
$cgi_base = "http://CGI部分を設置した場所/";
は先述した通り
$cgi_base = "http://isweb39.infoseek.co.jp/computer/syamashi/cgi-bin/";
です。
その後
$reload = $cgi_base . "bbs.cgi";
になり、スクリプトの働き方によって URIが変化するようになっています。
なので「CGI部分を設置した場所」はディレクトリ名で終わらなければなりません。
ちなみに bbs.cgi を直接呼び出すのではなく、
index.html に
http://isweb39.infoseek.co.jp/computer/syamashi/cgi-bin/bbs.cgi?form=1
を記述し、
http://isweb39.infoseek.co.jp/computer/syamashi/index.html
から呼び出すようにしてください。isweb はリンクなどで直接 cgiファイルを
呼び出すと 403 forbbidennを返します。
また画像が出ないのは、画像ファイルの設置場所が違うか、転送モードを
binary ではなく ascii にしているか、icon ディレクトリに入れていないか、
のどれかが考えられます。

cgiは根気と勉強が必要です。がんばってください。
質問者 迷い人  [削除]  投稿日 12/3(月) 03:54:26
呑兵衛@大阪様。物分かりの悪い私に親身になってご回答いただいていることに感謝します。
さて今日も悪戦苦闘しておりますが、こんな感じになりました。
http://isweb39.infoseek.co.jp/computer/syamashi/cgi-bin/bbs.cgi?form=1
ここで、投稿&削除の操作をすると、
http://isweb39.infoseek.co.jp/computer/syamashi/
を表示するのですが、これは正しいのでしょうか?前述していただいたindex.html から
呼び出すというのが、これなのでしょうか?(違うような・・・)
cgi-bin     -  data  
   l        -  images - copyright.gif
index.htm   -  icon              
            -   bbs.cgi
            -   cgi-lib217.pl
            -   jcode.pl
            -   icon.cgi
            -   index.html
            -   READEME.txt
本など買って勉強しようと思ってます。
回答者 呑兵衛@大阪  [削除]  投稿日 12/3(月) 17:59:38
最初からおさらいします。
http://isweb39.infoseek.co.jp/computer/syamashi/cgi-bin/bbs.cgi?form=1
は、一番最初何も投稿がない時に index.html を 「作る」(正しくは書き換える)
ために呼び出す URI です。その後はこのURIをブラウザに打込んだり、
別のページにリンクさせたりする必要はありません。
一度でも書込み操作ができれば、以降は
http://isweb39.infoseek.co.jp/computer/syamashi/index.html
を呼び出せば掲示板が画面に現れます。

次にディレクトリの設定は
$data_dir = "./data/";
$images_dir = "./images/";
$index_file = "./index.html";
$images_url = "./cgi-bin/images/";
$icon_dir = "./cgi-bin/icon/";
$base = "http://isweb39.infoseek.co.jp/computer/syamashi/index.html";
$cgi_base = "http://isweb39.infoseek.co.jp/computer/syamashi/cgi-bin/";

のように設定します。
最初に設置する index.html は空っぽでもかまいませんが、パーミッションだけ
666 にすることを忘れないようにしてください。
質問者 迷い人  [削除]  投稿日 12/5(水) 04:28:08
呑兵衛@大阪様ありがとうございます。
そろそろ分かってくれ!という叫びが聞こえてきそうです。
一応、「投稿」、「削除」は出来るようになりました。
こんなんでどうでしょうか?
http://isweb39.infoseek.co.jp/computer/syamashi/cgi-bin/index.html
画像がまだ出せませんが、前述のご指摘どおり作業してみます。

回答者 呑兵衛@大阪  [削除]  投稿日 12/7(金) 22:30:22
あのですね、isweb**.infoseek.co.jp は cgiファイルへの直リンクを張っても
クリックしたら 403 forbidden になるので、
掲示板に投稿された後表示される index.html は
http://isweb39.infoseek.co.jp/computer/syamashi/index.html
のパスでないとだめですよ。

それから index.html を使っているなら bbs.html としてでも xyz.htm でもいいです。
そのファイルに bbs.cgi が「データの1ページ目の画面」を書込み、表示してくれます。
つまり、bbs.cgi が生成したHTMLを呼び出すファイルが bbs.html なり xyz.htm です。

返信(回答)する


Web裏技