CGIだけど、なんか質問ある? Part 12
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/10/10 00:04:06ID:???※ CGIはウェブサーバ上でユーザプログラムを動作させるための仕組みであり、
Perl等特定の言語に依存するものではありません。
Perlのコーディングに関する質問は、専用スレでお願いします:
[Perlコーディング初心者質問スレ Part 38]
http://pc5.2ch.net/test/read.cgi/php/1097158988/
CGIとPerlの区別がわからない、という人はとりあえずこちらへ:
[△▲ WebProg 初心者の質問 Part10 ▼▽]
http://pc5.2ch.net/test/read.cgi/php/1095633323/
過去ログ・関連スレッドは>>2-10あたりに
0689nobodyさん
2005/05/25(水) 00:00:17ID:???成りすまし防止なら、ホストを表示しるw
それかトリップ。
それか、crypt $host, "$1$"+$salt で、尻の方から適当な文字数を抜き出せ(最大22バイト)。
0690680
2005/05/25(水) 00:51:35ID:Yut2C7b60691nobodyさん
2005/05/25(水) 15:56:38ID:???どうもありがとうございます
ホストから一部抜き出すこともできるみたいですね
crypt $host, "$1$"+$salt
これをCGIに付け加えると良いんでしょうか?
0693nobodyさん
2005/05/26(木) 17:33:13ID:QrZX/3rH広告にアクセスしないとダウンロードできないプログラム
って配布されているところありませんでしょうか?
広告収入で著作権料金や着うたを製作しておりますので
どうしても曲数を増やすのに広告収入を得る事が必要になります
もしご存知でしたらご教授よろしくお願いいたします。
0694nobodyさん
2005/05/26(木) 18:10:45ID:???0695nobodyさん
2005/05/26(木) 21:22:45ID:???0696nobodyさん
2005/05/27(金) 00:26:20ID:yljyO92Lスミマセン、超初心者で手探りでCGIを改造している者です、どうかどうか以下質問にお答え頂けるとありがてぇです。
今、掲示板のCGIをあれこれ工夫しながら改造しているところなのですが、逆引き不可IPからの書き込みを
拒否できるようにしたいと奮闘中であります……が
逆引き不可のIPを特定できません…
かなり厨房な質問をしているのは重々承知しているのですが、ぐぐっても、あれこれ参考文をみてもコレというものが
みつからず、ここに書き込みした次第であります。
どうか、逆引きIPの特定方法を教えて頂けないでしょうか。
蛇足だとは思いますが、逆引き不可IPについて。
IPアドレスが全て数字で構成されたものです。
よろしくお願いいたします
0697名無しさん@お腹いっぱい
2005/05/27(金) 00:45:23ID:???REMOTE_HOST のアドレスを元に
サーバが名前を引いてるんだったら、IPアドレスが入ってたら逆引き不可
サーバが引いてないんだったら、(=REMOTE_ADDR)自分で名前引いて
引けなかったら逆引き不可
0698696
2005/05/27(金) 02:23:10ID:yljyO92L早速のレスありがとうございます。
CGIの超初心者故、さらなる質問で失礼します。
現在いじっている掲示板CGIではサーバーは名前を引いているようです。
アクセス制限は、個別にIPアドレスやホスト名を指定することで制限をかけることが可能なのですが…
@deny = ("*.anonymizer.com",,
"*.kick.my.ass"
);
上記のように、一個一個指定していかなくてはならん模様です。
取得したホスト情報が全て数字で構成されている、という条件で蹴れるようであれば一番楽かなと
おもい、先の書き込みにあるような質問をさせて頂きました。
>サーバが名前を引いてるんだったら、IPアドレスが入ってたら逆引き不可
これにあるとおり、IPアドレス(数字だけ)ならばという条件文はどのように記述すれば宜しいでしょうか?
基本的な質問ばかりで恐縮ですが、ご教授いただければ幸いです。
0699nobodyさん
2005/05/27(金) 04:10:49ID:???0700nobodyさん
2005/05/27(金) 09:03:33ID:???http://pc8.2ch.net/test/read.cgi/php/1115281031/159-160
http://pc8.2ch.net/test/read.cgi/php/1012750353/744-745
0702nobodyさん
2005/05/30(月) 02:22:54ID:cSR7keAp掲示板の書き込みで、NGワード(http:と、@半角アットと、.半角ドット)を設定したいのですが、
特殊文字の設定がうまくいきません・・・
使用している掲示板はKENTさんのとこのYYボードです。
http:を消すのは↓の部分を改造して、
if ($in{'comment'} eq "") { &error("コメントが入力されていません。"); }
↓で解決できたのですが
if ($in{'comment'} =~ /http:/) { &error(" http: の入力はできません。"); }
@半角アットと、.半角ドットを消すのがうまくいきません・・・
if ($in{'comment'} =~ /@/) { &error(" @ の入力はできません。"); }
↑のようにすると、いちおう@半角アットを検出してくれるのですが、
なぜか「全角スペース」まで検出してエラーを出してしまうのです・・・
@半角アットだけを検出するにはどうしたらいいでしょうか?
ちなみにCGIプログラムは初心者です・・・
0705702
2005/05/30(月) 11:48:32ID:???レスどうもです。
=~ /\@/ や =~ /(\@)/ に書き換えても、
やっぱり@と「全角スペース」まで検出してしまうとです・・・
CGIでは@は全角スペース扱いされてしまうのでしょうか
それともYYボードの仕様でなってしまうのでしょうか
702に補足で、半角ドット検出は成功しましたです。
0707702
2005/05/30(月) 15:10:08ID:???なるほど、そうだったのですかー
という事は「@は検出するけど、\x81\x40は検出しないでね」
という式?命令文?を作ればOKなのかな・・・
うう、しかし
頭ではなんとなく分かっていても知識ないのでどうすればわからんとですorz
ご教授を〜
0708nobodyさん
2005/05/30(月) 16:30:24ID:???0710702
2005/05/30(月) 20:01:14ID:CXped1vAサラリと言ったその言葉すら意味不明の初心者なのですorz
0711nobodyさん
2005/05/30(月) 20:15:57ID:???つ【http://www.din.or.jp/~ohzaki/perl.htm】
0712nobodyさん
2005/05/30(月) 20:40:40ID:???2バイト文字ってのは聞いた事があるよね?
日本語のように使う文字が多い場合には、1byte(2の8乗 = 256)では表しきれないので、
2byte(2の16乗 = 65536)を使って表すようになっている。
次に、どういうbitの並び方の時にどういう文字を表すかを決める(統一する)必要があって、
これがshift-jisやeuc、いわゆる文字コードという事になる。
shift-jisで全角スペースを表すと、1byte目が\x81、2byte目が\x40になる。(\xは16進表記)
また、@は \x40(1byte文字)となる。
困った事に、\x40という部分だけに注目すると、全角スペースの2byte目なのか@の1byte目なのか区別がつかないのだ。
これがeucの場合、全角スペースは\xA1\xA1となり、@は\x40となる。
当然、全角スペースと@が混同されることは無くなるが、
更にはeucの場合\x40が1byte目2byte目に関係無く出現するような文字が無いのだ。
このため、@は @以外の文字と同じbyte表記を持つ事は無いことになる。
eucを使った場合にはこういう風にbyte表記が混同されることが無くなるため、
スクリプトにはeucを使っておけば良い、という話が散見されるわけだ。
話を分かり易くするために、正確では無い書き方をしている部分もあるので、
時間がある時にでも自分で調べてみてちょ。
0713702
2005/05/30(月) 22:04:28ID:CXped1vA全角スペースをeucにしなければならないと、
それをするには、$Zspace = '(?:\xA1\xA1)'; # EUC-JPみたいなのを
どこかに書けばいいのかな・・・それとも全部作り直す必要が・・・?
ヽ(;´Д`)ノ あたまがスポンジー!!!!
なんとなく踏み込んではいけない領域の気がしてきたので諦めます
せっかく教えて頂いたのに申し訳ないです。教えがいの無いあほな子ですorz
0715nobodyさん
2005/05/30(月) 22:41:38ID:???$euc = 調べたい文字列
&jcode::convert(\$euc, "euc", "sjis");
$euc =~ /hoehoe/
で変換できる。詳しくは、
http://openlab.jp/Jcode/index-j.html
0716nobodyさん
2005/06/01(水) 17:29:55ID:/F0XZ51/Set-CookieはContent-Typeより前に送信しなければいけないって
噂を聞かされましたけど、GNU cgiccやRuby::CGI-libのソースだと
Content-Typeが先でSet-Cookieが後です。
これを書く順番のルールってホントにあるの?
それともデタラメ?
0717nobodyさん
2005/06/01(水) 18:26:12ID:???states code(200,404とか)を最初に書くとか、慣習で順番が決まっているものもあるけど、基本的に順不同だよ。
不安なら、HTTP/1.0や HTTP/1.1のRFCを読むと良い。
0719nobodyさん
2005/06/03(金) 16:34:42ID:iEKsbxEn200x40のバナーを縦に表示するCGIなのですが、
1つのデータをループさせて、いくつも表示できるのです。
それでバナーとバナーの間にスペースを空けたいので
marginのbottomで8px空けたのですが、これをすると。
確かにバナーとバナーの間に8pxの空きができます。
でも最後のバナーの下にも空きがでてしまうのです。
最後だけは空きを作りたくないのです。これはどうすればよいのでしょうか?
0720nobodyさん
2005/06/03(金) 16:46:07ID:???最後のバナーかどうか判断できれば、それにmarginをつけないつー事もできるべ?
その考えをスクリプトに反映させれば良くね?
0721719
2005/06/03(金) 16:58:59ID:iEKsbxEnfor ($i = 0; $i < $pickup_max; $i++) {
@Slog=split(/<>/,$alllog[$newlog_pickup[$i]]);
if (!$Slog[0]){ next; }# IDが無効な場合無視する。
#第一カテゴリをリンクにする為の展開。
@kts=split(/&/,$Slog[10]);
$jump_kt_link = $Ekt . $kts[0] . $Eend;
$jump_kt_title = &full_kt($kts[0]);
#ピックアップした各サイトを表示する。
#★サイト毎の区切りの開始タグは、次のコメントを外して、"〜〜\n"の中に書く。
#$PU_sites .= "(*ここにmargin-bottomでバナーの下に空きを作っています。)\n";
&PRlog;
#★サイト毎の区切りの閉じタグは、次のコメントを外して、"〜〜\n"の中に書く。
#$PU_sites .= "\n";}
#★大枠の閉じタグは次のコメントを外して、"〜〜\n"の中に書く。
#$PU_sites .= "\n";
return$PU_sites;}
返信ありがとうございます。一部だけ抜粋していて意味不明でしょうが、こういうcgiです。
IEで見ると正常に表示されるけど、ネスケやOperaだと下に空白スペースが見えてしまいます。
そのラストバナーのスクリプトの付けられればと思うのですが、どこにどう書けばよいのかわからず。
0722nobodyさん
2005/06/03(金) 17:38:24ID:???0723719
2005/06/03(金) 17:52:09ID:???いくらやっても出来ない。
0724nobodyさん
2005/06/07(火) 04:04:28ID:DXoj/+TB携帯電話サイトを作っているのですがPCからのアクセス拒否のプログラム
ご親切な方配布先を教えては頂けないでしょうか?
探しましたがまったく見つからず宜しければ御願い致します。
0725nobodyさん
2005/06/07(火) 04:11:01ID:???0726nobodyさん
2005/06/08(水) 12:45:12ID:???0727nobodyさん
2005/06/10(金) 13:50:53ID:???gmailでフォームに入力したメールを自動返信したときに、
2バイト文字が全部□になってしまいます。
outlook expressだと大丈夫です。
jisには変換しているのですが、なぜかうまくいきません。
なんででしょうか???
0728nobodyさん
2005/06/10(金) 14:12:07ID:???0729nobodyさん
2005/06/11(土) 15:25:28ID:Nw8Ft/yI普通にレンタルサーバで使える範囲で
0730nobodyさん
2005/06/11(土) 15:39:44ID:???でもこんなトコで聞くくらいだから間借りだろ?
それだとPerl、PHPくらいしか使えないよ
しかもどちらもオブジェクト指向で書けるというだけであって
純粋なオブジェクト指向言語じゃないから
0731nobodyさん
2005/06/11(土) 20:30:45ID:???0732nobodyさん
2005/06/11(土) 22:42:48ID:???利用可能サーバ少な目だけどRubyにするかってとこでしょうかね
0733nobodyさん
2005/06/12(日) 00:46:13ID:tHGZxkktelseif{}
elseif{}
else{}
という文では、例えば2行目で条件が一致して実行されてしまった場合、
3行目4行目は全く無視されてしまうのでしょうか。
例えば$a=3の場合、
1行目で($a==0){}
2行目で($a>1){}
3行目で($a<5){}
ならば実行するのは2行目だけということになるのでしょうか。条件的には3行目も一致してますが。
0735nobodyさん
2005/06/12(日) 01:09:46ID:???0736nobodyさん
2005/06/12(日) 02:22:43ID:tHGZxkkt0737nobodyさん
2005/06/12(日) 04:04:34ID:???使えない how-to なんざ要らない。
0738nobodyさん
2005/06/12(日) 10:46:18ID:mg9EnuHa0739nobodyさん
2005/06/12(日) 11:33:47ID:???セックスする
そうではなく、もし>>733が童貞ならば
オナニーする
そうではなく、もし>>733が包茎ならば
皮オナニーする
それ以外ならば
電車に飛び込んで死ぬ
0740nobodyさん
2005/06/12(日) 14:08:10ID:???0741nobodyさん
2005/06/12(日) 15:00:40ID:???else : 他に、さもないと。
君の書いている例は、elseを使った時の動きではなく、
if($a==0){}
if($a>1){} .. のように 各行でelse付きでは無いif文を実行した時の挙動。
if($733 == 'man'){ セクース; }elseif($733 == '高村光太郎'){ オナーニ; }elseif($733 == 'タートルネック'){ 皮オナーニ; }
従って、皮オナーニをするためには、経験済みの女性で包茎でなければならない。
一方、if($733 == 'man'){ セクース; } if($733 == '高村光太郎'){ オナーニ; } if($733 == 'タートルネック'){ 皮オナーニ; }
であれば、包茎であれば誰でも皮オナーニをできることになる。
0742nobodyさん
2005/06/14(火) 03:18:53ID:???を実行させる場合なんですが、
yyy.cgi内でrequireするファイルをxxxディレクトリに置いた場合でも
require"zzz.txt";
の表現でいいのでしょうか?どうもこれをやると動かなくなるようなんです。
だとすると、zzz.txtは現在のディレクトリに置かねばならないということでしょうか。
0744nobodyさん
2005/06/16(木) 13:39:39ID:???0745質問
2005/06/17(金) 09:26:48ID:OQ7/eWl1たとえば、
1 #!c:\perl\bin\perl
2 $data=$kazu+$seisuu;
3 print << "END";
4 <html>
5 <head></head>
6 <body>
7 $data
8 </body>
9 </html>
10
11 END
の、1,2の行のことです。
0747nobodyさん
2005/06/18(土) 14:41:58ID:3opMwgWN0748質問
2005/06/18(土) 17:25:08ID:DZNl0XpA本来の出力画面ではなく、別の画面(たとえば不正な処理ですなど)を出す方法があれば教えてください。
0749nobodyさん
2005/06/18(土) 17:29:10ID:???入力で区別できる(本来ならcgi?name=valueで呼び出されるとか)ものなら、
それを判定してエラー画面を出力するようにしましょう。
0750質問
2005/06/18(土) 17:43:41ID:DZNl0XpAあまりその当たりがよくわかっていません。
もしできるのであれば、呼び出す側のHTMLファイルからの呼び出しのみ表示するようにしたいのですが・・
これもまたよくわかっていないので見当違いな考えかもしれませんが・・
0751nobodyさん
2005/06/18(土) 17:51:43ID:XRAEkWYjとんでもない言論弾圧法案=「人権擁護法」が国会に提出されようとしています!!!
この法案の真の狙いは、
@社会的には、2ちゃん/ブログをはじめとしたネット世界の一般人の小うるさい言論の圧殺であり、
A政治的には、拉致問題強硬派&在日参政権反対の自民右派の消滅です。
民族(朝鮮・中国・韓国)/ 同和 /信条(宗教・層化・赤化)他に関する一切の差別的発言を禁じるという狂気の法律です。
この法律の前例の無い恐ろしい特徴は、特定人に関する言動は当然、不特定多数の集団に関する一般的発言
(朝鮮人は〜〜と書くこと)までも圧殺しようとする点にあります。
◆違反者には、無令状捜索・差押、出頭要求、矯正教育が待っており、それを拒否すると、
さらに罰金30万&氏名・住所などの全国晒し上げを食らう(61条)という仰天内容です。
一刻も早く、防戦する安部先生達に、日本国民の怒涛の援護射撃をお願い致します!!!
※※以下5つともアドレス中に★をはさんであります、★を消去の上、どうか必ずご覧下さい!!※※
http://zinkenvip.fc2web.co★m/
http://blog.livedoor.jp/no_gest★apo/
http://blog.livedoor.jp/monste★r_00/
↑↑【凶悪法案の問題点&背景の全て】
http://www.kantei.go.jp/jp/forms/goik★en.html
↑↑【首相官邸ご意見フォーム】イメージと違って、ここは非常に効果ありです!
全部読んでくれます、投稿テーマで返事が変わります!
http://meyasu.jimin.or.jp/cgi-bin/jimin/mey★asu-entry.cgi
↑↑【自民党目安箱】事態は急を告げています。文章は簡単でいいので、国民の「人権擁護法」への反対意思を、
とにかく 1 秒 も 早 く 党本部に伝えて下さい!
■□■人権擁護法ストップin日比谷公会堂 6/19(日)12:30〜16:00・無料・超大物国会議員登場・皆さん大挙してご参加を!■□■
0752nobodyさん
2005/06/18(土) 17:52:45ID:???0753nobodyさん
2005/06/18(土) 18:45:24ID:???0754nobodyさん
2005/06/19(日) 09:33:28ID:???なんかCGIでやらなければならないと聞きました。
具体的にはどうすればいいんでしょうか?開設してるサイトとかないですかね?
0755nobodyさん
2005/06/19(日) 12:21:20ID:Le0SqOYOCGI の実行は一度にひとつしか許可されていない上、処理時間が数分に及ぶので
不要なプロセスは早めに終了させてしまいたいのですが。
httpd側は一切弄れませんが、systemでunixのコマンドを一部呼べます。
Apache/1.3.27 (Unix), Perl version 5.005_03 built for i386-linux
0756nobodyさん
2005/06/19(日) 12:24:05ID:???0757nobodyさん
2005/06/19(日) 13:31:25ID:???0759nobodyさん
NGNGクライアントの切断を感知するにはSIGTERM をトラップするよろし。
0760nobodyさん
2005/06/19(日) 17:27:03ID:???SIGTERMではなくSIGPIPEをトラップすることで解決しました。
ありがとうございました。
0761nobodyさん
2005/06/19(日) 20:30:26ID:RQ9P6osfWeb制作板と悩みましたがおそらくこちらかと思いましたので来ました。
テキストファイルとか画像ファイルに<a href="filename.txt"></a>とやると、普通はブラウザでそのまま開きますよね。
ですが最近、ただのテキストや画像なのにダウンロードダイアログを出させるサイトを見かけます。
サーバ側から何かヘッダを出せばこうなるんでしょうか。方法を教えてください。
0762nobodyさん
2005/06/19(日) 20:34:57ID:???0763761
2005/06/20(月) 00:31:15ID:???めっちゃピンポイントです。
ありがとうございます!
0764nobodyさん
2005/06/20(月) 13:21:15ID:/KdGf4RPパニくってます。ヒントをください。
0765nobodyさん
2005/06/20(月) 17:15:48ID:???0766nobodyさん
2005/06/20(月) 19:01:16ID:i6HqYyxGhttp://www.hk.airnet.ne.jp/~ahero/cgi/cgiex11.html
上記URLを参考にしCGIを作成しました。
パソコンからは問題なく利用できるのですが、
携帯からjigブラウザから利用するとアップロードできません。
ファイルのアップロードに対応しているブラウザで、
確認はできているのですが、上記URLを参考として作成したものでは
アップロードできませんでした。
問題となる点はどの辺でしょうか?検討もつきません。
ご教授下さい。
0767nobodyさん
2005/06/20(月) 19:58:05ID:???だけでは何とも。
0768766
2005/06/20(月) 20:30:03ID:i6HqYyxG説明不足ですいません。
具体的にはFORMデータにfiledata意外にもhiddenで引数を渡しているのですが、
hiddenも正常に取得でき、アップロードしたファイルの拡張子も取得できます。
length($s);ではファイルサイズが0になるため、
バイナリデータだけが取得できていないような感じです。
ちなみにKENTさんのClip Boardではjigブラウザでアップロードできました。
0769nobodyさん
2005/06/21(火) 22:14:17ID:???ここの掲示板を使いたいと思って、cgiを初めていじってるんですけど、
パーミッション設定をマニュアル通りにしてアップしても403になってしまいます。
サーバーはinfoseekです。
どうしたら403を解除できるでしょうか?お願いします
0770nobodyさん
2005/06/22(水) 03:19:16ID:???CGI設置について質問 【Part2】
http://pc8.2ch.net/test/read.cgi/php/1104624784/l50
0771nobodyさん
2005/06/22(水) 23:10:32ID:???そっちで聞いてみます
0772nobodyさん
2005/06/23(木) 01:31:37ID:???例:
http://pc8.2ch.net/test/read.cgi/php/1097334246/l50
http://pc8.2ch.net/test/read.cgi/php/1097334246/100n-
read.cgiはCでやっているようですが
ttp://sunos.saita.ma/2ch-cgi-lw.html
私はPerlでやりたいとおもっています。
0774nobodyさん
2005/06/23(木) 02:31:47ID:rmbTSRjuと言うようなアドレスで(aaaがファイル名でそれ以下はPATH_INFOの引数)
<APPLET CODE="aiueo.class" WIDTH="100" HEIGHT="100"></APPLET>
というHTMLコードを含む出力を行ったのですが、
何故かaiueo.class(aaaと同じディレクトリにある)を見つけてくれません。
CODE="http://〜"とURLで指定してもダメでした。
同様のコードを持つHTMLファイルをaaaと同じ位置にアップして試してみると成功します。
CGIから成功させたいのですが、アドバイスをください。
0776nobodyさん
2005/06/23(木) 17:01:20ID:pOoH54jvMimeTexとかだとバイナリが動かせる必要がありますよねぇ
しかもプロバイダのスペースでやりたいのでPerlしか動かせないんですよねぇ
たとえばhttp://www.forkosh.dreamhost.com/cgi-bin/mimetex.cgiのようなものを借用
できるとうれしいと思っているのですが、どこか開放してるとこありますか?
0777774
2005/06/23(木) 19:49:38ID:???0778nobodyさん
2005/06/23(木) 21:23:10ID:zPnZvcH4有効期限0のクッキーの有効範囲に関する質問なのですが…
http://aaa.com/bbb/ccc.cgi
上記でクッキーを発行した場合、
http://aaa.com/bbb/ddd.cgi
↑では有効なのですが、
http://aaa.com/ccc/aaa.cgi
↑では取得できませんでした。
これはクッキーの有効範囲の設定によるんでしょうか?
それとも私が気がついていないだけで、単なるプログラムエラーなのでしょうか。
微妙な質問で申し訳ありませんが、
分かる方いらっしゃいましたらご教授お願いします。
0779nobodyさん
2005/06/23(木) 21:51:27ID:???0780nobodyさん
2005/06/23(木) 21:52:40ID:???ページ間はperlで内部処理後、locationヘッダを出力して飛ばしています。
0782778
2005/06/24(金) 10:25:25ID:t8apLJw0失礼しました。
モジュールを覗いてみたところ特に変わったことはしておらず、
セット時は
print "Set-Cookie: $name=$value;$expires\n\n";
取得時は
$ENV{HTTP_COOKIE}
から加工して取り出していました。
今日朝からもう一度テストしてみたところ、
やはりフォルダを移動するとスコープが変わってしまうのか、
クッキーの対応環境変数が全部消えてしまうようです。
この仕様?に関する資料などご存知の方がいらっしゃいましたら、
ご教授お願いします。。
0783nobodyさん
2005/06/24(金) 10:41:34ID:???Cookieの発行場所を変更するのもありだけど。
0784nobodyさん
2005/06/24(金) 11:31:14ID:???ご教授ありがとうございます。
つぎはぎだらけの有り物のサイトの修正作業中なので、
様子を見ながら修正していきます…。
0785ATK
2005/06/25(土) 19:27:16ID:xeCuBh6O無料で
即答願う!
0788nobodyさん
2005/06/25(土) 21:44:42ID:???■ このスレッドは過去ログ倉庫に格納されています