68user's page 掲示板

Prev< No. 2185〜2190> Next  [最新発言に戻る] [過去ログ一覧]
No. 2185 # shii 2001/10/08 (月) 09:10:35
>>2184 68user
> 追加する全角文字のエンコーディングを EUC-JP にするか、Shift_JIS
> にするかが問題です。
半角カナ「アイウエオ」の場合,後ろにスペースを3つ追加するだけで
上手くいきました。多分,全角文字なら判別対象になるので,
それをある程度の長さで追記すればいいのかなと思いました。そこで,
html側で別に送った全角文字を追加して判別するつもりでした。

ただ,こちらの掲示板では短い半角カナの「シイ」を判別できたので,
jcode.plのせいではないようです(私の方ではシイも化けました)。
cgi-lib217.plを使っているせいかも……?

人様のプログラムの改造から使い始めたPerlですが,
以前に比べればいろいろなことがわかってきました。
上述のことを確かめる意味でも,
自分が理解できる範囲で1から作り直してみることにします。
(jcode.pjは深く考えずに使いますが……(^^;)
それを検証できたらまた報告しますね。

No. 2186 # スナフキン 2001/10/09 (火) 01:43:48
>>2174
>イメージできないんですが,具体的にどんな場合でしょうか。
すみません、よく読んでいませんでした。
CGIで出力するページソースの中の日本語コメントがSJISでEUCに変換
した日本語を同時に出力と言うケースでしたが、shiiさんの場合は
まったく違うようですね。


>>2176 68user
サーバーサイドという事は常駐システムですね。
さすが68userさん(笑)

自分も先日初心者用のCD付き本を買ってきて、JDKをインストールして
みましたが、いきなりサンプルの Hello! が動かないトラブルで、
既にめげています(笑)

ざっと見た感じでは、関数類を覚えれば特に難しく無さそうな感じも
しますが、甘いかな?(^^;
もしよければ、お勧めの初心者向けサイトを教えてくれると嬉しいです。

>2184
>名前の部分にカーソルがある状態で Enter を押しても書き込み
こういう事でしょうか?

<HEAD〜内
<SCRIPT LANGUAGE="JavaScript">
<!--
function submit_check(){
  if(!document.FORM.elements.MESSAGE.value){
    alert("メッセージを記入してください。");
    return;
  }
  if(!document.FORM.elements.NAME.value){
    alert("名前を記入してください。");
    return;
  }

  document.FORM.submit();
}
//-->
</SCRIPT>

<FORMへ
<FORM METHOD=POST ACTION="$script_name" NAME="FORM" OnSubmit="submit_check();return false;">
外してます?

No. 2187 # SA [E-mail] 2001/10/09 (火) 08:46:43
>68userさん

ありがとうございました。
IPアドレスで使用していきます。

No. 2188 # shii 2001/10/09 (火) 22:42:19
cgi-lib217.plを使わずにreadで読んでやってみましたが
やはり文字化けしました。引き続き調査中です。

No. 2189 # ふくし [E-mail] 2001/10/10 (水) 15:13:48
すいません、また怪奇現象が起こったのでお力をお貸しください。

Excel のワークシートを単純に <a href> タグでリンクすると
クリックすると中が見えてしまう(文字化けの文書として開こうとする)ので、
いぜん別の場所で教えてもらった方法をアレンジして
下のような CGI スクリプトで行っています。

--- download.cgi ---
#! perl

$arg = $ENV{'QUERY_STRING'};
$arg =~ /name=(.*)/;
$excelfile = $1;

$pwd = `pwd`;
chomp($pwd);

unless (open (FL, $excelfile)) {
        print "Content-type: text/plain\n\n";
        print "error opening $excelfile because $! at $pwd";
        exit;
};

print <<HEAD;
Content-type: application/octet-stream
Content-disposition: attachment;filename="$excelfile"

HEAD

print <FL>;
close(FL);
-------------------

これを、
<a href="http:.../cgi-bin/download.cgi?name=test.xls">ここをクリック</a>して xls ファイルを、、
のように呼び出そうという寸法です。

これが、場所によって挙動が異なるのです。

project
| cgi-bin
| | download.cgi
| subproj1
| | aaa.html
| | xxx.xls
| subproj2
| | subdir
| | | bbb.html
| | | yyy.xls


ここで、
http://org/~project/subproj1/aaa.html として見える aaa.html の中に、
<a href="http://org/~project/cgi-bin/download.cgi?=xxx.xls">XXXをダウンロード</a>
と書くとうまくいくのですが、
http://org/~project/subproj2/subdir/bbb.html の中に、
<a href="http://org/~project/cgi-bin/download.cgi?=yyy.xls">YYYをダウンロード</a>
と書くと、
error opening yyy.xls because No such file or directory at /.../project/cgi-bin
と表示されます。
パスが何らかの理由で見えないのかと思って
<a href="http://org/~project/cgi-bin/download.cgi?=../subproj2/subdir/yyy.xls">YYYをダウンロード</a>
と書くと、なんと download.cgi という名前でファイルを保存しようとします。
保存して中を開けてみると、中身はなんと yyy.xls!

1回目の実験は xxx => yyy の順番で行ったので、
何らかのキャッシュが行われているのかと思い、yyy => xxx の順で行っても同じです。

ということでよろしくお願いします。
サーバー側は FreeBSD 2.2.8-RELEASE+Apache(Apache のバージョンの見方がわかりません、、)、
クライアント側は Windows2000 Server+NC4.51 および IE6 です。

No. 2190 # ふくし [E-mail] 2001/10/10 (水) 16:15:59
↓下の件ですが、Apache は 1.2.5 だと管理者からメールが来ました。

Prev< No. 2185〜2190> Next  [最新発言に戻る] [過去ログ一覧]