■こんなCGI作ってください■
レス数が1000を超えています。これ以上書き込みはできません。
00011
04/12/14 08:35:03ID:???0960nobodyさん
2005/11/29(火) 21:14:02ID:???できました! execてクエリ使えないんですね・・。
includeでやったら表示されました。
#!/usr/bin/perl
print "Content-type: text/html\n\n";
@retsu=(
'いちばんさいしょ',
'にばんめ',
'さんばんめ',
'よんばんめ',
'ごばんめ'
);
$kekka=$retsu[$ENV{'QUERY_STRING'}-1];
print "$kekka";
exit;
これでいけました!感謝です。
0961nobodyさん
2005/11/29(火) 21:28:17ID:jT6RPKnvperl の関連付けはしてないから perl の PATH を指定したら not found (perl がね)
エラー見ると /Webサイドのアドレス/usr が無いとか・・・
SSI をやるなら perl も自分のアドレス以下に置かないといけないのかな?
だとしたら面倒くさいっすねぇ SSI って
0962nobodyさん
2005/11/30(水) 19:03:01ID:SzZxWnK9性別
回答者合計者○($SEXSUM)名中
男○($SEXMALE)名
女○($SEXFEMALE)名
というのをHTMLで出力したいんだけど、ディレクトリに SEX.txtというのを置いて
そのtxtファイルの中に「 0,0 」
というふうに男女の初期値の人数をいれておいて。
毎回フォームから'GENDER'の値が0(男性).もしくは1(女性)で送ってきた時のみ。
SEX.txtを読み込んで、1足して表示→そして読み込んだSEX.txtの人数の一人プラスという
ようなPERLスクリプト分かる人いますか?
0963nobodyさん
2005/11/30(水) 19:58:07ID:???http://pc8.2ch.net/test/read.cgi/tech/1086143976/343
マルチ放置推奨
0964nobodyさん
2005/11/30(水) 20:43:58ID:???簡単そうだから作ってやる
0965(1/2)
2005/11/30(水) 21:12:57ID:???$|=1;
if($ENV{'REQUEST_METHOD'} eq 'POST'){
read(STDIN, $buf, $ENV{'CONTENT_LENGTH'});
foreach $str (split(/\&/, $buf)) {
($key, $val) = split(/=/, $str, 2);
$in{$key} = $val;
}
}else{
$buf = $ENV{'QUERY_STRING'};
foreach $str (split(/\&/, $buf)) {
($key, $val) = split(/=/, $str, 2);
$in{$key} = $val;
}
}
open(LOG, 'SEX.txt');
$buf = <LOG>;
close(LOG);
($SEXMALE, $SEXFEMALE) = split(/,/, $buf, 2);
if($in{'GENDER'} eq '0'){ $SEXMALE++; }
else{ $SEXFEMALE++; }
open(LOG, '>SEX.txt');
print LOG "$SEXMALE,$SEXFEMALE";
close(LOG);
0966(2/2)
2005/11/30(水) 21:14:01ID:???print 'Content-Type: text/html', "\n\n";
print << "_END_";
<html>
<head>
</head>
<body>
性別<br><br>
回答者合計者 $SEXSUM 名中<br><br>
男 $SEXMALE 名<br>
女 $SEXFEMALE 名
</body>
</html>
_END_
一応条件は満たしてるはずだ
0967(3/2)
2005/11/30(水) 21:16:39ID:???を
if($in{'GENDER'} eq '1'){ $SEXFEMALE++; }
に変えといた方がええかもしれん
0968nobodyさん
2005/11/30(水) 21:20:08ID:yBICzhED長すぎ、そんなんより
open(my $SEX, "+<sex.txt") or die $!;
my ($males, $females) = split(/,\s*/, <$SEX>);
seek($SEX, 0, 0);
if (form['SEX'] eq "0") {$males++:}
if (form['SEX'] eq "1") {$females++:}
$SEXSUM = $males + $females
print $SEX ("$males, $females");
print $SEXSUM ;
でいいだろ
0969968
2005/11/30(水) 21:21:09ID:yBICzhEDopen(my $SEX, "+<sex.txt") or die $!;
my ($males, $females) = split(/,\s*/, <$SEX>);
seek($SEX, 0, 0);
if (form['GENDER'] eq "0") {$males++:}
if (form['GENDER'] eq "1") {$females++:}
$SEXSUM = $males + $females
print $SEX ("$males, $females");
print $SEXSUM ;
0970nobodyさん
2005/11/30(水) 21:22:00ID:???0972968
2005/11/30(水) 21:29:13ID:yBICzhEDでも、フォーム入力されたものは
form['GENDER'] として呼び出したほうがよくない?
その方が簡略化できる。
0974nobodyさん
2005/11/30(水) 21:38:06ID:yBICzhED0975nobodyさん
2005/11/30(水) 21:44:44ID:???ttp://sports.locmap.net/
↑こういう使い方をしたのですが、どうやって作るのでしょうか?
使い方としては自分のウェブサイトの一部に埋め込みたいのですが
どうやって飛ばしているのはまったくわかりません・・・○| ̄|_
0977(3/2)
2005/11/30(水) 22:11:05ID:???--- test.cgi ---
#!/usr/bin/perl
$|=1;
if($ENV{'REQUEST_METHOD'} eq 'POST'){
read(STDIN, $buf, $ENV{'CONTENT_LENGTH'});
foreach $str (split(/\&/, $buf)) {
($key, $val) = split(/=/, $str, 2);
$in{$key} = $val;
}
}else{
$buf = $ENV{'QUERY_STRING'};
foreach $str (split(/\&/, $buf)) {
($key, $val) = split(/=/, $str, 2);
$in{$key} = $val;
}
}
$url = 'http://local.google.co.jp/maps?q=category%3A+';
$url .= $in{'cat'};
$url .= '+loc%3A+';
$url .= $in{'loc'};
$url .= '&f=l&hl=ja';
print 'Location: ', $url, "\n";
print 'Content-Type: text/html', "\n\n";
print '<html><head></head><body><a href="', $url, '">', $url, '</a></body></html>';
0978(3/2)
2005/11/30(水) 22:12:23ID:???HTMLは書けるって向こうのスレで言ってたよな。
この時utf-8じゃないと化けるので注意
--- test.html ---
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<form action="test.cgi">
探しているカテゴリを入力してください<br>
<input type="text" name="cat"><br><br>
お住まいの地域を入力してください<br>
<input type="text" name="loc"><br><br>
<input type="submit">
</form>
</body>
</html>
0979(3/2)
2005/11/30(水) 22:19:19ID:???--- test.cgi ---
#!/usr/bin/perl
$|=1;
if($ENV{'REQUEST_METHOD'} eq 'POST'){ read(STDIN, $buf, $ENV{'CONTENT_LENGTH'}); }
else{ $buf = $ENV{'QUERY_STRING'}; }
foreach $str (split(/\&/, $buf)) {
($key, $val) = split(/=/, $str, 2);
$in{$key} = $val;
}
$url = 'http://local.google.co.jp/maps?q=category%3A+';
$url .= $in{'cat'};
$url .= '+loc%3A+';
$url .= $in{'loc'};
$url .= '&f=l&hl=ja';
print 'Location: ', $url, "\n";
print 'Content-Type: text/html', "\n\n";
print '<html><head></head><body><a href="', $url, '">', $url, '</a></body></html>';
0980nobodyさん
2005/11/30(水) 23:20:57ID:???つ use strict;
0981nobodyさん
2005/11/30(水) 23:23:21ID:???0982nobodyさん
2005/11/30(水) 23:25:55ID:???0983nobodyさん
2005/11/30(水) 23:28:41ID:???特にメリットないだろ?
0984nobodyさん
2005/11/30(水) 23:35:17ID:???サラ〜とプログラムが書けるのはカッコイイと思う。(正直な話)
0985nobodyさん
2005/11/30(水) 23:37:19ID:???0987nobodyさん
2005/11/30(水) 23:40:24ID:???あー確かにそれは爽快だな
ほい、
■こんなCGI作ってください■ Part.2
http://pc8.2ch.net/test/read.cgi/php/1133361560/
0988nobodyさん
2005/11/30(水) 23:44:06ID:???0989nobodyさん
2005/11/30(水) 23:59:42ID:???0990nobodyさん
2005/12/01(木) 01:01:14ID:???即レスありがとうございます。
教えていただいたタグで設置したところ問題なく作動しました。
ただカテゴリ選択の際にテキストボックスではなくラジオボタンで複数から選択したいのですが・・
0991nobodyさん
2005/12/01(木) 01:03:42ID:???<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<form method="GET" form action="test.cgi" target="map">探しているカテゴリを入力してください<br>
<input type="radio" name="cat" value="0" checked>ああああ
<input type="radio" name="cat" value="1">いいいい
<input type="radio" name="cat" value="2">うううう
<input type="radio" name="cat" value="3">ええええ
<input type="radio" name="cat" value="4">おおおお
<br>
<br>
お住まいの地域を入力してください<br>
<input type="text" name="loc"><br>
<br>
<input type="submit" value="検索"></form>
と記入してみましたがカテゴリが上手く反映されませんでした。
0992nobodyさん
2005/12/01(木) 08:27:13ID:Yh8Cr0vg0993nobodyさん
2005/12/01(木) 09:41:59ID:3+wviFCV0994nobodyさん
2005/12/01(木) 09:42:50ID:3+wviFCV0995nobodyさん
2005/12/01(木) 09:43:50ID:3+wviFCV0996nobodyさん
2005/12/01(木) 09:44:51ID:3+wviFCV0997nobodyさん
2005/12/01(木) 09:46:05ID:???0998nobodyさん
2005/12/01(木) 09:47:15ID:???0999nobodyさん
2005/12/01(木) 09:48:19ID:???1000nobodyさん
2005/12/01(木) 09:49:17ID:3+wviFCV10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。