CGIだけどなんか質問ある Pert 5.01
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/03/03 12:49ID:673UxTI50268262
02/03/08 09:47ID:???~ s/(\W)/'%' . unpack('H2', $1)/eg;
ってやったらうまくいきました
0269相撲車
02/03/08 09:53ID:???即レスありがとうございます。
法律の概要には目を通してみましたが、サービスの範囲内の利用と思えた
ので使用してみました。法律本文を見ないとダメなんですかね?
mail from:プロバの自分のメアド
と書いておけばいいんでしょうか?
ちなみに、smtpサーバはなぜか認証要りませんでした。そして、メールは
自鯖へアクセスしてきた人がメンバー登録したときのパスワード送信用と
いう利用目的なので、設置したとしても利用者は内容を編集できないです。
そんなのでも危ないでしょうか?
0271nobodyさん
02/03/08 10:56ID:inegq+pM現在の@LINESに格納されている文字列全体が何バイトなのかを
知る方法ってないものでしょうか?
0272nobodyさん
02/03/08 11:08ID:???好きな方法を使えや。
1.
$size = length join "", @LINE;
2.
$size = 0;
$size += length for @LINE;
0273相撲車
02/03/08 19:39ID:ol/NmE/5意味がわからず、ネット中を転々…。
どこか有効な解説サイトご存知の方、教えてはくださらぬか?
DNSの役割はわかるけど、細かい用語が意味不明という程度の知識です。無いに
等しいです。
0274nobodyさん
02/03/08 20:50ID:JBnFAxe6いかないのですが、UserIDとPassをcsv or tabで管理するので、
それを一括で登録するだけのcgiってありますか?
0276相撲車
02/03/08 23:39ID:XJfzC2SF忠告どうもです。
でも、仕組み理解っていってもキリが無いと思うのですが、どの程度把握しておけ
ばいいのですか?普段全く使っていない頭をどうにか使いたいのですが。
昨晩から、ずっと悩んでいた問題は結局MXレコード記録してくれないDNSに登録して
いてもAレコード参照してくれるということで解決したっぽいです。そして現在Postfis
が動かないという問題に直面。
まぁ、オレみたいな厨は家庭内LANで実験でもしてからWANに繋げろ、ということで。
0277相撲車
02/03/08 23:42ID:???0278nobodyさん
02/03/09 14:09ID:qqwIDSpw配布しているCGIのデザインを変えたり、とかはあるんですが最初から作ったことが無いのです。
とりあえず掲示板やアクセスカウンタなどを作りたいのですが・・
KENTと作ろうPerlでCGI はどうでしょうか?
0284初心者
02/03/09 19:43ID:q9DQVSy0HTMLのinput type="text"
name="data0","data1","data2",..."dataX"までの入力データを
ループで処理したいのですが
$iがループするとして
$ran = "data$i";
$length = (length($in{"$ran"}));
$lengthが文字数をとってくれないのですが、おかしいところありますか。
0285nobodyさん
02/03/09 20:11ID:???$length = length($in{"$ran"});
ところで、$ranの内容は?
当然それくらいデバッグしてんだろ?
0286nobodyさん
02/03/09 23:36ID:???とかファイル名に ./ を付けた形で呼び出しますよね?これは必須ですか?
あと、その呼ばれた CGI が内部で呼び出すデータファイル等にも時々 ./ が
ついてたりしますが、環境 (httpd 等) によっては無いと不味いんでしょうか?
いや、unix 系で安全の為にカレントは PATH に含めて居ないのは知っていますし
その場合の実行方法が PATH を含めなきゃいけないのも知っています。
もしかして RFC の規定とかでしょうか?
0288nobodyさん
02/03/09 23:40ID:???CGIはURLと言う文字列によって場所が一意に決まる。
httpdはURLとファイルシステムをマッピングし、実行する。
URLにはPATHと言う概念がないため、誤実行の恐れはない。
0289286
02/03/10 00:05ID:???やっぱそうですよねぇ。
web 上のサイトで (本は持ってないので) よく見かけるんですが、
あれは一体どういう理由で付けてるんでしょうねぇ。
まぁ本人に聞かないとわからないのかもしれませんが、みんな一様に
あの記述方でしたのでずっと気になっていますた。
結論: ./ は要らない。
0292nobodyさん
02/03/10 00:13ID:???呼び出し元のファイルの場所がカレントになるんだから./は冗長ではあるが間違いではない。
使える以上否定するのは得策ではない。
0293nobodyさん
02/03/10 00:19ID:???0294291
02/03/10 00:19ID:???私の頭が少し unix shell 寄りだったという事ですね (苦笑
0295初心者
02/03/10 00:50ID:nlk31vWZレスありがとうございます。
追加して状態の説明です。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ループ内に
$ran = "data$i";
print "RAN2:$in{$ran}<br>";
↑を組み込むと、ちゃんと$in{$ran}を出してくれます。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−
$i=1のとき
$in{"data1"}の内容は日本語文字であったり英語半角であったあり色々ですが、
$length = (length($in{'data1'}));
print "$length";
print "$in{data1}";
では両方とも正常に値を出すのですが、
{}内に変数を入れるとうまく動きません。
$length = (length($in{$ran})); →何の数字も出しません。
$length = (length($in{"$ran"})); →何の数字も出しません。
$length = (length($in{'$ran'})); →$ranを変数として認識しません。
0296nobodyさん
02/03/10 00:53ID:???リストと勘違いされても文句は言えん。
0297nobodyさん
02/03/10 02:03ID:???話終わったみたいだけれど ./が無いと動かないshellあるべさ?
./にPATH通ってないの。
unixよりとか云々じゃなくPATHを理解してないんじゃ?
0299nobodyさん
02/03/10 04:03ID:OHdoISBH一昼夜くらいで早く作ってくれる所あるでしょうか。
難しい改造ではないので、わかる人にはちょちょいだと
思うのですが。
0300nobodyさん
02/03/10 04:16ID:???キチンと説明出来るなら、やってくれる人居るかもね。
スクリプト改造工房 Part4
http://pc.2ch.net/test/read.cgi/php/1012839651/l50
0301nobodyさん
02/03/10 05:33ID:8R88bCKCシンプル。観覧者による一行レス可能。
画像UPロード(これはタグで回避できるからいいとして)
みたいなのないですかね?
探してみたものの、一応あったんだけど、レス生成欄がでかすぎたりとか…。
ゴミゴミしてるとか。カレンダー形式とか。
要望に会わないのばかりで困ってます;-;
とにかくシンプルでタグ可能観覧者による一行レス可能。
な日記CGIないでしょうか?
知ってる方いましたら教えてくれると嬉しいです。
0302Name_Not_Found
02/03/10 05:56ID:???0303nobodyさん
02/03/10 05:59ID:???スレ違い。
0305nobodyさん
02/03/10 06:40ID:???探してますスレッドありました><
すいませんでしたー。
向こうで聞いてミマス!
0306 ◆a/globe2
02/03/11 03:22ID:WZhG/BNpMacからだと拡張子を取れないようです
どうすればいいんでしょうか
0307nobodyさん
02/03/11 03:40ID:???環境変数にコンテントタイプが出てるかもしれない。
投稿者にファイルの種類も投稿してもらえば手間がないけど,信頼度は低い。
ファイルのヘッダ調べるのが確実だけど,手間がかかるためほとんど使われない。
0308 ◆a/globe2
02/03/11 03:44ID:WZhG/BNpコンテントタイプの振り分けを細かくすればいいんですかね、、、。
一応拡張子を入力してもらう欄を設置するとか(Macの場合のみ表示で)
0309nobodyさん
02/03/11 04:35ID:???ファイルヘッダ読むのは難しいですか?
できそうなら↓とかが参考になりますよ
http://www.wotsit.org/default.asp
0310A Patch
02/03/11 06:35ID:7j09hA/VAnHttpd のように Perl.exe のパスを決め打ちできないでしょうか?
プロバイダにアップする CGI で #!local/usr/bin などと書いておきたいので
#!C:/Perl だと困るんです。アップするたびに書き換えるのも面倒だし
それがために Perl を C:\local\bin にインストールなんて馬鹿げたことも
したくないです(複数のサーバを持っていてそれぞれ Perl のパスが
違ったら終わりじゃない?)。
出来ないのであれば素直にあきらめますが何か設定があれば
あるいは何らかの方法があれば教えていただきたいです。
0312nobodyさん
02/03/11 19:44ID:???うちの近所の本屋はCGI関連の本が少ないんですよ。
だからkentと作ろう〜の内容もよく知らないんです。
そこで聞きたいのですが、kentと作ろうperlでCGIには
Windows98にperl本体をインストールするところや
if文などの関数についても解説してるでしょうか?
0313nobodyさん
02/03/11 20:08ID:???ttp://tohoho.wakusei.ne.jp/
ここの方がよっぽど親切。
0314 ◆a/globe2
02/03/11 21:00ID:1vbRZmtL指定した投稿できるファイルの最大容量
よりファイルサイズがちっさいのにエラーになります
インターナルサーバーエラなのでCGIだしてるエラーではないようです
cgi-lib.plのReadナントカっていうサブルーチンを取り込んでるんですが
それが問題かなともいます
imgboradなどではそのようなエラーは出ないようなので
どういうことなのかなと思っております
わかる人がいらっしゃれば教えてください
0318310
02/03/12 00:40ID:???すみません、意味がわかりませんでした。
0319nobodyさん
02/03/12 01:15ID:???SSIで一括表示してるんですが、リンク先のURLを変えずクリック数をカウントするにはどうしたらいいでしょうか
0320nobodyさん
02/03/12 01:27ID:???リンク先にアクセス解析を入れてもらう。
0322sage
02/03/12 03:08ID:XpAJ+W0c>リンク先のURLを変えず
って部分が引っかかるのだけど・・・
結果的に表示されるページが変わらなかったらいいって事?
それとも<a href="http://www.hoge.com">という
タグ自体が変わったらまずいって事?
通常は321さんの方法を使うけど、これだとタグ自体が変わるしね。
0323ぷうすけ
02/03/12 07:00ID:al7KKwB3言語はperlです。
0325ぷうすけ
02/03/12 10:10ID:NiSfFmxxすんません、書き方悪かったです。
わかる方、方法を教えてください。私は何処へいくべきでしょうか?
0326nobodyさん
02/03/12 10:17ID:???googleに行って「LWP」や「socket」を「perl」と組み合わせて検索。
0327nobodyさん
02/03/12 14:20ID:???CGIを UTF-8 で保存して実行してみたら、一行目でエラーが出ました。
> perl -v
This is perl, version 5.005_03 built for i386-freebsd
>perl utf8.cgi
Unrecognized character \357 at utf8.cgi line 1.
テキストエディタで見るとちゃんと先頭は #!/usr/bin/perl で始まっていて、
改行も LF になってるのですが、バイナリエディタで見ると、
# の前に EF BB BF というなぞのコードがくっついており、
これのせいでエラーが出ているようです。
これを動くようにするにはどうしたらいいんでしょう。
作成に使ったのは Windows 用の Dana というテキストエディタなのですが、
バイナリエディタで先頭3文字削除しても、
また Dana で編集するとその3文字がくっつくし…。
つか、CGI を UTF-8 に改造するってページ検索したけど、
こんな問題どこにもなかったし。秀丸とかだといいのかなあ。
…長文スマソ。入り口以前のところでつっかかってて泣きそうです。
0328nobodyさん
02/03/12 15:13ID:???utf8に対応しているのはperl5.6以降です。新しいperlを入れましょう。
それとutf8プラグマ使った方が良いでしょう。use utf8;
Perlのユニコードの対応は万全とはいえないので、・・・(以下略)
0329nobodyさん
02/03/12 15:58ID:???アドバイスありがとうございます。
たしかにWin用のActive Perl(5.6.1)では動きました。
そこで、perl5.6 が入っている biglobe にアップして
実験してみたのですが、500エラーになります。
さっきとは違うエラー内容なのですが、やはり
#!/usr/bin/perlの行でひっかかってます。
エラーログには utf8.cgi: Exec format error としかないのですが、
まったく同じ内容のスクリプトを SJIS で保存してうpすると
こっちは問題なくうごきます。
ちなみに、テストスクリプトは
#!/usr/local/bin/perl
print <<__EOD__
Content-type: text/html;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;">
<title>UTF-8 で出力するCGI のテスト</title>
</head><body>
<h1>UTF-8 マンセー( ´∀`)</h1>
</body></html>
__EOD__
こんな感じです。
0331nobodyさん
02/03/12 16:04ID:???0332nobodyさん
02/03/12 16:39ID:???げ!
まあ、2行目のprint 以下になんもないので、見逃してください。
>>331
telnet でシェルに入って実行した時のエラー
>./utf8.cgi
./utf8.cgi: 鏤殖!/usr/local/bin/perl: not found
use: not found
: not found
print: not found
>
( ゚д゚)…ミンナハドウヤッテクリアシテルノカワカラナイヨ
あきらめて SJIS で HTML4.01 Strict な CGI にします・゚・(つД`)・゚・。
0333327=329=332
02/03/12 16:43ID:???0334nobodyさん
02/03/12 17:00ID:???#!/usr/local/bin/perl
↑これはあっているの?
#!/usr/local/bin/perl5 とかだったりしない?
0335332
02/03/12 17:14ID:???同じソースをSJISでうpすると動くんですぅ。
SJIS で動作している CGI をそっくりそのまま UTF-8 に変換して
エラーが出てるんです。
UTF-8 に変換したのがローカルで perl utf8.cgi で動いてるのも確認してるし、
use utf8; もいれたし、
FFFTP でアスキー送信のボタンがへっこんでるの確認して送信してるし、
うpされたファイルのバイト数が減ってる(CRの分)確認してるし。
他にどこを確認したらいいでしょうか。
0336nobodyさん
02/03/12 17:49ID:???0337nobodyさん
02/03/12 17:53ID:???>作成に使ったのは Windows 用の Dana というテキストエディタなのですが、
>バイナリエディタで先頭3文字削除しても、
>また Dana で編集するとその3文字がくっつくし…。
これが原因でperlのパスがおかしくなってると思う。
>>332のエラーは実行するプログラムが見つからないってことでしょ。
普通のテキストエディタ使おうよ。
0338332
02/03/12 17:53ID:???utf8.cgi を
#!/usr/local/bin/perl
use utf8;
require "utf8.pl";
にして、ascii で保存。
utf8.pl を
print <<__EOD__;
Content-type: text/html;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;">
<title>UTF-8 で出力するCGI のテスト</title>
</head><body>
<h1>UTF-8 マンセー( ´∀`)</h1>
</body>
</html>
__EOD__
1;
にして、UTF-8 で保存。サーバーにうpして動きました。
よその人がどうやってるのかわからんけど、
今後はこの方法で作成します。みなさんありがとう。
0339332
02/03/12 17:55ID:???普通のテキストエディタってどんなのかわからないんですが、
xyzzy も terapad も同じように先頭3文字くっつきやがりました。
疲れました。
0340nobodyさん
02/03/12 18:18ID:???秀丸はEF,BB,BF=BOM(Byte Order Mark)付いてないみたい。
ほとんど秀丸しか使ってないからそういうものだと思いこんでしまった。ゴメン。
EmEditorは付けるか付けないか選べた。notepadは付いてた。
とにかく#!をシェルに読ませないことには動かないでしょう。BOMは邪魔だね。
0341nobodyさん
02/03/12 18:32ID:???xyzzyだとM-x change-fileio-encodingでutf8nするとはじめの3バイトつかないよ。
utf8だと付く。
ってことでがんばれー。
0342nobodyさん
02/03/12 18:36ID:ip/rxryKuse File::Basename; で宣言してbasenameを使いたいんだけどうまくいかないです。
$filename = 'C:\tmp\mona.jpg';
$basename = basename($filename,"");
だけど$basenameには全く処理のされないまま$filenameと同じモノが…
何が悪いのかな?
0343339
02/03/12 18:36ID:???なるほど。先頭につけないエディタもあるんですね。
xyzzy に utf8 と utf8n と2つあるのはそういう意味だったんですか。
とりあえず、メインエディタを Dana から xyzzy に移行することにします。
ありがとう。
0344nobodyさん
02/03/12 18:45ID:???こんなんでどう?
use File::Basename;
fileparse_set_fstype(MSDOS);
$filename = 'C:\tmp\mona.jpg';
$basename = basename($filename,"");
print $basename;
0345342
02/03/12 18:55ID:???fileparse_set_fstype(MSDOS); ってのが多分ミソなんでしょーけど
これを自動判定させる方法って無いもんでしょうか?
敵はUNIXもMacも想定せなアカンので…
0346nobodyさん
02/03/12 19:08ID:???0347nobodyさん
02/03/12 19:15ID:YNqS+HR0って、タイムアウトを設定できますか?
0349nobodyさん
02/03/12 19:26ID:YNqS+HR00350ぼくフェロー
02/03/12 19:54ID:/5Jn0bAAある変数 $a に入っている文字列が数値を表すか否か
判断するにはいかなる手段がありますでしょうか?
たとえば,次のように判別したいのですが.
$a = 100 ==> 数値
$a = -1.0 ==> 数値
$a = 1e-100 ==> 数値
$a = 'abc' ==> 数値ではない.
0351342
02/03/12 19:58ID:???$FORM = new CGI;
$filename = $FORM->param('img');
fileparse_set_fstype(MSDOS) if $^O eq 'MSWin32';
if ($filename) {
だらだら処理
}
反応してくれないよ…
0352346
02/03/12 20:38ID:???「敵はUNIXもMacも〜」って、CGIを動かすブラウザがUNIXかMacかわからんってこと?
UNIXかMacかわからないサーバで動かせるスクリプトを組もうとしているのかと。
$basename =~ ($filename =~ /[\/\\:]([^\/\\:]+)$/)[0];
でいい?
\とか:とか/が入ってるファイル名は上手く取れないが、一応Win/unix/Mac対応。
0353346
02/03/12 20:39ID:???○ $basename = ($filename =~ /[\/\\:]([^\/\\:]+)$/)[0];
スマソ。
0354nobodyさん
02/03/12 23:18ID:???0355nobodyさん
02/03/12 23:20ID:???とかってスレッド立ててください!
0356nobodyさん
02/03/12 23:52ID:OrWEi2X1と同じように同一ページに持っていきたいです。識者の方、教えてください。
http://uho.s7.xrea.com/cgi-bin/yy2ch/
0357識者
02/03/12 23:55ID:???0358nobodyさん
02/03/12 23:55ID:???新着スレ表示するところで<BR>を書かない。
ページにフォームを書き出す。
0359名無しさん
02/03/13 00:48ID:???・・・というのはここで相談してOK?
0360nobodyさん
02/03/13 01:37ID:???0362nobodyさん
02/03/13 06:41ID:P3iVCwDD0363nobodyさん
02/03/13 06:44ID:???0364nobodyさん
02/03/13 22:30ID:0MaZQ+xJ0365nobodyさん
02/03/13 22:35ID:12II/YOS0366nobodyさん
02/03/13 22:41ID:???↑このスレッドで聞いた方がいいのでは?
Perl,CGIってなってるから、Perl限定じゃないでしょ。
0367nobodyさん
02/03/13 22:43ID:???月宮あゆのPerl教室 Part.4
http://pc.2ch.net/test/read.cgi/php/1014096840/l50
君と同じ質問してた人がいる。
後、いい答えも出てる。
■ このスレッドは過去ログ倉庫に格納されています