ラウンジ(兼FAQ掲示板)

Colorful Board v.3.13 をニフティで…
過去ログ NO.1051626448
□ ニャオ♪ [2003年04月26日15時05分]
設置したいのですが、セットアップ画面でパスワード入れて
4つのディレクトリの設定はそのままでセットアップすると
「セットアップ完了」画面が出て、Colorful Board にいけるのですが。
新規投稿モードで、アイコンや、添付ファイルがちゃんと表示しません。

たぶん、設定をフルパスとかで入れないといけないんでしょうけど
どこを書き直せばいいのか、何度やってもうまく行きません・・・
出来れば、みていただきたいのですが・・よろしくです!


http://hpcgi2.nifty.com/k-rita/cb3.cgi
□ NXer [2003年04月27日15時04分]
はじめまして。NXerです。
>アイコンや、添付ファイルがちゃんと表示しません。

その理由は、Niftyの次の制約です。
-------------------------------
1、cgi-binディレクトリにcgiプログラムを置きます。
2、cgi-binディレクトリ下の画像は、ブラウザーから見ることが
できません。つまり、画像はcgi-binには置くことができません。
3、従って、
画像はhomepageディレクトリの下に置きます。
cgiプログラムで表示するページに画像を表示するには
http://homepageで始まるURLつまりフルパスを指定します。
--------------------------------

>どこを書き直せばいいのか

セットアッププログラムで関係する部分については
画面に次の注意が出るかと思います。
------------------------------------------------
ディレクトリ内で画像が使用できない場合等)<br>";
print "※ 変更する場合は正しい相対パスで記述\n";

相対パスをhttp://で始まるフルパスにします。
画面に表示される、多分下のカタカナ漢字の2ヶ所かと思います。
--------------------------------------------------
print "<tr><td>アップロードディレクトリ</td><td><input name=dir2 value='./upload'></td></tr>\n";
print "<tr><td>アイコン画像設置ディレクトリ</td><td><input name=dir3 value='./icon'></td></tr>\n";
--------------------------------------------------------------
当方とはプロバイダは異なりますので、そちらのFAQなどで
CGIプログラム設置条件をお確かめください。
□ ニャオ♪ [2003年04月28日02時47分]
>NXerさん!

ありがとうございました!!
さっそくやってみました!サーバーの方から
設定画面ではうまく行かなかったので
「cb3.cgi」ファイルをダウンロードして修正してやってみました。
画像ファイルを「homepage」ディレクトリの中に入れたらちゃんと
アイコンが表示されました!!!

今度は画像を添付しようとすると「アップロードエラー」になったので
このファイルも「homepage」ディレクトリに入れて投稿してみたら
最初にエラーになってた画像はちゃんと表示されたのに

次を試したりレスで試したりしたんですが、やっぱりアップロードエラーになってしまいました。
まだ、他にも修正しなくてはいけないでしょうか?
□ NXer [2003年04月29日10時25分]
> 他にも修正
について、その理由と具体的変更点です。
> 今度は画像を添付しようとすると「アップロードエラー」になったので
> このファイルも「homepage」ディレクトリに入れて投稿してみた
その結果発生したこと
> 1)最初にエラーになってた画像はちゃんと表示されたのに
> 2)次を試したりレスで、、、やっぱりアップロードエラー
とご報告いただきました。
cgiプログラムを実行すると上のようになるだろう、という流れを
おおよそ知っていただければ、ご自身で修正が可能と信じています。
NXerです。よろしく。

その1-------------------------------矛盾
colorful board(以下cb3.cgi)は、HTML用サーバーとCGI用サーバー
が同一であるという設計です。niftyやbiglobeなどは、異なるサーバー
を使います。従って、すえぽんさん作成のバージョンのcb3.cgiは、
別サーバータイプのプロバイダでは、使用している変数$updirが
a)CGI用とb)HTML用を区別できないため、
表示される(ブラウザで読み取っている)のに、CGIでアップロードできない
しかし、エラーしたはずの画像がcgiできちんとアップロードできていたから
こそ表示された、と見かけの上で矛盾したことが発生していると推測します。

エラー画像が表示できたことから、cb3.cgiを起動してソースを読みました。
-------------------------------関係行のみ引用
'>ニャオ♪
<a href='http://homepage2.nifty.com/k-rita/upload/1051464606.jpg'>
'>てすと<p>
<a href='' onClick="preview('http://homepage2.nifty.com/k-rita/upload/1051464606.jpg'); return false">
<img src='http://homepage2.nifty.com/k-rita/upload/1051464606.jpg'
これは、変更後のHTML用ですから、猫の画像が正しく表示されましたね。

その2----------------------------矛盾識別用変数の作成
同一の変数$updirをa)CGI用とb)HTML用に2つに分解することを
考えてみます。
a)CGIサーバー用 $updir(元のまま)
b)HTMLサーバ用 $gupdir (gはgazouの略号、アルファベット数字なら使用可。)

その3--------------------------------修正
> 「cb3.cgi」ファイルをダウンロードして修正してやってみました。

今回も修正のために、お手数ですがまた、ダウンロードしてください。

↓の変数部分をPerlスクリプトから探し(検索機能が便利)、=つまり代入演算子の
右辺に値(ディレクトリのパス)を代入します。
(行番号付きのエディターなら14行目当り、全体は1018行程度)
-------------------------------------
$updir="./upload";
(または、絶対パス。その4 2)の説明のとおり。)。

$gupdir="http://homepage2.nifty.com/k-rita/upload";
(↑右辺は前回修正済み。左辺にgなど適切な識別記号をを加える)

$icon="http://homepage2.nifty.com/k-rita/icon";
(↑これはソースからすでに前回修正済みずみですね)

その4---------------------------------Perlスクリプトのさらなる部分的修正
1)HTMLサーバ用の$updirをdlしたPerlから検索機能を使い、タグ a herなどが付いている数箇所探し修正します。(行番号付きならば、144行〜159行目付近)
その例
<a her='$updir/$filename 元
<a her='$gupdir/$filename 修正
<img src='$updir/$filename 元
<img src='$gupdir/$filename 修正

2)CGIサーバー用 $updir(元のまま)
当方には試す権利がありません。そちらでお試しいただきます。
a $updir にすえぽんさん指定の相対パス(変更前)・・・多分これで画像がアップでき
 ていたのでは。(でもブラウザは、相対パスでは、たどり着けなかった。)
b $updir にniftyから登録時に連絡があったと思われるいわゆる絶対パス
 a でも bでも機能するはずですが、色色変更してください。
下手な考えです。お時間のある時、お読み頂き、ご理解いただければ幸いです。
□ ニャオ♪ [2003年04月29日23時27分]
>NXerさん

丁寧なご説明ありがとうございます!!
なんだか、どんどん難しくなっているようで(笑)
1度読んだだけでは理解できそうもありません。
ですが、せっかくここまでやったものですから、
頑張ってみようと思います!

こんなに詳しく説明入れてもらって感謝してます。
ありがとうございました!!
一定時間書込が無かったので過去ログに移りました

suepon.com | CGI作成/CGI制作 | JavaScript | ドメイン検索 | バナー自動作成 | Google ダンスツール | 松浦亜弥 | H.P.memo | パソコン | ネイル

Copyright (C) 2002 - 2008 suepon , All rights reserved. Powered by CGI Script Market.