CGIだけど、なんか質問ある? Part 10
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/03/26 22:47ID:44KxXtaW※CGIは特定の言語に依存するものではありません。
※Perlのコーディングに関する質問は専用スレがありますのでそちらでお願いします。
↓
【Perl】初心者コーナー Part21
http://pc2.2ch.net/test/read.cgi/php/1047980851/l50
過去ログ・関連スレッドは >>2-5 あたりに
0116nobodyさん
03/04/03 00:26ID:???キモイ
0120nobodyさん
03/04/03 05:20ID:9W9Efx3S自分は投票的なシステムをマスターしたいんですが。。
0121nobodyさん
03/04/03 05:37ID:???で、君は今どこまでできるようになってるの?
もしまだ何もできないくせに>>120みたいな質問してるんだったら諦めた方がいい。
「いいHP」なんか探してないで手当たり次第やれよ。入門ならいくらでもあるだろう(googleっていうサイト知ってる?
0122nobodyさん
03/04/03 05:41ID:9W9Efx3Sいろいろ検索して自分にあってるっぽいやつ
て一回作ってみましたがそれが
どうしてもエラーになって、
この際最初からやりなおそーかなーなんて思ってたけど、
やっぱもう一回入門しらべてやってみます。
0123nobodyさん
03/04/03 06:11ID:???0124nobodyさん
03/04/04 00:54ID:???HTMLのフォームで変数名
( <INPUT SIZE=35 VALUE="" NAME=> の所のNAME )
が受信者側にて日本語の文字である時、それを送信した際ブラウザはエンコードするのでしょうか?
(IEがエンコードすればOKです)
もし、ブラウザがエンコードしない場合、CGIでエンコードした文字を受信者側に送ってもマズイ事にはなりませんか?
なんかCGI側からの出力文字に2重のエンコード処理がかけられそうな気が…(?
そう言った物はCGIに文字列が帰ってきた時、どんな文字だろうと普通にデコードして問題ないですか?
0126nobodyさん
03/04/04 01:19ID:???Formをエンコードして送るのは、ブラウザ側の責任。HTMLを出す側が注意しないと
いけないことは、HTMLとして、特別な意味で解釈される文字を"エンコード"すること。
0127nobodyさん
03/04/04 01:54ID:???>Formをエンコードして送るのは、ブラウザ側の責任。HTMLを出す側が注意しないと
>いけないことは、HTMLとして、特別な意味で解釈される文字を"エンコード"すること。
<INPUT SIZE=35 VALUE="" NAME="あああ">
つまり、この部分はブラウザの責任としてエンコードするので普通の文字で問題ないってことですね。
<INPUT SIZE=35 VALUE="" NAME=" "$<a>">
しかし、このような怪しい文字の場合、エンコードされた文字を置かなくてはダメなのですね…。
ですが、これをブラウザが勝手にエンコードして送った場合、2重エンコードになりますが大丈夫なのでしょうか?
CGI側でなんらかの工夫は必要でしょうか?
(どー工夫すればいいんだろ…困)
0130nobodyさん
03/04/04 02:04ID:???<INPUT SIZE=35 VALUE="" NAME=" "$<a>">
↓
<INPUT SIZE=35 VALUE="" NAME=" "$<a>">
とする。
「しなければならない」ではなく「すべきである」だけど。
0131nobodyさん
03/04/04 02:05ID:???<INPUT SIZE=35 VALUE="" NAME=" "$<a>">
↓
<INPUT SIZE=35 VALUE="" NAME=" "$&:lt;a>">
0132nobodyさん
03/04/04 02:12ID:???<INPUT SIZE=35 VALUE="" NAME=" "$<a>">
コレはエンコードといわず文字参照をつかいます。
<INPUT SIZE=35 VALUE="" NAME=" "$<a>">
みたいな・・・ そもそも、こうしないとhtmlとしては文法エラーですがね・・・
文字参照自体は、htmlで表示する際にブラウザで該当する文字コードに変換される物で、気にする必要はありません。
文字エンコード
<INPUT SIZE=35 VALUE="" NAME="あああ">
もしくは
<INPUT SIZE=35 VALUE="" NAME="%82%A0%82%A0%82%A0">
等は、cgiでで変換する処理を入れてあるので漢字コードに関しても普通は気にしなくてもよいはず。
但し、自作cgiでは処理を自分で作る必要がありますが・・・どのレベルで話をしてるんでしょうか?
0133nobodyさん
03/04/04 05:03ID:???>>132
>cgiでで変換する処理を入れてあるので
エンコードを居れた覚えはありません…自分のなんです。
出力文はCGIより出力されます。送信先もGGIです。
なお、私のみが使えればいいのでIEにてフォームのnameがエンコードされるかどうかを正確に知ればそれで満足です。
>>128
ええ、間違いのご指摘は十分承知しています。
ですが他ファイルとの互換のため2バイト文字を使わないとならないんです。
使わないと記述量が膨大になって入力だけで数日かかりそうなんで…。
>>131
実は今気付いたのですが、私もやられてました。
<INPUT SIZE=35 VALUE="" NAME=" "&nbsp;”$lt;">
実はこんなふうに書いた記憶が…。
0134133
03/04/04 05:04ID:???read(STDIN,$decode_post,$ENV{'CONTENT_LENGTH'});
$decode_get = $ENV{'QUERY_STRING'};
$decode_reach = $decode_post . '&' . $decode_get;
foreach $decode_pair (@decode_pairs){
($decode_name, $decode_value) = split("=",$decode_pair);
$decode_value =~ tr/+/ /;
$decode_value =~ s/%([0-9A-Fa-f]{2})/pack("C",hex($1))/eg;
$form{$decode_name} = $decode_value;
}
私日頃から上記のデコードで万事うまく行ってます。(自作ですが変じゃないですよね…?)
中身はデコードしてるのに変数名はデコードしないでうまく行ってるって事は、
初めからブラウザのフォームのnameはエンコードしていないって事では…(?)
ところでこんな下らない事でこんな長々とすみません。一言で答えが返って来ると思いこんでましたのでついつい下らない質問をしてしまいました。
実際にブラウザから送信してなにが表示されるかちゃんと確かめます。
アホな質問すみませんでした。
0135nobodyさん
03/04/04 07:18ID:???まあその書き方だとname属性はエンコードされていないことを前提にしてるね。
それはともかく、
>ですが他ファイルとの互換のため2バイト文字を使わないとならないんです。
>使わないと記述量が膨大になって入力だけで数日かかりそうなんで…。
の意味がさっぱり分かりません。
<INPUT SIZE=35 VALUE="" NAME="aaa">
としておいて、
$form{'aaa'} = $form{'あああ'}
とかでもいいんじゃないでしょうか。
0137126
03/04/04 11:28ID:???>>126の最後の行で書いた、エンコードは、URLエンコードっていう意味ではなくて、
実体参照で書く、ということ。わかると思ったんだけど。。
0138nobodyさん
03/04/04 11:56ID:???初心者相手だと分かり易くしたつもりが余計混乱させることになることが多々ある。
0139PC用語くらいちゃんと使え委員会
03/04/04 11:57ID:???激しく同意。
健全な技術は健全な用語から。
0140nobodyさん
03/04/04 13:57ID:???正確な用語で説明して、わからなければググらせればそれも勉強になるし。
0142/* すれ違い? */
03/04/04 15:10ID:???ヤフーのログイン・ログオンはどういう仕組みなのかな?
0143nobodyさん
03/04/04 15:10ID:???0144nobodyさん
03/04/04 17:17ID:???検索すれ。
>138
禿胴。
最も厄介なのは用語を誤解して覚えてる人間。
それを生むようなのは避けなければならない。
0145nobodyさん
03/04/05 14:28ID:WfuJAlpaこのANQ.BBSに2chみたいなトリップ機能つけるには
どうすればいいですか?
0146nobodyさん
03/04/05 14:35ID:???0147nobodyさん
03/04/05 15:36ID:bE7hV9qb2ちゃんねるのような、スレッド式の掲示板ってありますよね。
こういうのって、鯖に負荷がかかりやすいって聞いたんですが、
どの程度でしょうか?
実は、プロバイダの自分が持ってるHPスペースに
そういう感じのBBSを設置したいんですが
まずいでしょうか?
削除されたり、勧告が着たりしますか?
考えすぎでしょうか?
実際、配布もされているんですし、実際にプロバのスペースに設置して
大丈夫だった人とかいますか?
本気で考えているので、どうかアドバイスお願いします。
0148nobodyさん
03/04/05 15:45ID:???2chは負荷を抑えようと努力している。
1スレ1ログだからある程度負荷は抑えられるはず。
KENTのYY-BOARDみたいな仕組みで2chみたいにたくさんの書き込みがあったら高負荷。
それにHTMLファイルを作成して表示してるから表示に関する負荷はある程度抑えられる。read.cgiはともかく。
2chブラウザ使ってればログに直接アクセスするから負荷は抑えられる。
っていうかスレ違い。
0149nobodyさん
03/04/05 16:28ID:HO0gBXG3http://my.vector.co.jp/servlet/System.FileDownload/download/ftp/0/279026/pack/win95/game/table/pachinko/sikisai.lzh
0150nobodyさん
03/04/05 19:05ID:???そのBBSに一日に数万アクセスあるなら問題かもしれんが、
数百アクセスなら問題ないと思う。
また、プロバから韓国が来たら、そんとき削除するか、対応すればいいと思う。
0151nobodyさん
03/04/05 19:06ID:???0153nobodyさん
03/04/07 00:52ID:X1gprvgQローカルでCGIの動作確認しようと思っているのですが、
ファイルがForbiddenになってしまいます。
どうやってアクセスを許可すればよいのでしょうか、お願いします。
0155nobodyさん
03/04/07 01:10ID:clRraWao掲示板で、設定などを書き込んだファイルをブラウザで見れないようにしたいのですが、
拡張子「.cgi」にすれば、見れなくできると聞きました。
で、試しに.cgiにしてみると、確かにエラーが出て見れませんでした。
しかし、本当にこれで良いのか心配です・・・
拡張子.cgiファイルは、どうやっても見れない物なのでしょうか?
よろしくお願いします・・・。
0156マリモーマ ◆r6PDGT6Xd2
03/04/07 03:26ID:APDWYkFj0157マリモーマ ◆r6PDGT6Xd2
03/04/07 03:29ID:APDWYkFj0158nobodyさん
03/04/07 03:44ID:???最悪そのままにするしかない。
次善の策として、.htaccessでアクセス制限がかけられるなら、
それで制限すればいい。これができるかはプロバイダというか、
ホスティング会社次第。
本来は、要求されるとhttpdが見せてしまうようなディレクトリに、
見せたくないファイルをおいているのが間違い。
public_html より上の階層とかに置くべき。
0159nobodyさん
03/04/07 04:13ID:???>>> K○NTの御心のままに
て感じなのかな。途中の順番が怪しいな...
0161155
03/04/07 04:40ID:clRraWao>>158
>>159
レスありがとうございます!
一応・・・完成したら配布とかもしたいなぁ〜と考えてます。
なので、汎用性のあるようにしたいのです。
そうなると、やっぱり・・・拡張子.cgiが一番良いのでしょうかね・・・。
0162nobodyさん
03/04/07 06:16ID:???ま、そこまでやられりゃ法に訴える手もあるわけだが。
0163マリモーマ ◆r6PDGT6Xd2
03/04/07 07:12ID:APDWYkFj.cgiて パーミッションを 755にしたら 実行されるはず なにか 勘違いしてるのかな?
0165nobodyさん
03/04/07 08:59ID:???0166nobodyさん
03/04/07 09:32ID:B7NjPx7M2ちゃんみたいに いったんどこかのアドレスを経由させる
方法はどこかに出ていますか?
(全部imeなんとかになるよね)
2ちゃんスクリプトのスレかどこかで見た気がするけど、
わからなくなった。
0167nobodyさん
03/04/07 09:38ID:???0168bloom
03/04/07 09:40ID:x0IiN6fK0174nobodyさん
03/04/10 10:12ID:9A9ivQFeみちのくを改造しようと思うのだが、オートリンクを書き込んでる場所が
わからないのだ。
見つかったら、line = s/見つかったアドレス/書き込まれたアドレスの"http://"を削って頭に"<a href="http://ime.nu/$ナントカカントカ">削る前の$なんとかかんとか</a>/g
みたくすればいいんですよね??
場所を見つけるだけで苦労している漏れは前途多難なの。
0175nobodyさん
03/04/10 10:13ID:9A9ivQFe誰かタスケテ。
0176nobodyさん
03/04/10 10:16ID:9A9ivQFe別ページへ飛ばして、location にアドを書き込む?
そうするとそのページのurl しか ref に残らない?
それでもいいけど、飛ばすために書き換える段階でコケテマス。
form でアドレス渡したり大変そうだし、飛ばす先のページも
cgiで書いとかなきゃいけないよね(これが大変なので、
ime.nuへただ乗りしようと言う算段なのだ。個人サイトだから
年に何回アクセスがあるか数えられるほどだから許せる?)。
0178nobodyさん
03/04/10 10:20ID:9A9ivQFeでも、このやり方の方が本体をあまりいじらずに
済むなぁ……。
連続カキコ、スマンソン。
0179nobodyさん
03/04/10 10:25ID:9A9ivQFeフォームで受け取ったレス内容は$comment に格納される
んだけど、途中messageになったり、
aタグいれるときには$1ってローカル変数? に
いったん入ったりして、ニワカ改造者にはわかりにくいんすよね。
grepしなおししてるうちに訳がわからなくなるのよ。
一遍全部処理の流れを紙に書くとかしないと????
しかもその場所でアドレスを正規表現でチェックしてたりするので
(なら見つけてるじゃんと突っ込まれる? 自信ないの)。
「不可視ON」ってコメント入ってる場所<みちのく使いの方。
0180nobodyさん
03/04/10 10:43ID:hn2nL/9a0181nobodyさん
03/04/10 10:46ID:???と、思い付いたキーワードをどんどん追加してきゃ、かなり絞り込めるんと違う?
0186nobodyさん
03/04/10 12:18ID:JDxUoo5t0187nobodyさん
03/04/11 14:59ID:oWKH4H98受信したメールの、一行の文字列が約2000バイト近くになると一部文字化けして、
以降約2000バイト毎に一部文字化けがはいっていくのですが、
一行に収められるテキスト量に限界があるんでしょうか?
sendmailでメールを送信する直前にメール本文をprintでブラウザに表示させて確認しても
問題はないようなので、送信時に文字化けがおこってる様なのですが。
#使ってるスクリプトはperlで、ヘッダのエンコードの指定等もちゃんとやっていて
#一行のテキスト量が上記の容量にならなければ問題は起こってません。
#JISコードで7bitを指定してます
0188nobodyさん
03/04/11 15:10ID:???ブラウザ上で確認しただけで満足せずに、テキストに落とすとかしてくれ。
文字化けってどう確認してんの?使ってるMUAが腐ってるとかは?
ここらに問題が無けりゃ、CGI の話じゃないのでは?鯖の管理人に聞いてくれ。
0189nobodyさん
03/04/11 15:17ID:???CRLFを含めて1000バイトまでです。(これはメールサーバの制限)
読むクライアントは80字までしかサポートしていない可能性もあります。
いずれにしてもそんな長すぎるのは非常識です。
0191nobodyさん
03/04/11 15:30ID:???0193191
03/04/11 15:34ID:???"一行が"1000バイトまでね。おかしいと思ったよ。。。
0194191
03/04/11 15:35ID:???0195nobodyさん
03/04/11 15:59ID:???書き忘れてましたがファイルに出力等もやりましたが問題なかったです
>>189
やっぱりメールサーバの制限だったんですね、
非常識だとは思うんですが、自分がメールを受けるので
それでよしとしてました
テキストに落とし込んで添付ファイルとしてうけとることにします。
こういう仕様はなかなか何を調べればよいのかわからなくて
190で出てるRFCなるものを調べるとよいのですか?
さておきありがとうございました。
0196nobodyさん
03/04/11 16:07ID:???変な突っ込み入れたお詫びに、ドゾ
http://www.google.co.jp/search?num=50&lr=lang_ja&q=RFC%202821%20%93%FA%96%7B%8C%EA%96%F3
一番上から辿れる。
0197nobodyさん
03/04/11 22:06ID:???を使いたいのですが、借りたHPスペースでは
CGIを使う場合は例えばhttp://cgi-bin.abc.com/~aaa/というのが
与えられました。
こういう場合はどうやって設置を行えばいいのでしょうか?
参考ページなどありましたらお願いします。
0198nobodyさん
03/04/11 22:31ID:???関係ないが、古いjcode.plにバグがあって、
一度に2,048byte以上処理しようとすると文字化けする現象があったような気がする。
記憶違いかな?
0199nobodyさん
03/04/12 08:55ID:khJ44NHi0200nobodyさん
03/04/12 10:23ID:???>199
マルチするような屑は帰れ!
0201nobodyさん
03/04/13 12:07ID:cbDOB3ut屑はてめぇだ! カス!
0202nobodyさん
03/04/13 17:00ID:???ちがっていたらごめんなさい。
CGI-Perlで日記かいてます。
ログファイルに書き込む時、">>log.dat"っていうふうに追記でやってるんですけど
いちど全部読み込んで追記してあらためて書き出すほうがいいんですかね。
いちおう書くのは俺ひとりで読むのは友だち数人ていどなんで
ログファイルが飛ぶってことを心配しなくていいですよね。
0203nobodyさん
03/04/13 17:07ID:???>いちおう書くのは俺ひとりで読むのは友だち数人ていどなんで
>ログファイルが飛ぶってことを心配しなくていいですよね。
俺の言えることはお前が糞プログラマだってことだ。
0204nobodyさん
03/04/13 17:17ID:???>俺の言えることはお前が糞プログラマだってことだ。
そうです。
だからきいてるんだけど。
0206nobodyさん
03/04/13 18:38ID:???飛ぶ(消滅する)ことは無いかもしれないけど、同時に書き込みが発生して壊れたり、
不完全なものが読まれたりするかもしれない。
0207nobodyさん
03/04/13 19:31ID:???ありがとうございました
0211nobodyさん
03/04/14 01:42ID:???うむ。
> 不完全なものが読まれ
る可能性を無くすためには、
ちゃんとロックを使って、書き込んでいる途中では
だれも読み込むことが出来ないようにしないとまずいね。
> いちど全部読み込んで追記してあらためて書き出す
ようなことは、ファイルの最後にデータを追加したい場合に限っては
必要無いんじゃないかな。
0212nobodyさん
03/04/14 02:21ID:???むしろ上書きのほうがちゃんと処理しないと危険だし
0213nobodyさん
03/04/14 06:16ID:???>だれも読み込むことが出来ないようにしないとまずいね。
Readは共有ロックで良かろう。
データが崩れてもリロードすればいい話。
>>212
事実関係の裏付けも含めて論理的に説明してくれ。
0214nobodyさん
03/04/14 07:44ID:???0215nobodyさん
03/04/14 08:38ID:qRV7URanThe roomのランキングスクリプトを利用しているのですが
総合カテゴリーを作成したいのですがうまくいきませんでした。
なにか良いアドバイスを頂けませんでしょうか。。
■ このスレッドは過去ログ倉庫に格納されています