C/C++ CGIスレッド ..
[2ch|▼Menu]
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の使い方知らん上にインタプリタとコンパイラの区別もついてないように見えるが

442:nobodyさん
06/05/01 00:57:00
C,C++プログラミングスレッドで、反応なかったんで、こっちで聞いてみます。
linux(RedHat4)上のCのcgiのプログラムなんですが、コンパイルしてコマンドラインから実行すると動くんですが、
ブラウザ経由で実行すると、共有ライブラリが無いよ、のエラーになります。
LD_LIBLARY_PATHとか、httpd.confのSetEnvとか、ldconfigとか試しましたが、
現象変わらずです。
ldd というコマンドが有るとわかったので、コンパイルした実行形式をlddしてみると、
問題ないのですが、cgi-binにコピーしてlddすると、無いよと言われる共有ライブラリが、not found
になります。
これ、ナニが問題なのでしょうか?

443:nobodyさん
06/05/01 01:12:42
>>442
コンパイルしたディレクトリにライブラリがあるんじゃないの?

444:442
06/05/01 08:59:47
>>443

ライブラリというのは、OracleのOCIなんですが、そこは確認しています。
ライブラリ自体と、ライブラリのあるところのパーミッションも変えてみましたが、
現象変わらずでした。
ちなみに、>>442 では、LD_LIBRARY_PATHのスペル間違ってますが、
これは書き込みミスです。

445:nobodyさん
06/05/01 12:51:31
>>442
共有ライブラリの参照先が相対パスになっているとか?
lddの結果を見せてもらえるとわかるかも。

446:442
06/05/01 13:59:54
>>445
絶対パスで表示されています。

で、色々いじくり回した結果、SELinux を無効にしたら動きました。
SELinuxの設定でしょうか?

このあたりはスレ違いっぽいので、ほかで聞いてみます。

>>443さん、>>445さん ありがとうございました。


447:nobodyさん
06/06/04 14:30:46
なんか簡単に使えるフレームワークとかライブラリが有ればいいのに。

ejbとmod_jkみたいなのを希望。

448:nobodyさん
06/06/04 14:38:35
そう思ったら、自分で作って公開することをお勧めする。

449:nobodyさん
06/06/08 20:51:42
みんな思いつきそうだけど手は動いてないね。

450:nobodyさん
06/08/07 15:01:57 f+NIkUuU
C/C++界隈には凄い人いっぱいいそうなのになんでだろ?
啓蒙活動には興味ないのかな。
まあ、いまどきC/C++でCGIやるような人が
ポピュラーでキャッチーなコードを書いてるわけないか。
自分最適化バリバリっぽいな。

451:nobodyさん
06/08/07 15:27:49
まあ作れるスキルあったら売り物にするからね。
時間もかけてるしビジネスノウハウもつぎ込んでるから無料で公開というのは無い。

452:nobodyさん
06/08/07 21:24:16
サーバーサイドはJavaのserverVMの方が速くて安全でライブラリが揃ってるから、
C,C++で作る意味がない。

453:nobodyさん
06/08/09 10:03:29
CよりJavaの方が速いってありうる?

454:nobodyさん
06/08/09 19:52:36
javaのvmのほうが速いってことは無いよ。
常にCで生成した実行バイナリのほうが桁違いに速い。

455:nobodyさん
06/08/09 22:43:45
>>454
だよね。>>452はJava厨か。

456:nobodyさん
06/08/09 22:57:54
速いcで作りたいけど一から作るのマンドクセ。
結局はフレームワークが揃ってるjavaに流れるって罠?

457:nobodyさん
06/08/11 23:13:47
javaは速さがどうとか言うよりもクロスプラットフォームという点が大きいと思う。
まぁ、今更Cを学ぼうという人間もなかなかいないしね。

そのせいか稀に素っ頓狂なjavaソースを目にすることがあるが、これも愛嬌。

458:nobodyさん
06/08/12 17:50:30
javaじゃ遅くてハード代がかかるのでCにするって、身の回りでは多いけどなあ。
特に事業とかコストを考えるとJavaでは苦しくなることが多い。

459:nobodyさん
06/08/12 22:32:47
>>458
javaは動き出しちゃえば(そこそこ)速いんだよね。メモリバカ食いするけど。
今時のハードだと安くてもメモリさえ積めば充分だし。

プラットフォームが確定してればCの方がパフォーマンス良いけど、WebProgって
求められる機能がアホみたいにコロコロ変わるから、Cは向いてないよなぁ。

460:nobodyさん
06/08/14 01:51:31
こんな時代だからこそ C+++CGI なんだと思った

461:nobodyさん
06/08/14 13:13:13
Cばかりが速いとは限らない。
JITコンパイラの最適化能力と、GCの性能は一気に上がった。Javaも実際は一部JITで機械語にコンパイルしたり(いまだに完全インタプリタ言語だと思ってる人が数レス前にも)、メモリを予約するよう工夫されている。言語だけて決め付けるのは古い。
(しかしASP.NETの方がJavaわずかに全体的に速い。純MSの一部アセンブラ言語だから当然か。Win鯖限定)

CGIの起動の負荷もある。特に高負荷。

あと技術レベルとコスト。大したやつじゃないなら既存のC/C++をパパッとやって出来上がりだけど、さすがにネトゲの鯖プログラムをCでってのは勘弁してほしい。
JavaでStringを+で連結しまくる困ったちゃんもいるし、やっぱり言語を扱う人間のレベルの方が影響が大きいんじゃないか?

チラシの裏
某f〇2のアク解の鯖はOSからhttpdまで完全C++の自作らしい。どれだけさばけるのか気になる。

462:nobodyさん
06/08/15 01:34:31
完全スクラッチを謳う鯖って大概NetBSDのカスタマイズだったりするからなぁ・・・

463:nobodyさん
06/08/15 11:25:18
求められる機能がアホみたいにコロコロ変わるって仕様が十分に練れてないだけじゃん。
普通はハードは減価償却終わるまで替えないから、Cバイナリでも十分。

jit使うならiccやgcc使うのと変わらんだろ。
しかもjitなら全ソース無いとjitの意味ないし。

JbossみたいなJ2EEのワークフレームがCにも欲しい。

完全スクラッチである必要は無いと思うが。
組み込み系なのか?

464:nobodyさん
06/08/15 13:01:56
C言語の依頼ならたまに来るけども(JavaとPHPがほとんどだが)、C++はほとんどない。なんでだろ?

465:nobodyさん
06/08/15 13:45:40
>>463
お前さん、流れ読めてないだろ

466:nobodyさん
06/08/17 00:55:09
そもそもC++である必要が無い。
マカが絶賛するObjCも必要性無いからマカ以外使われないし。

Javaの客ならサンの高い鯖でも買ってくれで対応出来るだろうけど、phpだと下手にアクセス数増えると大変だよね。
小規模サイトのうちは平和だけど。Javaに移ってくれでハードごと交換してもらえるほど余裕無い場合がほとんどだし。

467:nobodyさん
06/08/18 00:58:54
いつまでも C/C++ なんていってるから散漫になってだめなんだよ。
強い C++ 文化を作らなきゃ。

468:nobodyさん
06/08/18 01:05:04
いやもう正直いまさらつーか

469:nobodyさん
06/08/18 13:19:43
現状ではC++ほどトータルバランスに優れる言語はないと思う。
でもC++の言語ポテンシャルに気づくまでには情報の壁があるよね。
URLデコード処理なんかistringstream使えば死ぬほど単純なのに。

C++に必要なのはC視点から脱却した体系的な解説サイトだな。

470:nobodyさん
06/08/19 05:10:13
C++に必要なのは移植性
Cと違ってコンパイラによって対応度が全然違うから、
g++で通るのに商用UNIXのコンパイラでコンパイルが通らなかったりしてうんこ。

471:nobodyさん
06/08/19 16:03:29 vMxG7enI
質問です。
C++でCGIを書こうと思ってC++勉強してるんですが、
POST methodで受信した文字列をcinでもらったり、
出力をcoutで出したりするのはセキュリティの観点等から見て
適切でしょうか?
Cだとfgetsとかputs使ってたんで、何をやってるかよくわからない
cinとかcoutはちょっと怖いイメージが…

472:k ◆WFGp1NZuiw
06/08/19 16:36:07
>>471
せっかく C++ 使うのなら,Apache のモジュールにした方がいいよ.

473:nobodyさん
06/08/19 17:13:35
怖いならソースを読むといいと思うよ

474:471
06/08/19 21:38:55
>>472
標準入出力をモジュールを介して行うということでしょうか?

>>473
そうですね。もう少しC++に慣れたら読んでみようと思います。

475:nobodyさん
06/08/25 23:55:06
そもそもアパッチも自分で作ったほうがいいよ。
アパッチって変なことやり過ぎで変になってるし。mod_rewhiteのところとか。

商用UNIXのコンパイラでコンパイルが通る様に組めないおまいがどう見てもウンコ。
素人なのか?

C++なんてイラネ。ANSI Cこそ最強ですよ。

476:nobodyさん
06/08/26 12:54:55
apacheを自分で作る??
httpdじゃなくて?

477:nobodyさん
06/08/26 20:24:16
rewrite のスペルもまともに書けない人間はプログラミング以前に、
中学校レベルの英語から人生やり直した方がいいと思うゾ。

478:nobodyさん
06/09/08 22:30:29 zv3xWmqW
みんな HTML 出力クラスどう設計してる?

479:nobodyさん
06/09/08 23:24:55
どうって言われてもな。
オブジェクトに要素渡して最後にoutputさせるだけだが。

480:nobodyさん
06/09/09 01:07:22 BE:106404825-2BP(200)
リホワイトワロタww

481:nobodyさん
06/09/09 04:11:02
>>478
俺はPerlのHTML::TemplateやPHPのSmartyみたいなヤツで出力してる。
C/C++でソース中でレイアウトいじるのはどうなのよ?
いちいちコンパイルしなきゃならんのはめんどくさくね?



482:nobodyさん
06/09/13 04:35:05
でもソース中に埋め込んでないと遅いのでCにした意味がなくなるけどな。
コンパイル面倒ならphpとかperlあたりで作った方が楽だし。

483:nobodyさん
06/09/15 01:24:49
テンプレートなんざオンザメモリですよ

484:nobodyさん
06/09/15 10:27:09
リクエストの度に読み込んでたら遅いしなあ。

485:nobodyさん
06/09/15 11:00:49
やっぱC/C++な人たちは速度に厳しいのかな。
俺はテンプレートくらいって考えちゃうよ。
でもそこまで考えるとやっぱりCGIって枠を抜けたくなってくる。
あーだからみんなCでCGI書かないのか。


486:nobodyさん
06/09/15 16:17:35
80番つかんで自前でリクエスト処理が早いよね。
フロントエンドにアパッチ置いて、ヲレモジュールで繋いだ方が便利だけど。
javaのj2eeのC的アプローチだが。

487:nobodyさん
06/10/03 22:36:48
printfでlocationを実行させようとしたんですが、単にlocation文が出力されるだけなんですが・・・
制御文と認識させるためには、お呪い前処理が必要なんでしょうか?

488:nobodyさん
06/10/03 23:06:19
- locationを実行って何
- 「単に出力されるだけ」ってどこに何が出るの
- 制御文って何
- お呪い前処理って何

総じて意味不明
何をやったのかも何をやりたいのかも伝わってこない

489:nobodyさん
06/10/04 00:00:11
CGIスレだし、Locationでリダイレクトさせたかったんじゃね?
でも別の場所でprintfしてる Content-type: text/html が残ってるせいで文字が表示されてるだけとか

490:nobodyさん
06/10/04 00:17:56
まあつまりStatus:302ってこったろうな。
302時にhtmlを返すこと自体は普通だし。確か。

491:nobodyさん
06/10/13 20:22:15
URLリンク(labs.preferred.jp)

492:k ◆WFGp1NZuiw
06/10/22 15:08:53 EW4822UW
>>491
URLリンク(barracudaserver.com) の再発明な予感.
(URLリンク(0xcc.net))

べつに再発明が悪いとは思わないけど,どこが違うのか明示してくれるとうれしいかも.

493:nobodyさん
06/10/28 00:02:45
むしろ調べて報告してくれ。
来週までの宿題ってことにする。

再発明でも、いいよ。
まともに業務に使えそうな機能が欲しい。

494:nobodyさん
06/11/09 17:10:13
CGIの質問はここですればいいのですか??

495:nobodyさん
06/11/09 22:46:46
CかC++で作られたものなら。
それ以外のphpとかperlとかjavaとかなら他へ。

496:nobodyさん
06/11/09 23:34:21
URLリンク(www.gigigi.net)のアプロダは
CかC++でつくられてますかね??

497:nobodyさん
06/11/10 00:30:34
そのurlの最後の三文字を声に出して読んでください

498:nobodyさん
06/11/11 14:49:10
拡張子でファイルの種類を判別できるなんて、あなたは超能力者ですか?

499:nobodyさん
06/11/22 16:23:47
権利関係のとこ見れば良いじゃないんか?
あれはただ表示してるだけですか

500:nobodyさん
06/11/27 19:10:34
そういや拡張子の無いCGIは
.htaccessで
<Files test-cgi>
ForceType cgi-script
</Files>
ってやっているけど、これ以外の方法で設定ある?

501:nobodyさん
06/12/04 17:45:41
mod_rewrite

502:nobodyさん
06/12/09 12:15:32 NH9SQeUM
>>491
既にあるものを新しく作ったかのように発表するのは、
プログラマとしてダサイ、
研究者として最低、
会社としては?

それとは別にpreferredのコードがazaracと同等だとしたらダメすぎだろ。
コアは良いのにもったいない

503:nobodyさん
06/12/09 13:05:08
既にあるものがベストでない場合も有る訳だし。

新しく作った方が良ければ評価はされると思う。
プログラマでも研究者でも先駆者だけが評価されるのは視野が狭い証。

コアは再利用するけど、もっと使いやすくするのがオープンソースの醍醐味。

504:nobodyさん
06/12/10 00:02:51
>>503
>新しく作った方が良ければ評価はされると思う。
そりゃそうだけどそれを示してないよね。そんな論文どこにだしてもrejectされるよ。
ちょっと>>492にあるやつ見た感じだと示せそうもなさそうだけど。

あえて言えば日本語ドキュメントがあることだけど、それじゃぁね。
まぁ今後に期待。


505:nobodyさん
06/12/11 23:50:20
どこのスレで聞いていいのかわかんないので、ここで聞きます。

カウンターCGIを探しています。(※フリーで配布されているもの)
絶対条件は、GIFアニ画像を使えるカウンターが希望です。

kentのは連結ライブラリを使用するやつしかありませんでした。
他にもいろいろ探しましたが、これといったものが見つかりませんでした。

キリバン機能はあっても無くてもヨシの方向で。
また、ここじゃなくてこっちのスレで聞けやー
っていうのがありましたらそのスレ教えてください。

506:nobodyさん
06/12/14 00:13:39
誰かエンドレスバトルのスクリプトうpしてくれる神はいませんか?

507:nobodyさん
06/12/16 19:00:54 nIpz82eR
あげ

508:nobodyさん
06/12/17 19:00:36
>>505
失礼な方ですね。

509:nobodyさん
07/01/16 18:49:14 xXzalZaX
VCで作ったCGIで、C:\WINDOWS直下に置いてあるINIファイルの設定を取得しようとすると取ってこれないのという現象が発生します
他のディレクトリを指定すると正常に動作するのですが、アクセス権限の設定とか必要なのでしょうか?

510:nobodyさん
07/01/16 21:04:10
>アクセス権限の設定とか

わかってて何故確かめない

511:509
07/01/17 07:25:17
IIS、システムフォルダとも確認しました
他に確認する所ありましたっけ?
別のサーバーはちゃんと動いてるんだけどなー

512:nobodyさん
07/01/17 10:04:45
>>509
エラーコードやらメッセージやら確認した?


513:nobodyさん
07/02/07 17:14:45
Cから、INIファイル自体読めるかどうかの確認ぐらいしたら?

オラクルとのやり取りはProCってのがあるみたいだけど、HTML生成と、HTTP周りとGET/POSTやセッション管理のライブラリ欲しい。orz

514:nobodyさん
07/02/13 21:17:14 +34QrCfo
C言語用のCGIライブラリで有名なものは何ですか?
クエリやHTTPヘッダを解析する程度の、簡単なもので構わないのですが…

515:nobodyさん
07/02/24 19:11:47 eSgsNpz0
質問させてください。

C言語の勉強をしたいので、C言語でCGIを作ろうと思ったのですが
CGIのほとんどはPerlで組まれてるようで、そのことを考えたら
C言語でCGIを作るのとPerlで作るのではどのくらい作業量が違うのかが気になりました。

CでCGIを作るのとPerlで作るのでは、どのくらい作業量が違うのでしょうか?
また、Perlでないと作るのが難しい処理がある、といったことはあるのでしょうか?

516:515
07/02/24 21:05:09 eSgsNpz0
一応付け加えさせて頂くと
C言語は基礎的なことは一通り理解しています。

といっても、まだまだ腕に自身がなく
今後仕事で使うことになるので、あえてPerlではなく
C言語で作りたいと思いました。

517:515
07/02/24 21:08:08 eSgsNpz0
一応付け加えさせて頂くと
C言語は基礎的なことは一通り理解しています。

といっても、まだまだ腕に自身がなく
今後仕事で使うことになるので、あえてPerlではなく
C言語で作りたいと思いました。

518:515
07/02/24 21:14:11
連続投稿して申し訳ござません。

519:nobodyさん
07/02/25 13:19:25
>>515
PerlはもともとCGI用に作られた言語じゃなくて、文字列処理に強いから適してたってだけ。
正規表現系のライブラリさえ用意できればCでもさほど手間は変わらない。

っていうか本当にCを理解してればこんな質問自体無意味だと気づきそうなもんだが。

520:515
07/02/26 22:08:57
>>519
ありがとうございます。
文字列処理に強いからCGIで使いやすいということだったのですね。
Cでがんばってみようと思います。

521:nobodyさん
07/03/28 17:29:46
たまには保守

522:nobodyさん
07/03/29 02:57:24
初心者ながらも悪戦苦闘しWEB作成してます。
掲示板を動かすのはCGIによるものだというのがわかるのですがどうも掲示板の設置方法がわかりません。
掲示板はCGIパール言語ではじめから組み込まれたものなのですか?それともHTMLである程度(HPのヘッダー部分や上のロゴとか)
作ってから掲示板としてはじめたい行からCGIでプログラムを書き始めるものなのでしょうか?
それとも掲示板のページは最初からCGIでヘッダーやロゴの部分もCGIパール言語で書き始める、とういうものなのですか?
このばあい、ロゴとかを前のHPから来るレイアウトでCGIにできる方法など簡単に図示、説明してあるWEBなどないでしょうか?
ど素人の質問ですがどなたかご回答いただけましたら幸いにございます。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5140日前に更新/150 KB
担当:undef