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 あたりに
0409nobodyさん
03/04/29 21:13ID:???何を役割を持ってるかってのはわかってるの?
0410nobodyさん
03/04/29 21:19ID:???0411nobodyさん
03/04/29 22:17ID:???0412nobodyさん
03/04/29 22:32ID:???0413282
03/04/30 02:32ID:???0414nobodyさん
03/04/30 02:33ID:???0416nobodyさん
03/04/30 09:40ID:???クズ皿仕上げ
0417nobodyさん
03/05/02 13:27ID:???int main(int argc, char* argv[])
{
FILE *fp;
int ch;
fp = fopen("4.gif", "rb");
if (fp == NULL) return -1;
printf("Content-type: image/gif\n\n");
while(1){
ch = fgetc(fp);
if (ch == EOF) break;
putchar(ch);
}
fclose(fp);
return 0;
}
0418nobodyさん
03/05/02 14:29ID:???int main(int argc, char* argv[])
{
FILE *fp;
int ch;
fp = fopen("4.jpg", "rb");
if (fp == NULL) return -1;
printf("Content-Type: image/jpeg\n\n");
while(1){
ch = fgetc(fp);
if (ch == EOF) break;
putchar(ch);
}
fclose(fp);
return 0;
}
0420nobodyさん
03/05/02 16:52ID:???それからこのぐらいの書き方覚えれ
if (( fp = fopen("4.jpg", "rb") == NULL ) { return -1; }
printf("Content-Type: image/jpeg\n\n");
while(( ch = fgetc(fp)) != EOF ) { putchar(ch); }
0425nobodyさん
03/05/02 17:18ID:???int main(int argc, char* argv[])
{
FILE *fp;
unsigned char ch;
fp = fopen("4.jpg", "rb");
if (fp == NULL) return -1;
printf("Content-Type: image/jpeg\n\n");
while(1){
ch = fread(&ch,1,1,fp);
if (ch == EOF) break;
fwrite(&ch,1,1,STDOUT);
}
fclose(fp);
return 0;
}
0426418です。
03/05/02 17:29ID:???んで、>>425さんのをそのまま貼り付けてコンパイルしてみましたが
結果は同じでした。
Webサーバーの設定が悪いのでしょうか?
OSはWin2kPro Web鯖はAN HTTPDです。Apacheでも同様でした。
設定はほぼデフォルトです。
0430418
03/05/02 17:41ID:???0431418
03/05/02 17:55ID:???0432418
03/05/02 18:26ID:???int main(int argc, char* argv[])
{
FILE *fp;
char ch;
fp = fopen("4.gif", "rb");
if (fp == NULL) return -1;
printf("Content-Type: image/gif\n\n");
while(1){
if (fread(&ch,1,1,fp) < 1) break;
fwrite(&ch,1,1,stdout);
}
fclose(fp);
return 0;
}
0433418
03/05/02 18:43ID:???だめでした。(´・ω・`)ショボーン…
int main(int argc, char* argv[])
{
FILE *fp;
char ch;
fp = fopen("4.gif", "rb");
if (fp == NULL) return -1;
printf("Content-Type: image/gif\n\n");
_setmode(_fileno( stdin ), _O_BINARY);
while(1){
if (fread(&ch, sizeof(char), 1, fp) < 1) break;
fwrite(&ch, sizeof(char), 1, stdout);
}
fclose(fp);
return 0;
}
0434418
03/05/02 18:44ID:???stdoutでした。
できました。
0435418
03/05/02 18:58ID:???int main(int argc, char* argv[])
{
FILE *fp;
int ch;
_setmode(_fileno( stdout ), _O_BINARY);
fp = fopen("4.gif", "rb");
if (fp == NULL) return -1;
printf("Content-Type: image/gif\n\n");
while(1){
ch = fgetc(fp);
if (ch == EOF) break;
putchar(ch);
}
fclose(fp);
return 0;
}
0436:
03/05/02 19:03ID:Pe0a1MwA☆^〜^★ 50音順で探せて楽して得する
http://sagatoku.fc2web.com/
あなたの探し物きっとみつかるよ☆^〜^★
0438nobodyさん
03/05/02 19:44ID:???一般的にはああ書くだろうな。
そうしなければいけないわけじゃないけど、可読性云々を持ち出すのは
ちょっと応用が利かないというか、読解力が足りないというか・・・
0439nobodyさん
03/05/02 19:50ID:???そんなことを議論スレじゃない
おまえら、あほか
0440nobodyさん
03/05/02 19:52ID:???おまえはあほか
つられてみました
0441nobodyさん
03/05/02 19:54ID:???0443nobodyさん
03/05/02 20:03ID:???0444nobodyさん
03/05/02 20:28ID:???いいわけすんなよ
int
とかfwriteにしただけとか
的はずれもいいとこじゃん。
しまいには、コードを詰めただけときたもんだ。
0448nobodyさん
03/05/02 20:56ID:???$dateっていうのが日時の変数で
2003年4月だったら → 20034
2003年12月だったら → 200312
のように月が1ケタだろうが2ケタだろうが "年+月" で作られるものだとします。
それを再び****年*月というふうに戻すのはどうしたらいいんでしょうか?
$date =~ /^(....)(.)/;
print "$1年 $2月";
↑もちろんだめでした。
2ケタの月なると1月とか2月になります。
どうかご教授お願いします。
0450449
03/05/02 21:02ID:???.+でなにか一文字以上にマッチ
0451449
03/05/02 21:04ID:???$m=substr($date,4);
0452$date =~ /^(\d{4})(\d{1,2})/;
03/05/02 22:27ID:???0453nobodyさん
03/05/03 01:03ID:w8OB8lWY初めの使用は0行目以外をランダム出力でしたので、
下の様にしていました。
@logs = <FILE>;
$rand = int(rand($#logs));
$rand = $rand + 1;
print "$logs[$rand]";
0と1行目以外をランダムするにはどうしたらよいのかお力をお貸し下さい。
0454動画直リン
03/05/03 01:10ID:TBhkUsV+0455369
03/05/03 01:25ID:???@logs = <FILE>;
@logs = @logs[2 .. $#logs];
$rand = int(rand($#logs));
print "$logs[$rand]";
0456nobodyさん
03/05/03 01:29ID:???@logs = <FILE>;
splice(@logs,0,2);
print "$logs[int(rand($#logs))]";
ではまずい?
0457nobodyさん
03/05/03 01:56ID:???$index = int rand (@a -2);
$index += 2;
0458nobodyさん
03/05/03 02:01ID:???CGIの運用に関する質問スレッドです。
※CGIは特定の言語に依存するものではありません。
※Perlのコーディングに関する質問は専用スレがありますのでそちらでお願いします。
0459453
03/05/03 14:35ID:zFeuuQrEご返答ありがとうございました。
ところが、この後の処理で、
0行目と1行目とランダムで出力した行にカウント値を書き込むので、
@logsの0行目と1行目は削ることができません。
なにか良い方法はないでしょうか?
お力をお貸し下さい。
0460わか
03/05/03 14:52ID:cui/PBhYこのサイトは皆さんのお店を宣伝し
クーポンを発行し、お店にお客様を増やしたい
経営者様に立ち上げました。
http://www.c-gmf.com/index3.htm
http://www.c-gmf.com/index2.htm
0461nobodyさん
03/05/03 14:55ID:???CGIでできまふか
0462nobodyさん
03/05/03 15:12ID:???なぜCGIで、ポートスキャンをしようとするんだ???
そういうソフト探してきて、自分のパソコンですればいい。
CGIでした所で、サーバに負荷を与えるだけ。
0464nobodyさん
03/05/03 16:15ID:Ojvq+6lQ0465nobodyさん
03/05/03 16:24ID:???http://www.google.co.jp/search?q=%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AB+%E7%84%A1%E6%96%99+%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%82%AB%E3%82%A6%E3%83%B3%E3%82%BF
4000件近くヒットしたので好きなの選んでください
0467nobodyさん
03/05/03 17:37ID:Mcb8v76L平成15年度 自作板PC環境調査 最新結果(一部抜粋)
★4月分の結果が出ました。現在は5月分に移行しています。★
平均年齢 25.4歳
ネット(2ch含) 78.7%
ゲーム 59.0%
Windows XP Family 46.9%
Windows 2000 Family 34.4%
Athlon 45.3%
Pentium 4 29.7%
平均RAM搭載容量 780MB
平均HDD搭載容量 166GB
nVIDIA 49.2%
ATI 28.9%
DVD-R/RW/マルチ 20.4%
CD-R/RW 75.9%
光ファイバー 8.3%
ADSL/xDSL 64.5%
CRT 74.6%
LCD 25.4%
0470nobodyさん
03/05/03 18:30ID:???0471nobodyさん
03/05/04 00:49ID:t0ATog/rビンボサーバーでドメイン取ったんですが、CGIを
どこにおくかがわかりません・・・。
どこにおけばいいですか?
0473369
03/05/04 05:28ID:???@logs = <FILE>;
@count = @logs[0 ..1];
@logs = @logs[2 .. $#logs];
$rand = int(rand($#logs));
print "$logs[$rand]";
@count のしょりとか
ushift(@logs,@count);
とかでどない?
0474nobodyさん
03/05/04 11:31ID:???$first = <FILE>;
$second = <FILE>;
# ログの取得
@log = <FILE>;
# 表示する行の決定
$line = int(radn()*scalar @log);
# 行の表示
print $log[$line];
# countの処理
$first ...;
$second ...;
# ログの保存
print FILE $first;
print FILE $second;
print FILE @log;
>>473よりちょっとだけメモリ効率がよくなった。
ま、たいしてかわらんとおもうが。
0476nobodyさん
03/05/04 15:44ID:ZCOzJV+D# 表示する行の決定
$line = int(radn()*scalar @log);
# ログの保存
print FILE $log[0];
print FILE $log[1];
print FILE @log;
0477453
03/05/04 16:25ID:81Mz2NEWありがとうございます。
なんとか下のように導き出していました。
0行目(カウント値A)と1行目(カウント値B)
2行目以降→ランダムで出力
chop(@logs = <FILE>);
$adn = int(rand($#logs + 1 - 2));
$adn = $adn + 2;
($a,$b) = split(/<>/, $logs[$adn]);
※$bはこの行のカウント値
print "$a";
$b = ++$b;
$logs[$adn] = "$a<>$b<>";
$x = "$logs[0]";
$logs[0] = ++$x;
:
教えて頂いた方法でも色々と試してみたいと思います。
0478動画直リン
03/05/04 17:10ID:c6ZqX6LO0479nobodyさん
03/05/04 20:30ID:???ヤフーオークションで出品物が落札され、落札者に金額等のメールを送る際に、
LWP::Simpleで落札されたページを読み込み、落札者のメアドやID金額を得てテンプレに組み込めば、メールの作成がかなり楽になるのでやってみたのですが、
http://page*.auctions.yahoo.co.jp/jp/auction/*********
とURLを入れてみても、ログインのページが読み込まれてしまいます。
しょうがないので現状はヤフオクの終了したページをローカルに保存しておいて、
<INPUT TYPE="file">にて保存したページを読み込んでやってます。
でも直に終了のページを読み込めれば楽なので、そうしたいのですが、
どなたか方法をご伝授してください。
0485479
03/05/04 21:08ID:???482は別人です。
ヒントお願いします。
クッキーってヤフオクが発行したクッキーと違うんですよね。
ブラウザに直にhttp://page*.auctions.yahoo.co.jp/jp/auction/*********って入れると、
ログイン画面じゃなく終了したページが表示されます。
0488nobodyさん
03/05/04 23:16ID:???一応マジレスしとく。
たとえ、URLを直打ちしても、クッキーは鯖に送られる。だから終了画面が出る。
従って、Perlのスクリプトでアクセスする時も同内容のクッキーを送る必要がある。
CGIのことではないんでそもそもがスレ違いなんだけれども、
ヤフオク出品者としては、終了分のページをコピペしてエクセルに貼り付けるのが一番早かった。
エクセルのピボットテーブル使って、誰がいくら落札したのかとかも簡単に出るしな。
そのデータをCSVかなんかにしてPerlで読み込んでメールの形に整形するのであれば、楽かも。
0489479
03/05/05 05:24ID:???マジレスthx
ブラウザURLを直打ちの場合。
ブラウザ「http://page*.auctions.yahoo.co.jp/jp/auction/*********の情報クレ!」
ヤフオク「クッキー送れ!」
ブラウザ「はいよ〜」
ヤフオク「http://page*.auctions.yahoo.co.jp/jp/auction/*********だよ〜」
漏れのヘタレスクリプト
ヘタレ 「http://page*.auctions.yahoo.co.jp/jp/auction/*********の情報クレ!」
ヤフオク「クッキー送れ!」
ヘタレ ・・・・・
ヤフオク「テメー!ログインしやがれ!」
っていうことですよね。
でもヤフオクの「クッキー送れ!」をどう判断すればいいのかな?
もうちょっと勉強汁か
0490nobodyさん
03/05/05 06:57ID:???×ブラウザ「http://page*.auctions.yahoo.co.jp/jp/auction/*********の情報クレ!」
ヤフオク「クッキー送れ!」
○ブラウザ「http://page*.auctions.yahoo.co.jp/jp/auction/*********の情報クレ!
ついでにクッキーも送っとく!」
0491nobodyさん
03/05/05 09:06ID:???サーバからクライアントに能動的に働きかけることはできない。
って言うかRFC要参照。
0492nobodyさん
03/05/05 19:23ID:???クッキーはクライアント側が送る件了解しました。
> スレ違いだと言うに…
今回はスレに合う話だといいんですが…
use LWP::Simple;
my $url = 'http://www.yahoo.co.jp/';
my $html = get($url);
これでどうやってクッキー送るの?ってのが今朝の段階。
今日仕事中ちょっと調べてみました。
LWP::UserAgentでなにやら参考になりそうなスクリプトが。
以下続く…
0493479
03/05/05 19:23ID:???my ($req,$res,$html,$ua,$buffer,$request,$referer);
while(1) {
$ua = new LWP::UserAgent;
$ua->agent('Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)');
$ua->timeout(120);
$buffer = 'cid=9&mid=mSendVote&poll_id=344&cginh=1&cgint=1&vote=1&submit=Vot
ez';
$request = "http://team.sports.com/cgi-poll/vote/vote.cgi";
$referer = "http://www.sports.com/fr/judo/";
$req = new HTTP::Request POST => $request;
$req->content_type('application/x-www-form-urlencoded');
$req->content($buffer);
$req->referer($referer);
$res = $ua->request($req);
$req = new HTTP::Request GET => $referer;
$req->content_type('');
$req->content('');
$req->referer($request);
$res = $ua->request($req);
$html = $res->content;
if ($html =~ /Nombre de votes: (\d+)/) { print $1."\n"; }
sleep 1;
}
0494479
03/05/05 19:26ID:???それに、無限ループのせいか$buffer、 $request、$refererを変更してみても動かない…
0495nobodyさん
03/05/06 00:44ID:???http://member.nifty.ne.jp/hippo2000/perltips/LWP.html
http://member.nifty.ne.jp/hippo2000/perltips/LWP/UserAgent.html
上記二つを読んで勉強汁!
0497479
03/05/06 19:55ID:???Thx!
でも、クッキーじゃ無理かも。
ローカルに保存されているクッキーをそのまま送ってもダメみたいですね。
クッキー見ても、漏れはname=valueなふうに出来ないから…
それに、クッキー晒すわけに逝かないから…
手詰まり。
0498479
03/05/06 20:25ID:???クッキーを送ることばかり考えていて、ドツボにはまっていました。
クッキーを受け入れることを考えいればよかったんです。
ありがとうございました。
0499nobodyさん
03/05/06 20:56ID:KEkb5AUG$countの値がずっと増えつづけます
これではだめなんでしょうか?
if ($count == 10) {$count == 0;}
よろしくお願いします.
0500nobodyさん
03/05/06 21:35ID:???$count = 0;
0501nobodyさん
03/05/06 21:46ID:KEkb5AUGありがとうございました。
こんなネタ出してもしょうがないでしょ?
出すならもっといろいろ考えてくるよ〜
0503nobodyさん
03/05/07 15:26ID:Lrc20pw6たとえば CGI_Lite.pm の入ってないサーバでそれを使いたいとき、
他所のサーバでは、
unshift(@INC,"CGI_Liteを入れたパス");
use CGI_Lite;
などとやれば出来たのですが、Hi-HO ではどうしても
できないです。
誰かできた人いらっしゃいませんか?
# 出来るところの方が少数派なのですかね。
0504nobodyさん
03/05/07 15:31ID:???0505nobodyさん
03/05/07 22:19ID:???ttp://home.hi-ho.ne.jp/support/qa/q_web.html#a20
まだ使ってる鯖あるのか。(´Д`; > Perl4
0506503
03/05/08 14:16ID:g4D/vFQlこれは私への解答でしょうか?
require("...../CGI_Lite.pm");
これでいいの?
動作は同じ?
>505
これらのサーバにも、非公式に perl5 入っているので、
みんなそっちを使っていると思う。
0507505
03/05/08 16:32ID:???BEGIN { require Module; import Module @list } と同じだよ。
ttp://www.kt.rim.or.jp/%7ekbk/perl5.005/perlmod.html#Perl_Modules
「use がどうしてもできない」なんて言うからもしや Perl4
使ってんじゃと思ったんだけど。CGI_Lite (これも97年か…)
は 5.002 以上だね。
ttp://search.cpan.org/src/SHGUN/CGI_Lite-1.8/
あと CGI に関係ない Perl の話はこっち。
http://pc2.2ch.net/test/read.cgi/php/1050369328/
■ このスレッドは過去ログ倉庫に格納されています