CGI: Common Gateway Interface part 11
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
03/06/14 22:26ID:F9qlqHNx※CGIは特定の言語に依存するものではありません。
Perlのコーディングに関する質問は、専用スレでお願いします:
[Perl 初心者コーナー Part24]
http://pc2.2ch.net/test/read.cgi/php/1054992610/
CGIとPerlの区別がわからない、という人はとりあえずこちらへ:
[WebProg 初心者の質問 Part3]
http://pc2.2ch.net/test/read.cgi/php/1045091733/
過去ログ・関連スレッドは >>2-5 あたりに
0879nobodyさん
04/05/11 06:20ID:???Content-type: text/txt\n\n;
なんて書かないのと同じ。
0880nobodyさん
04/05/11 10:54ID:???CGI、CGI::Sessionなどのモジュールを利用してください。
0881nobodyさん
04/05/11 19:06ID:iWNmrZA1IEではテキストがそのまま表示されてしまいます。
名前をつけて保存すると、開けるようになるので、
バイナリは一致しているはずなのですが。
MHTのMIMEタイプを調べて、
Content-type: message/rfc822\n\n
を出力しているのですが、これではIEが解釈してくれないのでしょうか。
0882nobodyさん
04/05/11 19:48ID:Ax2GxUUe内容として一日一回 当選を出す
日付が変わるとリセットされる
プログラム作って頂けませんか
0884nobodyさん
04/05/11 19:56ID:???0885882
04/05/11 20:15ID:Ax2GxUUe0886nobodyさん
04/05/15 19:58ID:AknjjuaOcgi習得のため日記を書き込む&表示するcgiをPerlで作っているのですが、
ログの整理方法で悩んでいます。
全日記データ(1件1kb程度?)を単一ファイルにすれば、データ壊れた時恐いなあ、とか
逆に1日分を1ファイルにしたらクラスタとかの関係でめちゃくちゃHDD圧迫するんじゃないか・・・
などと迷っております。
現在はdiarylog/200405.datとして1月1ファイルあたりにしようかなと考えておりますが
何らかの危険回避のために意識した方がよいもの、
後々便利になるものなどがありましたらご教授いただけませんか。
主観込み込みで構いませんので後押しをお願いします。
0887nobodyさん
04/05/15 20:07ID:???バックアップすればイイのこと。
データを書き込む前にログファイルをどっかにコピーするとか、sendmailで自分宛に送るとか。
0888nobodyさん
04/05/15 20:10ID:???レン鯖だとすると全データ飛ばしは有り得る話なので、バックアップは自動だろうが手動だろうが必ずしておくべきことだ。
自分のデータは自分で守ろう。
0889nobodyさん
04/05/15 20:37ID:???ログにDBM使うのはどうかな?
ハッシュで比較的高速にアクセスできるから1ファイル構成でも、
最近と過去とで2ファイル構成でも悪くない。
バックアップはもちろん必要だけど。
0892nobodyさん
04/05/15 21:05ID:???他人に自作スクリプトを評価してもらうのが効率のよい習得方法だな。
自分が「これはいい」と思ってた部分が実は糞みそだったりするからな。
ほれ
自作CGIを評価するスレ
http://pc5.2ch.net/test/read.cgi/php/1049514428/l50
0893886
04/05/15 22:52ID:AknjjuaOバックアップ(コピー)をとれば単一ファイルにでき手軽そうですね。
そこで新たに疑問が。
2004年5月15日の日記を読むにはファイル全て読むことになりますよね。
その前日もついでに読むと再びファイル全て読みに行くことになると思いますが、
不要な部分も読むというロスは気にしたほうが良いのでしょうか?
また、みなさんなら何kbくらいのロスからログ形式(もしくは読み取り方法?)の変更を考えますか?
もう一つ似たようなことで、
読み取り専用で開く場合もファイルロック(やバックアップ)をしたほうがいいのでしょうか?
書き込む人は管理者の1人を想定しており、処理に多少時間が掛かっても構わないのですが、
読む場合は[翌日の日記へ>>]ボタンを2秒1回くらいでぽちぽち押しても耐えられるものを作りたいのです。
---
DBMというのはググってもよく理解できず
まだ敷居は高そうですが一応心に留めておきます。
まだファイル読み書き部分も作っていませんが、
日記として機能できたら評価スレに行ってみますね。
0894nobodyさん
04/05/16 12:50ID:???あるCGIから別のCGIにPOSTするにはどうしたらよいですか?
また、その際に送信側でパラメータのセット、
受信側で取得する方法も教えてください。
どなたかお知恵を。
0895nobodyさん
04/05/16 12:51ID:???CGI.pmモジュールは使えません。
0896nobodyさん
04/05/16 12:56ID:???http://x68000.startshop.co.jp/~68user/net/
http://www.studyinghttp.net/
0897nobodyさん
04/05/16 13:07ID:???ありがとうございます。
しかし、残念ながらここのサンプルは
モジュールを使っているようです。
cgi-lib.plを使って同じことはできないのでしょうか?
0898nobodyさん
04/05/16 13:41ID:???サンプルを丸写ししろという意味でなく、そういったサイトで HTTP や
CGI の基本を勉強しろという意味なんだがな。それがいやなら
サンプルが動く環境を整えるか、金払って作ってもらえ。
0899nobodyさん
04/05/16 14:04ID:???使うのを薦められない何らかの理由があると考えていいんじゃね?
0900nobodyさん
04/05/16 15:55ID:???0901nobodyさん
04/05/16 16:28ID:???CGI.pmはCGIアプリのためのモジュールだから用途が違う。(POSTをするじゃなくてPOSTを受ける方)
自分からPOSTするにはLWP系のモジュールが便利。
ttp://search.cpan.org/~gaas/libwww-perl/
0903886
04/05/17 09:01ID:bRPhhdmX「(CGI-Perl)読み取り専用で開く場合ファイルロックは必要か」
という疑問は、検索の仕方が悪いのか解説されたページが見付かりません。
ファイルが壊れるというのは物理的な干渉でなく、
時間差の引き起こす上書きだという認識なので読み取り専用の場合は気にする必要が無いと思うのです。
この考えは間違っていますか?
スレや板を間違ってる気ならしてきました。
0904nobodyさん
04/05/17 09:41ID:???http://pc5.2ch.net/test/read.cgi/php/1081148490/694-695
0905886
04/05/17 10:06ID:???共有ロックと排他ロックですか。
分かりやすそうなページがたくさんヒットしました。
今日中に解決できそうです。
http://pc5.2ch.net/test/read.cgi/php/1024795138/
google経由でこんなスレも見つけたので今日帰ってからでも読んでみます。
ありがとうございました!
0906nobodyさん
04/05/17 15:28ID:???Data::Dunper 結構便利だよね。
DBM紹介して、初心者に紹介するもんじゃねえって言われてた人いたけど、
ま、これも似たようなもんかもしれんけど、
DB使うほどもんでなし、かといってフラットファイルだとかったるいってのは
$database = do "$log_file" or die "$log_file: $!\n";
とかやって取り込み、
print LOG Dumper($database );
とかやってる。
結構お手軽。
0907886
04/05/17 17:39ID:???色々調べてみました。Data::Dumperのようですね。
便利そうなのですがファイル構造はせいぜい2次元ですし、
1行1レコード、先頭の日付8桁の数字をキーくらいにしか考えておらず
このスクリプトではDumperのお世話になるほどでは無いかなと感じました。
情報ありがとうございます。
0910nobodyさん
04/05/20 21:28ID:???あ、いやいや、そっちの扱うデータが、って事なのね。納得。
ただ、joinしたりsplitしたりして変数に格納したり、とかするんなら、
やっぱ便利だと思うけど、、、Data::Dumper
僕はね。
0912nobodyさん
04/05/20 22:02ID:???0914nobodyさん
04/05/24 13:36ID:guXgj1Rhhttp://pc2.2ch.net/test/read.cgi/php/1051456859/
が落ちていて、新しいスレがないようなので、
すみませんがこちらに書かせていただきます。
よく2chでのやり取りに捨てアドが使われますが、
これを手軽にするために公開鍵暗号を使ったらどうか、と考えました。
概要は
アイディアとしては宅配ボックスのようなもの。
ネットの掲示板のように、誰でも利用でき、
俗に捨てアドと言われるような取得の手間はかからない。
利用者が秘密鍵Aを決めると、自動的に公開鍵Bを生成し、
それをメールや掲示板に貼り付ける。
利用者にメッセージを送りたい人はそのURLをクリックすると
公開鍵Bで暗号化したものをCGIにアップできる。
アップされたデータそのものは誰でも見ることができるが、
公開鍵Bではそれは復元できず、秘密鍵Aを持つ人しか読めない。
このようなものをご存知ありませんか。
0915nobodyさん
04/05/24 14:10ID:???普通の鍵つきメッセージボックスでいいんじゃない?
1.受け取りたい人がメッセージボックスを作成、パスを決める
2.送りたい人が投函する
3.主がパスで読む、他の人は読めない
目的は達成できそうな予感
0916nobodyさん
04/05/24 16:04ID:???【CGI】こんなCGI探してますver.13
http://pc5.2ch.net/test/read.cgi/hp/1081608108/
0917nobodyさん
04/05/25 09:10ID:???0918nobodyさん
04/05/27 23:32ID:???一定量を超えるとボタンを押しても切り替わりません。
どうやればいいのでしょう?
0920nobodyさん
04/05/28 11:00ID:???もしGETで受け取ってるならPOSTに直せ。
0921nobodyさん
04/06/01 12:28ID:???というURLを受け取ってそれがディレクトリなのかファイルなのかを知るのはどうやるの。
0922nobodyさん
04/06/01 18:51ID:???301とlocation:http://foo/bar/baz/が帰ってきたらディレクトリ。かな?
0923nobodyさん
04/06/12 23:57ID:H/qBX9ep2. 形式は"行番号 本文"
3. ブラウザでテキストを選択すると行番号は選択されずに本文を複数行選択できる。
ということをやりたいのですが可能でしょうか。
普通に<PRE>などで出力すると1.は可能で3.が不可能に、
テーブルを使うと3.は可能で1.が不可能になってしまいます。
0924nobodyさん
04/06/13 00:54ID:???1.の動作はむっちゃブラウザ依存じゃん。3.もかな?
行番号の形式が許せるなら<OL>(Ordered List)はいけるかも。
0926nobodyさん
04/06/13 13:34ID:???0927nobodyさん
04/06/13 15:57ID:???0928nobodyさん
04/06/13 18:07ID:???0929nobodyさん
04/06/28 17:33ID:???すんげー見た目悪いけど、3.は<TEXTAREA>を二つ使って、片方は行番号、もう片方に本文を出力すれば、
行番号は選択できんようになるが。
ダサいけどな。
お前さんが何をしたいのかがわからん。
0931nobodyさん
04/07/05 06:22ID:KmrVPKaj0932nobodyさん
04/07/05 11:46ID:???との記述を見かけますが、これは何による制限でしょうか?
HTML1.1のRFCを読みましたがそのような記述はないようです。
それともそのような制限はないということですか?
0933932
04/07/05 11:51ID:jPcBhI9p0934nobodyさん
04/07/05 12:23ID:???0935nobodyさん
04/07/05 12:29ID:???URLとして許容される最大長、という話だと思いますが、
私も以前RFCなどを調べてみて結局よくわからなかった経験があります。
Specification ではなく実装上の制限としては、
Internet Explorer で扱える URL の最大長は 2,083 character だそうです
(MSDN Support Q208427)。
httpサーバや proxyサーバにはこれより短い制限で実装されているものがあるかもしれません。
0936nobodyさん
04/07/05 15:35ID:???標準としてどうなってるかはHTTP1.1(RFC2616)の3.2.1参照。
結局HTTP1.1としては制限はないことになっているが、世の中の
clientやproxyが扱えないと意味はないのでそこは実装がどうなっ
てるかを調べるしかない。
安全側に振るならNoteにあるように255まででやめとけ。危ない方
に振る場合も935が紹介したIEの制限を越えるのはやめとくのが
いいだろう。独自clientしか使わないなら別だが。
0937nobodyさん
04/07/05 18:15ID:???0938nobodyさん
04/07/06 01:28ID:???ttp://support.microsoft.com/default.aspx?scid=kb;ja;208427
0939nobodyさん
04/07/06 01:30ID:???0941nobodyさん
04/07/15 19:25ID:???ユーザがページからログインする際に同時にチャットへログインさせて、
チャットのウィンドウを別ウィンドウで表示させようとしています。
フォームで、
名前 ________ パスワード _______ [ログイン]
と表示させているのですが、このログインのsubmitボタンを押すだけで
現在のページはログイン後の画面、同時に別ウィンドウでチャットのページを
開きたいのです。
<form>は入れ子にできず、submitボタンも一つしかつけられないらしいのですが、
このようなことは可能でしょうか?
よろしくお願いします。
0942nobodyさん
04/07/15 19:42ID:???ログイン後の画面にonloadイベント仕込んで
window.open でチャットウインドをオープンさせる、
とかじゃねえか?
JavaScriptね
0943941
04/07/15 19:48ID:???<from method="post" action="login.cgi">
...
<input type="submit" value="ログイン">
</form>
<from method="post" action="chat.cgi" target="chat">
...
<input type="submit" value="ログイン">
</form>
これだとどっちかしかできません...(T.T)
0944nobodyさん
04/07/15 19:52ID:???login.cgiにonLoadイベント仕込んで
window.open でchat.cgiを別ウインドウで開く
とかじゃねえか?
JavaScriptね
0945941
04/07/15 19:56ID:???ありがとうございます。
それだとチャットに入るためのウィンドウが開きますが、ログインまで
同時にしてくれないような気がしますが、違うでしょうか?
javascriptでウィンドウを開く時にcgiにname=""など送れますでしょうか?
# ん?
# window.open("chat.cgi?name=hogehoge&pass=hogehoge","chat")
# でオープンすればいいのかな?
0946941
04/07/15 19:56ID:???0947942
04/07/15 20:07ID:???login.cgiでログイン処理してるわけで、
そのlogin.cgiが吐き出すHTMLに仕込んだJavaScriptに
onLoadイベント仕込んで別ウインドウにchat.cgiを開く。
IDだのなんだののchat.cgiに渡す引数はGETでどーぞ。
0948紹介者
04/07/15 20:14ID:9VjwcHkZ面白いんでやってみてください。
0950nobodyさん
04/07/30 23:50ID:???0951nobodyさん
04/07/30 23:58ID:???0952nobodyさん
04/08/29 14:22ID:???改行の事でつまづいてしまいました。
書き込みされた本文が改行を何回されたのか?
というのはどうやったら分るのでしょうか?
色々と試してみましたがどうも上手くいきません。
何か方法がありましたら何卒ご教授下さいませ。
0953nobodyさん
04/08/29 14:58ID:???http://www.hyuki.com/writing/techask.html#level
0954nobodyさん
04/08/29 21:59ID:???こう書くひとは実は何も試してないことが多い
試したんならどうやったのか、どううまくいかないのか書くこと
0956nobodyさん
04/09/03 18:01ID:???エラーの元になっているファイル/フォルダのURLをオリジナルのエラーページに表示させようと
http://<!--#echo var="SERVER_NAME" --><!--#echo var="REQUEST_URI" -->
というコマンドと環境変数を使っていますが、
オリジナルのエラーページのURLが表示されます
ステップサーバー(http://stepserver.jp)というレンタルサーバーを利用しており、
そのサポートに問合せましたが、上記の記述で問題ない、との回答でした。
何かアドバイス・ヒントを頂けないでしょうか?
0957nobodyさん
04/09/04 00:01ID:???0958nobodyさん
04/09/11 23:30:56ID:???ttp://www.tryhp.net/oldscript.htm
books.lzhというリレー小説CGIをダウンロードして設置したんですが、何故か管理者メンテナンスモードがエラーになります。
パスはもちろん合っていますし、パーミッションも確認しましたが間違っているところはないです。
どうかご教授願えませんでしょうか?
0959958
04/09/11 23:32:14ID:???0960nobodyさん
04/09/12 02:02:50ID:???それにスレ違い。
0961958
04/09/12 02:14:00ID:???吊ってきます
0962nobodyさん
04/09/22 14:51:15ID:???つけるように改造して使っています。
ログインすると俳句が200程表示され、各俳句に1-10点と未選択のradioボタンが
表示されます。はじめは未選択がcheckedとなっています。
今のところ、未選択が1つでもcheckedになっているとjavascriptでエラーを出し、
CGI内部でも、採点されてない俳句がありますとエラーを出すようにしています。
中には2時間もかけて採点したが、javascriptがonでなく、CGI側でエラーに
なり、ブラウザで戻るとタイムアウトで採点したものが全て消えるという
ことになってしまいます。
radioボタンをチェックしたものが消えない、又は記憶、復帰させる方法は
ないものでしょうか?
0963nobodyさん
04/09/22 15:15:47ID:???0964962
04/09/22 16:32:04ID:???例えば50個ずつをページ遷移させてながら評価していくという意味でよろしい
でしょうか?
ログインと言ってもパスワードが合っているかチェックしているだけなので、
セッションなど利用していません。
できれば、セッションを使わない方法があればありがたいです。
radioボタンの状態をどこか(クッキーなりサーバなりローカルPCなり)に記憶する
ことはできないという認識はあっていますでしょうか?
0965nobodyさん
04/09/22 17:15:46ID:???0966nobodyさん
04/09/22 19:23:55ID:???0967962
04/09/22 19:33:12ID:???200個中198個採点してあったのが送信されてきたら、次のページでエラーを表示し
残り2個だけを表示して入力させるという形ですよね?
すごく良さそうです。シンプルなのに気が付きませんでした。
0969962
04/09/22 22:13:10ID:???あー、できないですねー。
セッションまでいかず、ユーザ名と採点配分を記録した一時ファイルを作れば
できそうな気もします。セッションハイジャックとかはないと思うので。
やっぱりいい方法はないのですかねぇ。
# cookieがradioの状態を保持してくれればなぁ...
0972nobodyさん
04/09/23 01:44:04ID:???0973nobodyさん
04/09/23 01:57:46ID:???別に整合性がとれなかったりセキュアにする必要もないし。
0975nobodyさん
04/09/24 08:56:49ID:???0976nobodyさん
04/09/26 22:57:31ID:???このtたびc言語でカウンタを作ったんです
それで実装しようとWEB鯖のほうで実装しようとしたんですがうまくいきません
鯖側でのディレクトリ構造
〜(鯖アドレス)/www/(自分のhtml置き場所) からCGIを呼び出したいんですが
〜(鯖アドレス)/cgi/(cgiファイル置き場所) にCGIファイルを置かなければならないそうです
アドレスはhttp://(鯖アドレス)/~(自分ID)/(自分のhtml) というカンジです
この場合htmlからcgiを<--#exec >で呼び出すには、パスはどうしたらよいでしょうか
教えてください 鯖はLINUXです
0977nobodyさん
04/09/27 00:18:00ID:???http://pc5.2ch.net/test/read.cgi/hp/1087986364/793
http://pc5.2ch.net/test/read.cgi/hp/1020917380/710
糞マルチに教えることはないからカエレ
レス数が950を超えています。1000を超えると書き込みができなくなります。