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 あたりに
0716nobodyさん
03/05/23 20:51ID:hvFYfA6x0717nobodyさん
03/05/23 21:46ID:???0718nobodyさん
03/05/23 22:16ID:???だからなに?
えらいねーってほめて欲しいのかな、ボク?
やべぇ、気付かなかったよ!ありがとう!\
0722nobodyさん
03/05/24 01:57ID:???拡張子をcgiに変えますね。
どうやって開くんですか?てんで初心者で。
教えてください。お願いします。
0725nobodyさん
03/05/24 04:59ID:???ttp://www.geocities.co.jp/SiliconValley/5656/#20030402-1
0726nobodyさん
03/05/24 07:55ID:U+LFnLJJ上の画像UP設置したいけどやりかたがわかりません。
@niftyなんで・・・
0727nobodyさん
03/05/24 08:11ID:???0728nobodyさん
03/05/24 09:31ID:???いいと思われ。
0729nobodyさん
03/05/24 10:12ID:s437kJfj月に1万円以上は稼げそうにないけど、4000円ぐらいなら稼げそうです
無料登録するだけで商品券が貰えるサイトなども載せてあります
http://f15.aaacafe.ne.jp/~suikas/present.html
0731nobodyさん
03/05/24 23:57ID:ifKVZv+dindex.htmlにCGIを埋め込めるHTML(携帯からでも読み込めるタグ)ってありませんかねぇ?
グーグル先生に聞いたけど出ない
0733nobodyさん
03/05/25 00:28ID:Os0pVi9Qなんで無理なん?
0734nobodyさん
03/05/25 00:36ID:???そんな夢のような「タグ」は存在しない。
つかお前はHTMLをなんだと思ってやがりますか。
http://hoge.ne.jp/~hoge/
こんな風に、URLの末尾をディレクトリにしてアクセスした時に、
PCと携帯を振り分けたいのであれば、方法はいくらでもあるが、
>>731程度の認識と知識ではどれも不可能だろう。
>>732は途中をかなりすっ飛ばしているが、結論だけは正しいな。
0735nobodyさん
03/05/25 00:51ID:Os0pVi9Qhttp://hoge.ne.jp/~hoge/
こんな風に、URLの末尾をディレクトリにしてアクセスした時に、
PCと携帯を振り分けたいのであれば、方法はいくらでもある
それがやりたいんだw
0736nobodyさん
03/05/25 00:58ID:Os0pVi9Q頼むからそれ教えて!
さっきからCGI失敗しまくりだから・・・
0737_
03/05/25 01:03ID:???0738サンプルです
03/05/25 01:05ID:qXE1ysu+http://yahooo.s2.x-beat.com/linkvp/linkvp.html
0739nobodyさん
03/05/25 01:46ID:???0740nobodyさん
03/05/25 02:22ID:???その書き方は分かってる奴ならいいが、そうじゃないと文面どおり解釈されかねないぞ。
(index.htmlをindex.cgiにリネーム→アップロード→動かない!)
0741nobodyさん
03/05/25 02:34ID:???example.(com|net|org) 使ってあげなさいよ。RFC 2606
0742nobodyさん
03/05/25 04:34ID:???0743699
03/05/25 06:54ID:???一応はこれです。ぜんぜんだめ?
0744nobodyさん
03/05/25 10:40ID:hi9lch0f0746nobodyさん
03/05/25 11:20ID:j5yBhsq1って.htaccessに書くんだよね?その書いた.htaccessファイルってどこにうpすればいいんだっけ?
0747nobodyさん
03/05/25 11:26ID:kaO8yXyX正解か不正解によって2つのページに飛ぶ、といったようなものを
つくるにはどうしたらいいでしょうか
0748nobodyさん
03/05/25 11:31ID:???有効にしたいディレクトリ。
>>747
「どうしたらいいか」という言葉が、どの程度までの情報を求めているのか分からんので
答えようがない。もうちょっと詳細によろしく。
0749nobodyさん
03/05/25 11:37ID:kaO8yXyX2時間くらい探したけれど見つからなかったので
0750746
03/05/25 11:43ID:j5yBhsq10751nobodyさん
03/05/25 11:50ID:???「つくる」って、CGIの設置のことかよ。
このスレでつくるっていったらコーディングとかアルゴリズムと思うじゃないか……
その手のCGIはけっこう配布されてるから、探せばすぐ見つかるぞ。
0752749
03/05/25 12:03ID:kaO8yXyX探してみます
0753nobodyさん
03/05/25 12:09ID:???http://ime.nu/ime.nu/ime.nu/www.net-de-dvd.com/
0754nobodyさん
03/05/25 12:12ID:???例 DirectoryIndex index.cgi index.html index.htm
ファイル名をつけないURLでアクセスした場合、そのディレクトリの
中から上記の左から順に探して見つかったファイルを表示する。
つーか、もう答えを教わってるんだから書き方ぐらい調べれ。
0755nobodyさん
03/05/25 12:14ID:Jgr8OJqOhttp://www.dvd-yuis.com/
最速発送!すぐ届く!!
http://www.dvd-yuis.com/
女性も安心!秘密厳守!!
http://www.dvd-yuis.com/
おっ!安い!買っちゃお!
http://www.dvd-yuis.com/
えっ!?もう届いたの?
http://www.dvd-yuis.com/
0756nobodyさん
03/05/25 12:16ID:9EnXV42Y0758nobodyさん
03/05/25 13:12ID:???076010
03/05/25 13:39ID:???●やりたいことは、全角(ひらがな、カタカナ)で記述した場合の文字化け対策
データを記述したときに更新をおしたら連続書き込みしてしまうのを連続書き込みしないように
したいのですがソースは下記にのせます。
初心者でもうしわけないのですがアドバイスお願いします
076110
03/05/25 13:41ID:???# CGIスクリプトから見たベースとなるディレクトリ
$base = "./ranking";
require 'cgi-lib.pl';
require 'jcode.pl';
$title = "ランキング";# ウィンドウタイトル
$data = "ranking.dat";# データベースファイル
$dispranking = 10;# 表示したい上位ランキング数
# ヘッダー出力
print "Content-type: text/html;charset=Shift_JIS\n\n<html><head><title>$title</title></head><body bgcolor=\"FFffFF\">\n";
# 入力データの解析
&ReadParse(*in);
$score = $in{'score'};
$name = $in{'name'};
&jcode'convert(*name, 'jis');
076210
03/05/25 13:42ID:???if(@ARGV[0] eq "clear"){
open(FILE, "> $data");
print "\n";
close(FILE);
exit(0);
}
# データベースのデータを読み込む
open(FILE, "<$data") || &ferror();
while(<FILE>){
chop;
@v = split(/\t/);
$mscore[++$#mscore] = @v[0];
$mname[$#mscore] = @v[1];
}
close(FILE);
076310
03/05/25 13:43ID:???$index = -1;
}
# スコアをデータを表示
print "<center><h2><b>最新スコア</b></h2>";
print "<table border=1>\n";
open(FILE, "<$data");
$count = 1;
while(<FILE>){
# last if $count == $dispranking + 1; <- これを有効にすると上位5位のみ表示
# 順番を表示
print "<tr><td>$count</td>";
chop;
@v = split(/\t/);
if($count++ == $index){
# たった今入力されたスコアは色を変えて表示
print "<td><font color=red>@v[0]</font></td>";
print "<td><font color=red>@v[1]</font></td>";
} else {
print "<td>@v[0]</td><td>@v[1]</td>";
}
print "</tr>\n";
}
close(FILE);
print "</table></center>\n";
print "</body></html>\n";
076410
03/05/25 13:44ID:???sub ferror {
local($file) = @_;
print "<center><h1>$title<br>\n";
print "ファイルが開けません<br></h1></center>\n";
exit(0);
}
長くコピペして申し訳ありませんでした。
職人さま教えてください。お願いしますm(__)m
0765nobodyさん
03/05/25 13:54ID:???&jcode'convert(*name, 'jis');
連投は面倒なので>>765がやってくれるはず
076710
03/05/25 14:56ID:???下記のようにかえてもやはり文字ばけするんですよね・・・。
&jcode'convert(*name, 'cue');
perl難しいです。
アドバイスありがとうございます。
得点ランキング完成させたいです。
0768_
03/05/25 15:22ID:???0769圧縮@初体験
03/05/25 15:58ID:0niv9DMs今回、始めて…今ごろになって圧縮を利用しようと
配布されている物を見たり検索してみたのてすが・・・
>>サーバ側の「gzipパス(この場合は/usr/bin/gzip)」にアクセスして圧縮を実行させ
>>「gzipパス」はプロバイダによって違うことがあるので、設置の際には調べておくこと
usr/bin/gzipを作成しろと言う事なのでしょうか?
サーバー(自サーバー)の場合の設定は必要なのでしょうか?
設定を確認してない場合、gzip圧縮をONにしても効果が無いのですか?
色々検索してみたのですが・・・
どうかご教授お願いします。
0771nobodyさん
03/05/25 18:09ID:???/usr/bin/gzip は gzip圧縮をする圧縮プログラム。
Windowsは知らないけどUnix系なら大体入ってるんじゃないかな。
0772nobodyさん
03/05/25 20:00ID:???print "Location: ./test.html\n\n";
でジャンプするとき、フレームを指定すること出来ますか?
0774nobodyさん
03/05/26 08:50ID:???多くのcgi解説サイト等でuriエンコードで、半角スペースを+に変更するってのを記述してあるんだけど、
これって、RFC的に正しいのだろうか?
例えばform文のinput type="text" で、 パラメータに"+"を入力できないってことになるんだけど・・・
0775nobodyさん
03/05/26 09:36ID:???RFC 2396 かな?
まあ、規格は良く知らんが、"+"=>"%xx"、" "=>"+"って考えれば、問題ないと思うが。
0776nobodyさん
03/05/26 16:04ID:???ブラウザ上でフォームに入力された値や、HTML ファイルに
直書きされる値は URL エンコードされる「前」の状態。
submit 時にブラウザが application/x-www-form-urlencoded
形式にエンコードして (>>775 の変換を行って) サーバに送る。
HTML 的には input 要素の value 属性は CDATA だから
+ が含まれていても OK な筈 (自信なし)。
0777774
03/05/26 16:43ID:???その見解であってる模様です。
こっちでも試してみました。
デコードの順番を
$value =~ s/\+/ /g;
$value =~ s/%([\da-f][\da-f])/pack('H2', $1)/egi;
この順番でやってるうちは問題ないっぽい。
0778nobodyさん
03/05/26 16:57ID:???$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack('H2',$1)/eg;
こうだろう。
\dはいらないし、それじゃaa-ffしかデコードされない。
0779nobodyさん
03/05/26 17:00ID:???\d が 0-9だし iで大文字小文字両方ともみるのであってると思うが?
処理効率は>>777の方がいいとは思うが・・・
0781nobodyさん
03/05/26 17:11ID:???0782nobodyさん
03/05/26 18:54ID:TSTriSzYdionのメール送信CGIを使って、dionのホムペにある見本のタグ以外
(プルダウンメニューなど)のinputタグいれて動作できた香具師いたら、
どうやったか教えて下さい。
so-netのメール送信CGIは、formタグの最初だけ見本通りにすると、あとのinputタグはかなり自由に
できたのですが、dionはだめなのでつか?
おねがいしまつ。
0783bloom
03/05/26 19:10ID:gUjk1KcM0784914
03/05/26 19:18ID:tmRvurLYここの927のもので、ここに誘導されたので再度質問します
たまに見る「今トップページを見ている人は**人です」っていうのはどうやってるんですか?
0785ヱッ’ノ
03/05/26 19:36ID:zHcI20PHうちのサーバではゲームCGIを設置しているのですが
プラウザのボタンを押すと負担かかるんですよね・・・(涙
ってことでプラウザのボタンをなにかのイベントになるってことは出来ませんか?
例えば更新を押すとイベント発生!!○○にいって
「更新は押さないでください!」
みたいなのが表示されるって感じで、、、
何方かご指摘おねがいます。
0786_
03/05/26 19:51ID:???0787nobodyさん
03/05/26 20:50ID:???DIONのメール送信CGIってなーにー?
世の中全ての人間がDION使ってるわけじゃないんだからさー。
URLくらい出せよ。
回答者がわざわざ調べないといけないような質問はすんなよ。
0788nobodyさん
03/05/26 20:52ID:67MeoiMR$value =~ s/%([a-fA-F\d]{2})/pack('H2',$1)/ge;
これはどうだろう
0789nobodyさん
03/05/26 20:54ID:67MeoiMR無理と思うよ
0790nobodyさん
03/05/26 20:55ID:???やり方は二つ思いつく。
一つはチャットCGIでよく使われる「現在の入室者数」と同様の方法だ。
ゆいチャットのソースでも見て研究しろ。
もう一つはセッションを使う方法だ。
セッションは通常有効無効のステータスがあるので、
有効になっているセッションをカウントすれば、
見ている人間になる。
なお、HTTPプロトコルの性質上、この数値には精度は求められない。
本来は「だいたい**人」としなければ嘘になる。
0792nobodyさん
03/05/26 20:56ID:67MeoiMRそういうCGIのコード見たら分かるのでは。
大体が、一定時間(例えば1分)以内にアクセスした人を
数えているのだと思う。
CGIの場合常に見張るのは無理だし。
JavaAppletとかなら確実な人数出せるだろうね。
0794nobodyさん
03/05/26 23:36ID:???たまに見る所のURLを出せば一発で答えが出ると思うが、
たぶん CGIで一定期間(過去10秒とか)にカウントした人数を出しているだろうね。
htmlファイルに埋め込めるようにJSとセットになっているのも見たことある
0795782
03/05/26 23:44ID:EsFJ+WYrttp://www.dion.ne.jp/support/hp/infocgi/case2/mail/index.html
DionのホームページサービスでつかえるメールデコードCGIのことです。
自作CGI不可なのはともかく、見本のタグ以外のinputタグも使いたいのですが、
うまくいきませんでした。(見本通りならオケーだった)
で、DIOnのサポセンでは、見本以外に自分でタグを追加して動作してる例もあるが、
当社として動作確認はしていないので、「上手く行く人もいるらしい」としか言えないといわれて。
なので、その「上手くいった人」がこちらにいないだろうか、
で、もしいたら、どうやったのか教えてもらえればと思ったのでした。
もし分かる人がいたら、よろしくお願いし松。
0796nobodyさん
03/05/27 00:04ID:???自分で試すのが一番早い。間違いない。
それに、そもそもここにいるのは自作する人間ばかりなので、
他人のCGI、それもソースが読めないようなものに興味はない人間が多い。
Web製作版にでも行ってみたらどうだ?
0798nobodyさん
03/05/27 02:03ID:???CGI自体が見れないから、内部でどんな処理をしてるのかも分からないし、
「やってる人がいる」というのも、試行錯誤して偶然見つけたのかもしれない。
もはや「裏技」といったレベル。
そんなに知りたきゃ、DIONで同じフォーム使っていてそういう裏技を使ってる
ページを見つけてソース見るなり、直接聞くなりすればいい。
「そういうページ知りませんか」とここで聞いて待ってる暇があったら自分で調べれ。
0800782=795
03/05/27 02:10ID:JdPC8gL6796さんの誘導どおり、web制作板にいって、質問してみたら、
あっさり解決しました。dionのページの説明文が理解できてなかっただけで、
無事うまくいきました。いちおう、こっちにも書き込んでスレ汚ししてしまったので
解決した報告と、お礼のため書き込みにきました。
0801_
03/05/27 02:21ID:???0802nobodyさん
03/05/27 03:17ID:???ここでSubmitした後のページが更新される(CGIからの返り値が表示される)
と思いますが,この更新をなくしたいと思っています.
何か方法は無いでしょうか?
よろしくお願いします.
0806nobodyさん
03/05/27 06:39ID:???誰かが作ったやつを設置だけしてHTMLで何とかしようとしてるのなら、(・∀・)カエレ!
0807nobodyさん
03/05/27 11:00ID:???「どんなページが表示されていて」
「どういうデータを送信して」
「なぜページ更新したくないのか」
更新しないようにしようという考え方自体が見当違いで、
もっと適切なやり方があるかもしれないし
0808nobodyさん
03/05/27 11:05ID:???Perlだったらこう1行書けばいいだけだろ。
print "Status: 204 No Response\n\n";
意図とか質問するのもいいけどまず技術的にできるんだからその
回答くらいは書いてやってよ。
0809nobodyさん
03/05/27 11:26ID:???0814nobodyさん
03/05/28 14:09ID:???またヘッダ情報はブラウザの解釈に依存するところがあるで、
204お構いなしにデータ出力されたり、エラー画面に飛ばされ
ることがある。
とくに携帯相手のサイトをやってる場合おすすめできない。
■ このスレッドは過去ログ倉庫に格納されています