|
長文ですみません……。 >>2115 68user > " の中に " をそのまま書いた その通りです。うっかりしてました。 > form の action です。 htmlと同じなのですね。 strはよく見るのですが,hogeとかfugaは知らなかったので……。 よければ意味を教えて下さい。 > つまり全く同じコードであって、同じバイト列を EUC-JP と解釈するか、 > Shift_JIS と解釈するかで表示が違う、ということになります。 なるほど。 > print "Content-type: text/html; charset=EUC-JP\n\n"; > と適切なエンコーディングを指定してやればよいです。 やってみましたが,同じ結果でした。うーん……悩む……。 ちなみにこうする前は, Content-type: text/html\n\n と <META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=x-euc-jp"> を入れていました。 > > jcodeのh2z_eucを使っても上手くいきません。 > この件は具体的に書いたスクリプトを提示して下さい。 require 'jcode.pl'; jcode::convert(\$str, 'euc'); jcode::h2z_euc(\$str); です。 > なるほど。ただその手法は壊れる確率は低いけど正確なカウントは > できないように見えるので、ある意味「逃げ」かなぁとは思います。 > 完璧な排他ができないはずはないと思っていますので。 そうですね。 私は「累計」を正確にカウントすることに意味があるのか疑問なので (カウンタは目安だと思っているので)気にしていないのですが, プログラム的にはつきつめる価値はあると思います。 >> 2152 > であれば, submit が含まれている form の target に "_top" を > 指定すれば良いだけに思えますが・・・ formにtargetが使えることを知りませんでした。 やってみたら上手くいきました。ありがとうございました。 > > EUCでconvertする前に文字化けしてしまうので(?) > というのは, どのように確認されましたか? いえ,確認できていないので(?)を付けています。 ただ,convertした後に半角カナを拾い出すスクリプトを入れていて, 文字化けした後の文に含まれている半角カナは拾うことができているので, なんとなくそうなのかな……と思いました(根拠になっていませんね)。 例)半角カナで「明アイウエオ」とすると「フタ竺軸宍雫七」(フタ:半角カナ)に 文字化けし,「フタ」を拾い出すことができています。 > スライス? すみませんが,意味がわかりませんでした。 ちなみに,このやり方は本屋で買った書籍から知りました。 |
|
>>2157 椎 > hogeとかfugaは知らなかったので……。 hoge の意味ですか? ならこちらを。 http://www.selab.tutkie.tut.ac.jp/~yoshida/hoge.html > require 'jcode.pl'; > jcode::convert(\$str, 'euc'); > jcode::h2z_euc(\$str); それで正しいと思います。 それでも化けるなら、文字列処理をしている全ての処理 - ブラウザから渡された「%8e%b1%8e%b2」というような URL エンコード された文字列 - & で split した文字列 - = で split した文字列 - URL デコードした文字列 - EUC に変換した文字列 で、print 文でデータを出力してみて下さい。そしたらどこで化けて いるかわかるでしょう。また、フォームが書いてある HTML の文字 コードが何になっているかも調べて下さい。 わからなかったら、最小限まで切り詰めたソースを見せて下さい。 >>> if ((@file1[9]) > (@file2[9])) { >> スライス? > すみませんが,意味がわかりませんでした。 $file1[9] が正しい、ってことでしょう。 > ちなみに,このやり方は本屋で買った書籍から知りました。 $file1[9] や (@file1)[9] なら正しいですが (わざわざ後者の書き方を する必要はありませんが)、@file1[9] は誤りです。本当にそう書いてあるなら その本は捨てましょう。 >>2156 Nira > CONNECT **.com:443 HTTP/1.0 > HOST: **.com ここまでは正しいと思います。その後は暗号化したリクエストを 送りますが…暗号化まで自力でやろうとしておられます? |
|
>>2158 68user ご返答ありがとう御座います。 >ここまでは正しいと思います。その後は暗号化したリクエストを >送りますが…暗号化まで自力でやろうとしておられます? CONNECTメソッドまでは正しいですか。 暗号化を自分でやるだけの知識は無いです。(--;) CONNECTした後は、サンプル通りのにやっているのですが、 SSL_connect()で0が返ってきます。 方法が正しいなら他の部分のバグかもしれないっすね。 そういえば、httpsの取得に良いサイトを発見しました。 https://www2.ggn.net/cgi-bin/ssl です。http://www.moxienet.com/lynx/ssl-testから リダイレクトされるサイトで、LynxでSSLが使用できる かどうかをチェックするためのサイトらしいです。 |
|
>>2158 68user ありがとう御座いました。 理由はわからないのですが動くようになりました。 SSL_load_error_strings(); の後に ERR_load_crypto_strings(); ERR_load_SSL_strings(); OpenSSL_add_all_algorithms(); を追加してみたら、難なく動きました。(--;) http://www.openssl.org/docs/crypto/BIO_f_ssl.html のサンプルを見てたら、上記3つの関数を呼んでいたので 真似してみました。 お騒がせ致しました。m(_ _)m |
|
はじめまして 最近CGIを作りはじめたして、問題が・・・ サーバはUNIXでCGIの処理を行なった後に作られたファイルの所有権がすべてnobodyになってしまっていて、その作られたファイルの操作が全くできなくなってしまいました。所有権の変更も出来ないんです。 だれか助けて下さい。。 おねがいします。 |
|
>>2159 Nira > そういえば、httpsの取得に良いサイトを発見しました。 ありがとうございます。このページをサンプルとして載せておきます。 >>2161 あやの > その作られたファイルの操作が全くできなくなってしまいました。 #!/usr/bin/perl system("rm -f ファイル"); print "Content-type: text/plain\n\n"; print "File removed.\n"; というような CGI スクリプトを作って、ブラウザから CGI に アクセスすれば消せます。 > 所有権の変更も出来ないんです。 普通ファイルの所有者を変更できるのは root のみです。 # 設定次第でできる OS もありますが。 よって、 - 事前にファイルを作成しておき、nobody が中身を変更できる ようにパーミッションを設定する。 - ファイルの所有者は nobody とし、他のユーザがそれを 参照・変更できるようにパーミッションを設定する。 - ファイルの所有者を nobody 以外とする。 サーバ管理者に suExec や cgiwrap を入れてもらうか、 自分で suid なプログラムを作る。 # http://x68000.startshop.co.jp/~68user/webcgi/permission.html のいずれを選ぶ、ということになります。 |