C/C++ CGIスレッド
at PHP
[前50を表示]
200:nobodyさん
04/07/08 10:26 073/5w7j
そもそも今時CでCGIというのが不自然なんだから
変なのが湧いてくるのは仕方がない。
Cの入門者用に掲示板程度のサンプルを提供するのは意味があるかもしれんが
それ以上の高機能なものは大人しくperlかPHPで作ればいいんです。
CでCGIを開発出来ても誰も誉めてくれないし一銭にもならないのではないか?
,.. -―-- |
,.' ´ ``´  ̄ ``. .|
,. '´ , 、 .|
/ , l i ヽ \ .|
/ ./ /,' !ヽ ヽ ヽ. ヽ.|
/ / ./ l _⊥ヽ‐ヽ、'T''| |って書き込んだらC信者が何人か釣れるのカナ?
{{ | | レ'! ヽ\_\,,-,‐-.|
l l l | | |/Tハ |::f;;}||
!ヽN |、 | !` l:リ} ‐'‐'.|
`!ヽN ヽ" `ー .|
| | | `i - ..,.. '´''.|
! ! l,-┴/ハ |
ヽ N,. '´,.=El=、、/|
201:nobodyさん
04/07/08 13:45
【厨房のための煽り煽られ講座】
言い返せないけど負けは認めたくない
→ ( ´,_ゝ`)プッ
→ 無知白痴は黙ってろ
→ 知能障害をおこす
→ 出来たけどお前には教えない(プ ←>>152
→ 釣りを始める ←>>200(>>152)
202:nobodyさん
04/07/08 19:05
C++っぽく・・・
bool urldecode(std::string &s){ //省略。}
struct form_pair
{
string name;
string value;
};
istream &operator >>(istream &is,form_pair &fp)
{
string s;
getline(is,s,'&');
if(is.fail() || is.bad())
return is;
string::size_type pos = s.find('=');
if(pos == string::npos)
{
fp.name = s;
fp.value = "";
}
else
{
fp.name = s.substr(0,pos);
fp.value = s.substr(pos+1,s.length()-(pos+1));
}
if(!(urldecode(fp.name) && urldecode(fp.value)))
{
is.setstate(ios::failbit);
}
return is;
}
typedef istream_iterator<form_pair> urldecode_iterator;
203:nobodyさん
04/07/08 20:14
( ゚д゚)ポカーン
204:nobodyさん
04/07/08 21:03
このスレもうだめぽ゚・(ノД`)・゚・。
205:nobodyさん
04/07/09 13:27
なんか、もう、ぬるぽだな
206:nobodyさん
04/07/11 02:25
>>205
ガッ
207:名無しさん@そうだ選挙に行こう
04/07/11 17:20 8T5rEfNa
URLリンク(puppy.cute.tc)の、
ReportBoardのCGIは何処のCGIですか?
似たCGIでもいいです。
わかる人がいたら教えてください。
208:名無しさん@そうだ選挙に行こう
04/07/11 17:34
>>207
板違い
209:nobodyさん
04/07/18 23:47
保守
210:C言語がイイよね?
04/07/28 23:38 UZklF3eT
CでURLエンコードするコードを考えてマス
文字列の中で2バイト文字だけ判別して
判別した文字を16進数にキャストしてやれば
出来ると思うのですが、具体的なコードが浮んできません。
ウマイコードあったら参考にさせてください。
211:nobodyさん
04/07/29 05:58
>>210
ここ↓の
URLリンク(www-cms.phys.s.u-tokyo.ac.jp)
「FORMデータの処理」「漢字コードの処理」を参考にしてまつよ。
他にも検索すれば出てくると思う。
212:GROAD ◆4C1MajRa36
04/07/31 11:59
ぬるぽ
213:nobodyさん
04/08/01 14:53
>>212
ガッ
214:nobodyさん
04/08/04 20:03
C++( string 使いたいだけで )でCGIを組んでいましたが、
エラーログに
malformed header from script. Bad header=\x1f\x8b\b: /home/****/hoge.cgi
とでます。"Content-type: text/html; charset=EUC-JP\n"
を出力する前に何も出力関係の関数は使っていません。
マシン負荷などに関係なくでます。
だいたいは正常に動作していますが、時たま程度のエラーですが気になります。
原因が解る方が居たら、お力を御貸し願いたい。
apache1.3.27、 gcc 2.95.2.1です。
215:nobodyさん
04/08/05 18:01
ヘッダ後の改行は2回だがまさか…違うよなぁ。
216:nobodyさん
04/08/06 00:00
で、当然、"\x1f\x8b"が何なのかはぐぐってみたんだよな?
217:nobodyさん
04/08/08 15:16
>>214 の自己レス
gzipをpopenで出力してた。
mod_gzipにしたら解決しました。
218:nobodyさん
04/08/08 20:39
>>217
解決おめ
219:nobodyさん
04/08/11 23:44
Fast-CGIを利用すると、更に速くなるのかな。
220:nobodyさん
04/08/11 23:57
むしろ使わないとPHPとかmod_perlより遅い。
221:nobodyさん
04/08/12 14:52 PHf7JWmC
(・∀・)renice!
222:nobodyさん
04/08/14 15:00 inflZLdK
>>220
まじで?なんでえ?
223:nobodyさん
04/08/14 17:15
プロセス起動コスト
224:nobodyさん
04/08/14 21:20
modではないPerlとかRubyよりは早い
コードがへたれだとそれよりも遅い
225:nobodyさん
04/08/14 21:23
( ゚д゚)ポカーン
226:nobodyさん
04/08/14 21:28
言語の違いにおける速さの差は線形だけど、
アルゴリズムの差は簡単に対数以上になっちゃうからね
227:nobodyさん
04/08/14 21:41
回るのは遅いけど何か書くと即効でレスが返ってくるんだよなここ
見てる奴は多いのかな
228:nobodyさん
04/08/14 21:42
粘着がいるだけだろ
229:nobodyさん
04/08/15 11:26
HPでCのCGIを使いたいのですが、
コンパイル時のコマンドは
gcc -o test.cgi test.c
でよいのでしょうか?
230:nobodyさん
04/08/15 11:55
>>229
HP-UXだとccだろ。
231:nobodyさん
04/08/15 12:15
>>229-230
ワラタ
232:229
04/08/15 12:39
HPはホームページの略で使いましたが…紛らわしいですね。
ccは使えないんですが…
233:229
04/08/15 13:24
とりあえず
gcc -o test.cgi test.c
でコンパイルして
テストしてみたのですが、エラーが出てしまいます。
パーミッションは755でcgi-binディレクトリにも入っているけど
エラー500が出てしまいます。
また、ソースも問題ないと思うのですが…
#include <stdio.h>
int main(void)
{
printf("Content-type: text/html\n\n");
printf("Hello");
return 0;
}
原因は何でしょうか?
234:nobodyさん
04/08/15 13:35
( ゚д゚)ポカーン
235:nobodyさん
04/08/15 14:55
エラーメッセージも書いてない香具師に釣られるなよ
236:nobodyさん
04/08/15 14:59
>>235
Internal Server Errorと言う答えになんの意味があるというのだ。
237:nobodyさん
04/08/15 15:00
\n -> \r\n\r\n
238:nobodyさん
04/08/15 15:00
Windowsかよ
239:nobodyさん
04/08/15 15:02
サーバと違うOSでコンパイルしてるんじゃないのか?
テキストモードでうぷしたりしてるんじゃないのか?
sshで接続してスタンドアロンで動くかどうかまず確かめろよ。
あとは考えるのマンドクセ。
240:229
04/08/15 15:04
確かサーバー側はLINUXだったので違うOSですね。
241:nobodyさん
04/08/15 15:10
サーバーでコンパイルするかクロスコンパイルでぐぐってね。
ばいばい。
242:nobodyさん
04/08/15 16:05
>>240
で、コンパイルマシンはHP-UXなのか?
243:229
04/08/15 23:43
コンパイルマシンはWINDOWSです…
244:nobodyさん
04/08/16 00:08
窓のアプリケーションがLinuxで動くわけなかろーがこのバカチンがー
マジレスすると、お前には無理なので諦めろ
245:nobodyさん
04/08/16 00:14
おまいら釣られすぎ
246:nobodyさん
04/08/16 00:18
>>244
Perlと同じ感覚なんじゃないかと
247:229
04/08/16 00:28
もうちょっと勉強してからやります。
Perlと同じような物だと思ってました…
248:nobodyさん
04/08/16 06:26
>>247
>もうちょっと勉強してからやります。
>Perlと同じような物だと思ってました…
プロの釣り師だな
249:nobodyさん
04/08/20 02:03
>>229 >>247
マジ釣られしてやろう。スクリプト言語は文字ベースの互換性があるが、
コンパイル言語はバイナリベースでの互換性を確保しなければならん。
よって、互換プラットホーム間でなければ動かん。
もっと勉強汁。
250:nobodyさん
04/08/21 11:33
251:nobodyさん
04/08/21 12:59
WindowsでGCC使ってクロスコンパイルかけたのかもしれないじゃないか。
100%ないけど。
252:nobodyさん
04/08/21 16:06
gccを使っているのは確かだ。
253:nobodyさん
04/08/22 23:49 OO5ezOdW
でもいかりや長介が逝っちゃったことに
変わりはない。
無念!
254:nobodyさん
04/08/23 09:54
>>253
コスモを感じる
255:nobodyさん
04/08/24 12:54
UTF-8の掲示板作ったら、出力サイズが2chに比べて2〜3倍になったorz
2chのhtmlを保存してUTF-8に変換してもまだ1.5倍。
マークアップしつこすぎたかな…。
<div class="res">
<div class="data">
<h3 class="name"><span class="number">5</span> <span class="label">投稿者</span> <a href="mailto:tokimushi@yahoo.co.jp" title="この投稿者にメールを送る">名前</a></h3>
<ul>
<li class="time"><span class="label">投稿時刻</span> 2004年08月07日(土)17時54分04秒</li>
<li class="url"><a href="URLリンク(www.w3.org)" title="この投稿者のウェブサイトへ">HOME</a></li>
</ul>
</div>
<div class="comment c3 kuma"><p>なんだかんだ</p></div>
</div>
256:255
04/08/24 12:56
誤爆すいません
257:nobodyさん
04/08/24 13:22
>>255
UTF-8の掲示板は重いから嫌
258:nobodyさん
04/08/30 09:03
259:nobodyさん
04/09/07 13:19
260:nobodyさん
04/09/07 22:17
ネタがありませんなあ
261:nobodyさん
04/09/08 00:54
こっちは微妙に伸びとる
スレリンク(php板)
262:nobodyさん
04/09/08 01:07
スレリンク(php板)
263:nobodyさん
04/09/26 01:20:15
遅レス
>>255
うほ、いいdiv厨
264:nobodyさん
04/09/27 13:16:42
カウンタを作ってるのですが
日にちがかわったら今日のカウントを昨日のカウントへコピーして
今日のカウントを初期化するIF分がわかりません
教えてください
265:nobodyさん
04/09/27 14:56:10
( ゚,_ゝ゚)バカジャネーノ
266:nobodyさん
04/09/27 16:58:41
>>264
お前プログラム向いてないよ。サンプル漁る位しれ。
267:nobodyさん
04/09/27 21:25:52 yrxaF59A
釣れた!初めてなのに釣れちゃった!(AA略
268:nobodyさん
04/09/27 23:08:37
こんな活きの無い魚でそんなに喜ぶなよ
269:nobodyさん
04/10/01 15:04:26
活きの無い
( ´,_ゝ`)プッ
270:nobodyさん
04/10/01 16:56:12
4日も経ってからsageで煽るなって
271:nobodyさん
04/10/01 17:46:36 qscnRJvR
あのーPHPがアパッチのモジュールで動作するから早いって聞いたんですよ・・・
Cで書いてもCGIとして実行してたらプロセスとして実行するから結構負荷がかかっちゃいますかね・・・
でもCGI使わずにモジュールで動作するようにすればCの方が早いんですかね・・・
PHPの開発は日本人が多いから日本国内ではPHPの方が早いってことになってるんですかね・・・
それともベンチマークテストやったら実際に早いんすかね・・・
そこらへんをすっきり説明してくださる方おりませんか?
272:nobodyさん
04/10/01 17:48:41
なんか不勉強で人頼みな奴ほど速度を気にするように思うんだけど、
これってマーフィーの法則ですか。
273:nobodyさん
04/10/01 17:52:03 qscnRJvR
はいーわたしはマーフィーの法則にしたがって行動しております。
補足なんですけど〜CGIもモジュールですよね〜
PHPのそれはどんなモジュールなんですかね〜
PHPより高速になるCGIモジュールってありますかあ?
274:nobodyさん
04/10/01 17:53:56
裏が取れないという点ではそうかも
背景としては、本来速度を気にする人ってのはハードなシステムを組まされてる人なんだけど、
この手の輩は四六時中ボトルネックを探してるので、何すれば早くなるかとか、早いってのは
どういうことかとか正攻法で理解してて、あんま質問を垂れ流さないってのがあるんだと思う
ところで最近はチューンするにしてもApacheのモジュールにしちゃうこと減りましたね
ってこのネタもスレ違いかorz
275:nobodyさん
04/10/01 17:54:54
>273
うっぜ
死ねカス
276:nobodyさん
04/10/01 18:04:01 qscnRJvR
あれへんだなあ・・
何言ってるかわかんなくなってきちゃった・・・・
でもさあPHPってHTMLに記述するスクリプト言語ですよねェ〜
それをパースして実行するんですからあきらかにコンパイルしたCの
プログラムの方が早そうに思えるんですけどねエエ・・・・
277:nobodyさん
04/10/01 18:07:17 qscnRJvR
>>275
ウゼェ じゃないんですかああ?
うっぜってどこの方言ですかアア??
やぱありCGIでPHPを使った方がいいんですかねえ・・・
どうなんですかねええ
優秀なみなさ〜〜ん
278:nobodyさん
04/10/01 18:09:14
phpをネタに持ってきた時点で脳が古い。
センスもなし。
279:nobodyさん
04/10/01 18:18:02 qscnRJvR
>>272
あ〜ちなみにおくれつっこみですけどお〜〜
それはマーフィーの法則とはいいませんよ〜
それは272さんとその仲間達(272本人かも・・)の法則ですよ〜〜
それとも次ぎのマーフィーの法則に載るんですかあ〜〜
それともマーフィーの法則っていっとけばカッコイイと思ったんですかあ〜
マーフィーの法則をネタに持ってきた時点で脳が古いですよ〜
扇子あげましょうか?
280:nobodyさん
04/10/01 18:23:01
>>274
2chでのやりとりなんてほとんどマーフィーの法則に嵌ってるだろ。
281:nobodyさん
04/10/01 18:29:10
>>278
昔はPHPなら速度比較と処理負荷だけで飯五杯はいけたんだが・・・
もはや残ってる部分といえばコードキャッシュネタくらいか
Cでおかずになるネタは・・・このスレの伸びが何かを語っているな・・・
282:nobodyさん
04/10/01 18:31:49
>>280
それ自体もそうでつか
283:nobodyさん
04/10/01 18:35:57
たいていがマーフィーの法則に当てはまることが法則ってのじゃ利用価値ないじゃん。
どうでもいいけど昔、マ板かどっかにCのコーディングにありがちな「マーCの法則」スレとか無かったっけ。
田代がまだ只の人だったころの話なのだが。
284:nobodyさん
04/10/01 18:48:52
>>283
そりゃ田代本人が出した本のタイトルじゃないのかw
PHPは旬過ぎたけど user ml がまだまだアツイぜ
285:nobodyさん
04/10/01 19:01:49
スレリンク(news板)
反応が薄いな
286:nobodyさん
04/10/19 10:52:37 eOcRyqWU
Apache2のWinネイティブなCGIでActiveXEXEと
やりとりってできないんでしょうか?
CGIを普通に起動する分にはちゃんとできてるのですが・・・
いちおうApacheのサービスは「デスクトップとの対話を許可」してあります
287:nobodyさん
04/10/21 10:38:39 GNUlgmPe
cとphp
おれはcの方が早いと信じたい!
288:nobodyさん
04/10/21 23:49:17
>>286
なにがやりたいのかいまいち不明
289:nobodyさん
04/10/24 21:41:04
アルゴリズムによってはCの方が早くなるんじゃないだろうか
url文字列のほうは良いんだがmultipart/form-dataのクラスをどういう構造にしたら分りやすいかちょっと悩む
ただの文字列はoperator[]でファイルのときはファイルの情報を持ったオブジェクトを返すでいいかな
290:nobodyさん
04/10/24 21:57:41
車輪の再開発してないで既存のライブラリ使えよ
291:nobodyさん
04/10/27 11:54:00
単純で良い物が無い
292:nobodyさん
04/10/27 23:05:12
単純でよければ自作すればいいじゃーん
293:nobodyさん
04/10/27 23:06:32
だからしてるんじゃないか
294:nobodyさん
04/10/28 06:15:52
このスレはドリフだな
295:nobodyさん
04/10/30 02:13:13
>>289
自分が使いやすい/使いたいように作れば、それで良いと思うよ
296:nobodyさん
04/10/30 02:26:46
C++でCGI作ろうと思ったけど全然ライブラリが揃って無くて駄目だね。
Perlならcpanでサクサク拾えるのに。
297:nobodyさん
04/11/02 10:30:42
>>296
Cのライブラリを使えばいいじゃん
298:nobodyさん
04/11/30 12:32:26 q4147YdE
レスポンスがあるかわかりませんが..
POSTで受け取った文字が化けるのでiconv使って変換をと思ったんですが
iconv_t icv_hook;
char *inp;
char *outp;
size_t ret_val;
size_t in_buf_left;
memset(out_buf, 0, BUFSIZ);
in_buf_left = strlen(in_buf);
out_buf_left = BUFSIZ;
ret_val = iconv(icv_hook, inp, in_buf_left, outp, out_buf_left);
警告: 互換性のないポインタ型からの引数 2 個の `iconv' を渡しますです
警告: 引数 3 個の `iconv' を渡しますにより、キャストなしで整数からポインタを作りました
警告: 互換性のないポインタ型からの引数 4 個の `iconv' を渡しますです
警告: 引数 5 個の `iconv' を渡しますにより、キャストなしで整数からポインタを作りました
URLリンク(docs.sun.com)
これの通りにしたのに
どこがおかしいのでしょうか?
299:nobodyさん
04/11/30 13:42:39
>>298
char *とchar **は違う。
300:nobodyさん
04/11/30 19:18:07 q4147YdE
どうもありがとうございます。
char *とchar **は違うとはわかりますが、ではどこをどう直せばよいのでしょうか?
宣言時にchar**とやったり、キャストを入れてみてもやはり警告が出ます。
コンパイルは通りますが、実行時に
iconv()を呼ぶときに必ず
「セグメンテーション違反です
のエラーが出ます
301:nobodyさん
04/11/30 19:56:28
>>300
const char *inp;
char *outp;
(中略)
ret_val = iconv(icv_hook, &inp, in_buf_left, &outp, out_buf_left);
302:nobodyさん
04/11/30 20:09:48
>>301
char *inp;
char *outp;
ret_val = iconv(icv_hook, &inp, &in_buf_left, &outp, &out_buf_left);
なぜか指示どうりではだめでしたがこうやったら正しく実行できたので
とりあえず報告します。
303:nobodyさん
04/11/30 20:20:55
>>302
初めて使う関数は、きっちりmanを見たほうがいいよ。
副作用のこともあるし。
URLリンク(www.linux.or.jp)
これはLinuxのだけど。
304:nobodyさん
04/12/03 15:18:44
C/C++ CGIで、最初に1回だけユーザ認証をやって、
その後同一の実行ファイル上で、ログイン状態を維持する
これを実現するための考え方と、参考になるソースを教えてください。
305:nobodyさん
04/12/03 22:30:06
>>304
同一の実行ファイル上ってのがよくわからない。
言葉通りに解釈すると、Cookieにそのファイルのpathを設定すればいいだけだけど。
306:nobodyさん
04/12/04 00:34:37
PHPのセッション管理のような仕組みを作っちゃえば楽なんだろうけど、作るのは楽じゃない。
307:nobodyさん
04/12/05 06:35:51
>>304
>>305に1票、もしオレがやるなら、やっぱ Cookie使う。
セッション管理より楽だし。
厳密性を求めるのは厳しいけど、ユーザ認証が目的なら、
同じブラウザを使ったかどうか分かる Cookieは充分有効な手段でしょ。
308:nobodyさん
04/12/05 06:40:37 4YEMHaP5
>>304
ソースくらい検索してほしいが、オレのブックマークにこんなのが入っていたので参考までに。
URLリンク(sometime.minidns.net)
309:nobodyさん
04/12/05 06:41:11
sageるつもりだったがついうっかり・・・ OTL
310:305
04/12/05 10:05:05
> C/C++ CGIで、最初に1回だけユーザ認証をやって、
> その後同一の実行ファイル上で、ログイン状態を維持する
通常、CGIプログラムはリクエスト毎に終了してしまうので、
プログラム内の変数にログイン状態のデータを維持する事は出来ない。
そこで、データの永続化。
具体的には、ファイル、データベース、共有メモリでもなんでもいいので、
CGIプログラムが終了してもデータが残るような媒体にデータを記録する事になる。
その際、Process IDやIP address等からユニークなIDを作成し、
このIDをキーとしてログイン状態などの情報を記録する。
同時に、このIDをセッションIDとしてブラウザのCookieに設定させることで、
認証を済ませたユーザかどうかを確認する。これがセッション管理。
一度認証を済ませたあとは、
ブラウザが送ってくるCookie(CGIの場合は環境変数などに設定される)
のセッションIDと一致するキーのデータを引き出し、そのログイン状態を確認すれば良い。
>>306
簡単なセッション管理の実装で、
セッション毎に./session/$SESSION_ID$ ファイルを作成するとかはどうだろう。
>>307
>>305は、一応、セッション管理を前提に書いてました。
"同じ実行ファイルの上で"が同一URL上でという意味ならCookieのpath設定だけで済むかと思ったので。
311:nobodyさん
04/12/05 11:23:18
URLリンク(sometime.minidns.net)
312:nobodyさん
04/12/05 16:32:23
普通にクッキーデコーダクラス作ればいいだけの話じゃん。
おいらはurl_decodeクラスとそこからget,post,cookieの継承クラス作ったけど。
データ構造は自作二分木
313:nobodyさん
04/12/05 17:12:51
そういう手続き型のはモジュールでやったほうがいいと思われ
314:nobodyさん
04/12/05 17:17:25
>>313
そうか?
ヘンテコな抽象化だなとは思うが、リクエストとかユーザステートみたいな
他の設計クラスとかち合わなきゃどうでもよくね。
クラス=メソッドってOOとしてはNGだけど、Cppなんだし。
315:nobodyさん
04/12/05 17:28:03
C++はオブジェクトをとるかデータ構造をとるかでよく迷わされる
Cでやることも考えるなら、そう迷うこともないけど
316:nobodyさん
04/12/05 17:30:13
おいおいLispスレが立ったぞ。ドンケツ脱出だな。
317:nobodyさん
04/12/05 18:46:29
>>316
ACLかよw
そりゃ間違いなく脱出だが
318:304
04/12/07 09:58:50
アドバイスありがとうございます。
色々試してみます。
319:nobodyさん
04/12/25 01:16:54
みんなUTFとか使ってる?
320:nobodyさん
05/01/19 15:43:33
((void *)0)
321:nobodyさん
05/01/21 13:43:21 Z6ezIjZ/
ばかばかしい質問かもしれないんですが
bluequartz上でC/C++ cgiがどうして動かせなくて困ってます。
gcc バージョン 3.3.2 20031022 (Red Hat Linux 3.3.2-1)
もちろんapacheは動いています Server version: Apache/2.0.51
コンパイルしたファイル(xxx.cgi)はコマンドラインからは実行できるのですが、
これをブラウザから見ようとすると、 「xxx.cgi ファイルを保存しますか?」
となってしまいます。
どこがおかしいのでしょうか
何か見落としているかも知れないので指摘いただきたいです
322:nobodyさん
05/01/21 15:52:04
>>321
content-typeが変なのになってるんじゃないでしょうか。
323:321
05/01/21 16:58:47
普通に
Content-type: text/html
です。
テスト用に時刻表示するやつを作ってみましたが
以下のテキストを吐き出すだけです。
Content-type: text/html
<html>
Fri Jan 21 16:53:21 2005
</html>
これもブラウザから見ようとすると
やっぱりファイルを保存しますか?となってます
324:nobodyさん
05/01/21 17:39:21
>>323
保存したファイルの中身は?
325:321
05/01/21 18:10:27
>>324
保存したファイルの中身を見てみましたが実行用のバイナリファイル
そのものだと思います。
出力結果とかが保存されてるわけではない(と思う)です
326:nobodyさん
05/01/21 18:44:53
AddHandlerは?
327:321
05/01/21 18:56:11
今のところこうなってます
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
.....
AddHandler cgi-script .cgi
AddHandler cgi-script .pl
328:nobodyさん
05/01/21 22:24:50
>>321
どっちかと言うと C/C++ に関する問題ではないような。
だってコマンドラインから実効出来るという事は、「Cプログラム」としては正しいわけだろ。
たぶん Apache のディレクティブがきちんと設定されてないのでは?
CGI 実行ディレクトリについて、Options +ExecCGI とかやってる?
ちなみにウチのディレクティブは、CGI 関連はこんな感じ(Win32/Apache 2.0)。
LoadModule cgi_module modules/mod_cgi.so
ScriptAlias /cgi-bin/ 実際のディレクトリ
<Directory "実際のディレクトリ">
AllowOverride None
Options +ExecCGI
Order Allow,deny
Allow from all
</Directory>
AddHandler cgi-script .cgi .pl
設定してからだいぶ経つので細かい意味は忘れてしまった・・・ウチも色んなトコ見て
コピペを繰り返したので、検索しまくってガンガッてほしい。
329:nobodyさん
05/01/22 07:40:07
>>327
Perl CGIは実行できてるんだよね。
330:321
05/01/22 11:24:45
すみません
今確認してみたらPerlCGIも実行できてませんでした...
331:nobodyさん
05/01/22 13:33:32
どこに置いて実行しようとしているんだ?
/cgi-bin/ならデフォルトでAliasが設定されているから>>328のように
Options +ExecCGIを追加しないとならないし。
俺は/cgi-bin/のAliasをコメントアウトして全ディレクトリで使えるようにしてある。
DocumentRoot "実際のディレクトリ"
<Directory "実際のディレクトリ">
Options FollowSymLinks MultiViews ExecCGI Includes
AllowOverride ほげほげ
Order allow,deny
Allow from all
</Directory>
AddHandler cgi-script .cgi .pl
332:nobodyさん
05/01/22 13:34:34
あるいはユーザディレクトリなら別の部分で設定しなきゃならんよ。
333:nobodyさん
05/01/25 07:56:51 hWOf15Pd
>>304さんに便乗して質問です。
ログイン情報を記録する方法はわかったんですが、
クライアントが適切なログオフ処理をしなかったらセッション管理用のファイルは残りますよね?
例えば、クライアントがブラウザを閉じたらサーバ側で勝手にログオフ処理、なんてことは出来ないでしょうか?
334:nobodyさん
05/01/25 08:11:21
絶対無理っしょ。
時間制限でタイムアウトするくらい。
335:nobodyさん
05/01/25 09:11:15
普通は>>334の方法でやるね。
336:333
05/01/25 10:01:05
わかりました。一時間リクエストがなかったらログオフするようにしたいと思います。
ありがとうございました。
337:nobodyさん
05/01/25 16:55:53
クッキー使えばええやん
338:nobodyさん
05/01/26 09:08:53
>>337
どうやって?
クッキーつかってもクライアントがブラウザ閉じたかなんてサーバー側では
判らんと思うが?
339:nobodyさん
05/01/26 15:10:15
有効期限を過去に設定すればブラウザを終了させた時点でクッキーが消える。
340:nobodyさん
05/01/26 15:17:37
>>339
だから?
341:nobodyさん
05/01/26 15:48:12
>>340
少しは頭を働かせたら?
342:nobodyさん
05/01/26 16:06:10
>>341
お前が一番頭が働いていないようだが
343:nobodyさん
05/01/26 16:11:38 /NT/JEVZ
>>339
クッキーは消えてもサーバのセッションファイルは残るんだよ。
それをどうすればいいかを考えてるの。
ちなみにPHPでは
session.gc_maxlifetime = 1440
とかで時間を指定してガベージコレクションしてる。
344:nobodyさん
05/01/26 16:26:34
>>339
消えても次にアクセスがあった時にクッキーがあるかどうかの
判断に利用できる程度だろ。
そういう話をしてるんじゃないの。
345:nobodyさん
05/01/26 16:43:31
337が言っているのはセッションを使わずに、という意味だと思うが。
346:nobodyさん
05/01/26 17:01:46
>>345
そうか
>>337言葉が足りないんだよ
347:nobodyさん
05/01/26 17:07:30
>>345
だとしても的外れには違いない。
348:nobodyさん
05/01/26 17:10:17
>>346
確かに。
349:333
05/01/27 00:23:16
なんか種を蒔いちゃったみたいですいません…
自分としてはユーザ毎にデータファイルを必要とするプログラム書こうと思うんで
やっぱりタイムアウト処理になると思います
350:nobodyさん
05/01/27 12:24:39
当分はこのスレ下がるばかりか・・
351:nobodyさん
05/01/27 13:55:33
てかもはやCとかC++の話じゃなくてCGI一般の話ジャン
352:nobodyさん
05/01/29 01:15:48
すっかりCGIの話なのでアレだが、
Flash埋め込んでSocket通信させるってのはどうよ。
>ブラウザを閉じたらチェック
353:nobodyさん
05/02/15 23:46:08
cgiでscanf使えますか?
354:nobodyさん
05/02/17 07:25:27 27dZ6TGB
質問させて下さい。
フォームから受け取った値をgetcharで読み込んでいるんですが、
「 , 」が%2Cになってしまいます。どうすればいいでしょうか?
355:nobodyさん
05/02/17 08:36:36
>>354
%2Cを , に変換すればいい
356:354
05/02/17 11:16:54
>>355
ありがとうございました。
URLエンコードという言葉を今日はじめて知りました。。。
357:nobodyさん
05/02/18 23:50:55
>>353
標準入力に対するものだから、使える事は使えると思う。
が、入力書式が CGI とは合致しないわけだから、>>354がトライしているように、
getchar とか使って URL エンコードを自前 or ライブラリでやる方が
モアベターだと思う。
358:nobodyさん
05/02/20 17:03:47
scanfなんてBOF問題バリバリの関数を使うなよ…
359:nobodyさん
05/02/20 20:42:33
ろくに知識がない奴ほど↑みたいな書き込みをするね。
360:nobodyさん
05/02/21 11:04:26
>>358
問題を理解した上で、自分の目的を満たすにはこれが良い、と思ったんなら、
どんどん使えば良い。と思うぞ。
包丁なんて怪我しやすい道具を使うなよ…
なんて言わないべ?フードプロセッサー使ったって良いんだけどさw
361:nobodyさん
05/04/23 18:11:42
質問です
今までPerl,PHP等やってきて最近C言語でCGIスクリプト作成をはじめましたが、排他処理は一般的にはどの手法を使いますか?
やはりフォルダを作成する方法ですか?
362:nobodyさん
05/04/24 21:13:21 WkqhPVlv
VCでHelloWorldのテストCGIを作ったところ、111kBでした。
同じくLSICでコンパイルすると17kBでした。(500で動きませんでしたが。)
なぜこんなにサイズの差があるのですか?もっと減らす方法はありませんか?
363:nobodyさん
05/04/25 00:23:01
>>362
MS-DOSとWin32の違い
364:nobodyさん
05/04/27 01:22:34
>>362
VC++のほうがデバッグモードになってないか?
365:nobodyさん
05/04/27 10:44:49
>>362
やってみたら
Debugで160k
Releaseで40k
366:362
05/04/27 21:39:50
うわ、本当だ…
お騒がせしました
367:nobodyさん
05/05/19 21:48:26 GAjOQJM0
今晩は、スレで度々話題になってるようですが、いまいちわからないので質問させてください。画像ファイルの質問です。
<input type="file">でjpegやGIF、BMP画像をpostで送信した場合、標準入力に他の文字列等と同様name=に画像ファイルデータ
が送られているのでしょうか?その画像ファイルはどの様に処理したらいいのでしょうか?ご教授ください
368:nobodyさん
05/05/19 22:14:38 EjA+9pug
URLリンク(z57.2)<)?-121-74.?pp.??kw?k.ne.?pうへへ。
369:nobodyさん
05/05/20 10:35:30
>>367
CのCGIライブラリでも使え
検索したらあるはず
370:367
05/05/20 15:58:18 UC8INN3X
>>369
CGI用のライブラリーってありますけど製作者のあくがつよすぎて理解するのが大変なんですよね・・・
なんで自分で関数から作った方がいいと思ってるんですよ・・・勉強にもなるし。
371:nobodyさん
05/05/20 16:16:48
>>370
だから、そういったライブラリがあるだろ。
アクが強いとか関係無しに、どういう仕組みかが分かってないから
>>367のような質問をしたんでしょ?
既に動いてるライブラリのソースコードを読めば、そこに答えなりヒントがあるでしょ。
それを応用して自作すればいい。
アクが強いとか理解が大変とか言ってるが、結局、頭悪いだけじゃん。
372:nobodyさん
05/05/20 16:23:25
>>367
URLリンク(www.gnu.org)
つかっとけ。
書き込み見る限り、君のおつむじゃこれよりもまともなのを作るのは無理。
373:nobodyさん
05/05/20 17:27:26
>>367
URLリンク(www.boutell.com)
GDライブラリ開発してるところ
2.0からファイルアップロードに対応してる
374:367
05/05/21 07:08:21
やれやれ・・
コード読め?
読むような質問じゃあないだろうに。あほ
コード読め、コード読め、って猿の一つ覚えのような回答しかできないんだったらだまってろよ。
そのほうが百倍有益w
375:nobodyさん
05/05/21 10:33:25
aso
376:nobodyさん
05/05/21 16:05:50
>>374
読まなくていいから、パクれ。
377:nobodyさん
05/05/21 17:00:57
だれも「読め」とは言ってないが。
日本語は読めて、理解できるよね?理解の方がおぼつかないのかな?
そういうのは十代のうちになんとかしといたほうが良いよ。本当に。
378:nobodyさん
05/06/02 04:47:54 tNFRcCbR
getenv("PATH_INFO")で文字列取る時に
事前に長さが分からないから異常に長いURLでアクセスされたらやばくない?
と思うんだけど。
このPATH_INFOの文字列のポインタが分かればstrlenで長さを求めて弾くなり必要量mallocするなり出来るけど、
値しか分からないよね?
普通はどうやってこの問題を回避するの?
379:nobodyさん
05/06/02 07:21:13
getenvを使ったことがある人からは
そんな疑問は出ないはずだが
380:nobodyさん
05/07/24 09:53:58 FFgeh8au
話題がないお
381:nobodyさん
05/07/25 08:35:49
>>378
亀さんのレスです
Apache様が長いURLは規制してくれています
382:nobodyさん
05/07/25 23:47:14 bB/wQjJG
自分のサイトがF5アタックにめちゃくちゃ弱いことに気づいた。
セッション管理のためにページを開くたびにMySQLに問い合わせに行ってるのですが、もっと良い方法があるのでしょうか?
383:nobodyさん
05/07/26 07:44:25
防御コード書けばいいじゃん。
384:nobodyさん
05/07/26 12:18:15
>>382
CでMySQLへの問い合わせってどうやるの?
出来るなら今度やってみよ
385:nobodyさん
05/07/26 15:24:03
>>384
MySQL純正の接続ライブラリを利用するなら、
それをラップしてる他の言語で慣れてる人ならアホ程簡単。
386:nobodyさん
05/07/26 20:27:09
>>384
このへんだろうね。
URLリンク(www.softagency.co.jp)
URLリンク(dev.mysql.com)
私もCで接続したこと無いけど。
387:nobodyさん
05/07/27 15:50:58
>Cで接続
(;´Д`)ハァハァ
388:nobodyさん
05/07/28 07:20:11
ボキもSegmentation faultで泣かされますた
389:nobodyさん
05/08/25 07:40:55 URNXAJj0
以下のプログラムが思惑通りの挙動を示してくれません。
C言語でのCGIでは、forkは使えないのでしょうか?
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>
int main(void)
{
pid_t pid;
int status;
printf("Content-type: text/html\n\n");
printf("<html>\n");
printf("<head>\n");
printf("<title>test</title>\n");
printf("</head>\n");
printf("<body>\n");
pid = fork();
if(pid == 0){
printf("child<br>\n");
}
else{
wait(&status);
printf("parent<br>\n");
}
return 0;
}
390:nobodyさん
05/08/25 07:43:44 URNXAJj0
思惑とは、CGI実行時のHTMLソースで、
<html>
<head>
<title>show sFlow statistics</title>
</head>
<body>
child<br>
parent<br>
と、なってほしいのに、実際実行すると、
<html>
<head>
<title>show sFlow statistics</title>
</head>
<body>
child<br>
Content-type: text/html
<html>
<head>
<title>show sFlow statistics</title>
</head>
<body>
parent<br>
と、なってしまっております。
391:nobodyさん
05/08/25 08:19:05
stdioのバッファリング
392:nobodyさん
05/08/25 13:08:38 URNXAJj0
>>391
なるほど!
ありがとうございます。
fflushで、解決いたしました。
393:nobodyさん
05/08/26 20:14:39 Tl6OQEOB
最近C/C++CGIって廃れてるよな…
394:nobodyさん
05/08/26 20:16:53
あえて言おう。
廃 れ て な い 時 が あ っ た の か ?
395:nobodyさん
05/08/26 22:30:48 phIbl7Mf
■■■■■■■■■■■■■■■■■■■■■■
VIPの馬鹿大学生が市役所に内定!「俺は神」「彼女二人いる」などDQN発言全開。
その後、どの市役所か特定されたような書き込みがあり、本人逃亡!!w
地元市役所に内定した俺様は神!
スレリンク(news4vip板)l50
その後、公務員板にも、本人を特定するためのスレが立つww
【市役所合格】こいつ誰だかわかる?
スレリンク(koumu板)l50
調子に乗った馬鹿VIPPERの哀れな運命、見るだけでも見に来ない?w
■■■■■■■■■■■■■■■■■■■■■■
396:nobodyさん
05/09/03 14:14:39
>>393
やっぱライブラリ不足が原因だろう。
cgiccってでかい割にほとんどなんも出来ないし
397:nobodyさん
05/09/22 00:50:59 Lo9GY17f
2chのCGIはCで作られている。
証拠
↓
スレリンク(tech板)
398:nobodyさん
05/09/22 01:33:37
わけあって初めてC++でCGI組んでみた(普段はPHPとか)
複雑な構造のデータを処理する場合とか、やっぱり速いね。
399:nobodyさん
05/09/22 07:44:47
>>397
bbs.cgiはPerlだよ。mod_perlとかfastcgiとか検討されたけど今はSpeedyCGI使ってる。
read.cgiは2ちゃん閉鎖の危機のときにCのソースが公開されてgzip圧縮が追加された。
400:nobodyさん
05/09/22 13:25:27
Web に向いていないというのはあるけど,Web を趣味でやっている人間の技術
レベルが低いというのも原因の一つでは?
# 前に read.cgi のソース見て、そのあまりの汚さに絶句したことあり
401:nobodyさん
05/09/22 16:48:47
はいはいすごすすごす
402:nobodyさん
05/09/22 16:50:45 WZseHGJ/
ついでにage
403:nobodyさん
05/09/22 17:33:25
1つのバイナリで使えるOSが限られるしね。
どうしてもインタプリタ型になってしまう罠。
404:nobodyさん
05/09/23 00:29:42
>>400
2002年ぐらいに一度見たのは、確かにアレだったけど、
その後にちらっと見たのは、新しく書き下ろされたように結構綺麗だった。
今はどうなってるんだろう。
405:nobodyさん
05/09/23 14:20:20
まだソースは転がってるのか!?
406:nobodyさん
05/09/23 15:38:07
今のはもう無理だと思うけど、
古いのは、ネットのどっかに転がってるかも。
407:nobodyさん
05/09/23 16:23:56
ここになんか沢山出てる
URLリンク(66.102.7.104)
408:nobodyさん
05/09/23 17:29:18
URLリンク(sunos.saita.ma)
409:nobodyさん
05/09/27 19:53:24
読みにくい…
410:javaさん
05/10/06 01:36:36 9/nHwpYz
CGIではなくてJavaでいうServletコンテナのようなものとVelocityのようなテンプレートエンジンを探しています
ご存知ないですか?
411:nobodyさん
05/11/20 17:08:19 Va/OuDM7
下がりすぎ
412:nobodyさん
05/11/21 02:40:39 /C8jg8zb
C言語のプログラム作成はどこですか?
413:nobodyさん
05/11/21 02:50:55
>>412
日本語がわからんが単にC言語のこと聞きたいならプログラム板
414:nobodyさん
05/11/21 21:22:28
C言語でCGIを動かす利点は何ですか?
415:nobodyさん
05/11/21 21:45:27
>>414
利点:既にコンパイルされてるから実行が早い。
欠点:一から作るのは死ぬほど面倒。
416:nobodyさん
05/11/26 02:09:45
c++ならそんな面倒でもない
417:nobodyさん
05/11/26 12:19:56 lGwtghir
今日からC始めるぞage
418:nobodyさん
05/11/28 21:19:30
挫折した
419:nobodyさん
05/11/29 07:09:03
はやっ
420:nobodyさん
05/12/13 02:50:45 0HjM7Fv9
windowsでのcgiの扱いの事なのですが、C言語で.作った.exeの拡張子を.cgiに変えると途端に上手く動作しなくなります。
win上ではcgiの拡張子は.exe一択になってしまうのでしょうか?
自分だけアドレスがhttp://〜/cgibin/testing.exeになるのが恥ずかしいんですけど。。
421:nobodyさん
05/12/13 03:28:57
>>420
httpdに何使ってるのか知らんがハンドラ変えればいいだけの話じゃないのか
422:nobodyさん
05/12/13 21:01:21
普通 .cgi でもうまく動作するはずだけど……
というかネゴシエートすれ。 .exe も .cgi も恥ずかしいことに代わりはないから。
423:nobodyさん
05/12/13 22:33:44
.pdfとかにすれば良い。
424:420
05/12/14 19:01:11
>>421
>>422
>>423
URLの変換にも色々あるようで、参考になりました
レス有難うございました
425:nobodyさん
05/12/14 21:45:05
カウンタ作るのも一苦労ですたいorz
426:nobodyさん
05/12/24 00:54:12
ファイルのアップロード処理で下記の内容を参考にしているのですが
どなたかご存知でしたら、お教え下さい。
URLリンク(www-cms.phys.s.u-tokyo.ac.jp)
ブラウザがバイナリファイルを送信した場合に、マルチパートデータに
含まれるContent-Type:はブラウザのMIME判定に
依存されると思いますが、その後の改行した後に送信するデータって
バイナリファイルのデータがそのままで送信されてくるんでしょうか?
上記の解説だと、「ファイル内容がほぼそのまま置かれ」って
記述されているのですが・・・何らかの手順(BASE64とか)で
エンコードされていたりするのでしょうか。
427:nobodyさん
05/12/27 16:08:10
>>426
画像なんかはバイナリのまま送られてくるね。
一応rfc2388,rfc2046を参照しておくといいかも。
428:nobodyさん
06/01/13 16:47:51 sdM07NCL
あけましておめでとうございます。
429:nobodyさん
06/01/13 22:23:10 itKm2IBl
ここにもオススメCGIが載ってますよ!
URLリンク(my-hero.versus.jp)
430:nobodyさん
06/03/19 09:20:21
この板には人がいないようですが...
C++でサーブレットコンテナ作ってみました。
まだまだ、おもちゃのみたいなものですが...
URLリンク(www.j2cc.org)
431:430
06/03/19 23:54:56
私用でageすいません。
どこに晒せば良いかもわからずです。(ならば晒すなと言わないで)
板違いorスレ違いであれば良い場所教えて下さい。
432:nobodyさん
06/03/19 23:59:32
ム板の方が盛り上がるかも。
ム板は特定スレしか見てないから、分からないけど…。
433:430
06/03/20 01:18:15
ムですか...了解です。
明日にでもム板にマルチポストで叩かれに言ってみます。
434:nobodyさん
06/04/13 19:42:23
保守
435:http:// 202-71-90-222.ap-w01.canvas.ne.jp.2ch.net/
06/04/13 23:31:32
guest guest
436:nobodyさん
06/04/18 17:41:56 6Kyc62WF
板違いと言われたのでこちらでも質問させてください。
クライアントプログラムとCGIとの間で通信をやりたいと思っています。
クライアントはソケット通信で最初にポート80(Apache)にconnectするようになっています。
この状態でクライアント側で試しにCGIをシェル上で走らせてみると
CGIに書いてあるHTMLは表示されるのですがscanfがまったく無視された形で戻ってきます。
自分としてはCGI上に書いてあるscanfで処理が1回止まり、1度文字の入力ができれば
いいなぁと考えていたのですが、この考え方は間違っているでしょうか。
正しいか間違っているか、また間違っているならば後学の為にも正しい処理の概要を
教えて頂ければ幸いです。
言語はC言語、サーバーはRedHatです。よろしくお願いします。
437:nobodyさん
06/04/19 00:35:56
>>436
間違ってる。CGIへの入力はGETまたはPOSTしか無い。
つかCGIをかなり大幅に勘違いしてるようだからちゃんと勉強してからおいで。
438:nobodyさん
06/04/19 00:44:20
CGIに関しては>>437の通りなんだけど、
>クライアント側で試しにCGIをシェル上で走らせてみると
http経由じゃなくてシェル実行でもscanfが効かないなら
何か根本的なところが間違ってるんじゃないか?
439:nobodyさん
06/04/30 02:49:16
【質問】
URLリンク(ysserve.int-univ.com)
↑のページの【必須CAI課題】のどれかをクリックして適当に学生の番号入力するとオンラインのコンパイラに飛べますが、
このようなC言語のオンラインコンパイラを自分のHPに設置したいのですがどうしたらいいのでしょうか?
ちなみに自分のHPサービス(sakura.ne.jp)にはCGI,PHP,C言語(gcc)等のコンパイラがあり、パスも分かるのですが
そこからどうしたよいのでようか?
ソースが入力された文章を受け取って、次にgccのパスを・・・どうやったらコンパイルできるのでしょうか?教えてください
gccのパス:URLリンク(takaharamayou.sakura.ne.jp)
ちなみにCやVBといった言語やHPビルダーは使えますが、Webプログラミングの勉強はしたことないので、HPビルダーで出来る程度でお願いします。
(さらにこのオンラインコンパイラだとscanf関数等数値のキーボ−ド入力が出来ないので、余裕があれば改善したいです。HTMLだけじゃ無理そうですが・・)
440:nobodyさん
06/04/30 03:33:14
>>439
何か恐ろしいレベルで勘違いしてそうだからあらかじめ言っておくが、
オンラインコンパイラなんて代物は存在しない。
とりあえずCGIというものについてちゃんと勉強してから来なさい。
ちなみにホームページビルダーでは何も出来ない。以上。
441:nobodyさん
06/04/30 03:36:11
>>439
つか本当にC言語使えるのか?
gccの使い方知らん上にインタプリタとコンパイラの区別もついてないように見えるが
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5140日前に更新/150 KB
担当:undef