トップページphp
1001コメント327KB

CGIだけど、なんか質問ある?Part 5

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。01/12/26 10:51ID:???
■過去ログ
 Part 3 http://pc.2ch.net/test/read.cgi/php/988727833/l50
 Part 4 http://pc.2ch.net/test/read.cgi/php/1000804655/l50

その他参考になるスレッドを >>2 に纏めたので、十分に調べた上で質問して下さい。
0061名無しさん@お腹いっぱい。 01/12/28 01:30ID:???
>>57
何が言いたいのか分からない。
環境変数ってどの環境変数??
URIとして解釈されないとパラメータの意味が無くなると思うんだが・・・・
00625401/12/28 01:50ID:???
今いろいろ見てきました。
hoge.cgi/**
の、**の部分が環境変数PATH_INFOに入るということは実験できたのですが、
それでもcgiの実行結果が返ってくるということはhttpdはそのディレクトリは探してないのでしょうか??

>>61
ちょっと自分でもこんがらがって、うまく伝えられない状況(;´Д`)
ググールへ逝って来ます・・・。
0063名無しさん@お腹いっぱい。01/12/28 02:09ID:???
ああ、そう言う事か
httpdがリクエスト貰ったらDocumentRootからディレクトリを辿って行くのな。
んでディレクトリじゃ無くてファイルか見つかった時点で
httpd_conf何かの設定を見て、そのファイルがexecCGIされてたら
/ 以降をhttpdがEnvのPATH_TRANSLATED何かにセットしてファイルをオープンする訳
まあ大体どんなサーバでもこんな感じでファイルを探してる
これでOK?
0064名無しさん@お腹いっぱい。01/12/28 02:11ID:???
だからこれは通らない訳だな
http://pc.2ch.net/php/index.html/foo
00655401/12/28 02:41ID:???
>httpdがリクエスト貰ったらDocumentRootからディレクトリを辿って行くのな。

なるほど、これで謎が解けました。
つまり、優先順位(?)はディレクトリよりファイルが先だからhoge.cgiが見つかって
それが実行出来る物であったら、それ以下、?より前の部分がPATH_INFOに入れられるワケですね。

口下手ですいませんでした、ありがとうございました。
0066あげてみる01/12/28 09:35ID:???
>>64
通らないってどゆこと?
普通に見えちゃったんだけど・・・。

けど、webprog板だけ、何故かバナーと背景が見えないなあ。
他の板は普通に見えるのに。
謎だ。なんか基本的なことを見落としているのだろうか・・・。
0067名無しさん@お腹いっぱい。01/12/28 09:50ID:???
> つまり、優先順位(?)はディレクトリよりファイルが先だからhoge.cgiが見つかって
優先順位も何も、同じ名前でファイルとディレクトリは作れない。
0068名無しさん@お腹いっぱい。01/12/28 10:28ID:I1y72yIj
i-mode用サイトでPCのアクセス不可にしてるとこがあるけど、
CGIでやる場合はHTTP_HOSTで振り分けるの?
0069名無しさん@お腹いっぱい。01/12/28 11:36ID:???
いや、REMOTE_HOSTじゃないかに
0070 01/12/28 11:38ID:???
REMOTE_HOSTかHTTP_USER_AGENTだね
0071初心者ですみません01/12/29 07:33ID:IhpmkgLt
書くところ間違えた(鬱)

掲示板のレス部分にタイトル変更機能が付いてない物を改造しているのですが、
親記事のタイトルが$subj、レスが$rsubjに格納しているとして
if ($subj) { $rsubj = "Re\: $subj"; }
print "\t<b><font color=\"#ff00ff\">$rsubj</font>

これでレス部分に「Re:(親タイトル)」表示が出来たのですが、
自分がレスフォームから書き込んだタイトルを反映させるにはどうすればいいでしょうか。
<input type="text" size="30" name="rsubj" value="Re: $subj">
このようにタグは書いています。
0072 01/12/29 09:46ID:???
ソース無しにどう答えろと?
0073 01/12/29 09:48ID:???
それからスクリプトの改造はこちら
http://pc.2ch.net/test/read.cgi/php/988808396/
0074ななぴ01/12/29 10:23ID:A1ZmLDMN
正規表現ってなに?簡単に言えや
0075名無しさん@お腹いっぱい。01/12/29 11:04ID:???
Regular Expressions
00762チャンネららら01/12/29 18:45ID:Dxg9d8II
ここのスクリプトはどう?
2ch型なんだけど・・・。

2ch型マイナー掲示板「はにちゃんねる」
http://www.isn.ne.jp/~honey/hc/
アクセス数アップキャンペーン中、みんな紹介よろしこ。
0077名無しさん@お腹いっぱい。01/12/29 19:24ID:RtOopK2q
htaccessって何て読むんですか?
0078名無しさん@お腹いっぱい。01/12/29 19:26ID:???
>>77

ハイパーテキストアクセス
0079名無しさん@お腹いっぱい。01/12/29 19:27ID:???
ht(tp)-accessと考えれば自ずと…。
0080娘にハァハァ01/12/29 23:25ID:???
Hな父さんがアクセス
0081デフォルトの名無しさん01/12/30 00:45ID:???
エッチティーティーピーディーアクセスコンフィギュレーションファイル
0082どこが違うの?01/12/30 08:08ID:Xs3aU9Xx
#!/usr/local/bin/perl

$rhost = $ENV{'REMOTE_HOST'};

print "Content-type: text/html\n\n";

print "<html><head><title>ENV REMOTE_HOST</title></head><body>\n";
print "あなたのリモートホストは、$rhostです。\n";
print "</body></html>\n";
0083どこが違うの?01/12/30 08:13ID:Xs3aU9Xx
あ、REMOTE_ADDRだと出来た。
なんでリモホはダメなのかなあ
0084名無しさん@お腹いっぱい。01/12/30 11:18ID:???
なにがどうダメなの?
あなたの脳内を他人は読めないよ
0085名無しさん@お腹いっぱい。01/12/30 11:21ID:???
>82-83
最近は使えないところが多いね。
何でダメかはサーバー会社にでも聞いたら?
0086名無しさん@お腹いっぱい。01/12/30 12:14ID:???
>>82
gethostbyaddrとか使っても駄目かい?
0087どこが違うの?01/12/30 12:16ID:???
>>84
アクセスしても、「あなたのリモートホストは、です。」
しか出てこない。

>>85
あっ。そうですか。リモートホスト取得
ってなんか鯖に不都合な事ってあるんですかね?
0088どこが違うの?01/12/30 12:17ID:???
>>86
なにそれ
0089名無しさん@お腹いっぱい。01/12/30 12:54ID:???
http://www.google.com/search?q=%8C%9F%8D%F5%83G%83%93%83W%83%93+%8Eg%82%A2%95%FB&hl=ja&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0090名無しさん@お腹いっぱい。01/12/30 13:15ID:???
>>82

$host= $ENV{'REMOTE_ADDR'};
$host = gethostbyaddr(pack('C4',split(/\./,$host)),2) || $host;
0091名無しさん@お腹いっぱい。01/12/30 14:25ID:u8VYHHVb
>>82

if ($ENV{'REMOTE_HOST'} eq $ENV{'REMOTE_ADDR'} || !$ENV{'REMOTE_HOST'}) {
$ENV{'REMOTE_HOST'} = $ENV{'REMOTE_ADDR'} if (!$ENV{'REMOTE_HOST'});
$ENV{'REMOTE_HOST'} = gethostbyaddr(pack('C4',split(/\./,$ENV{'REMOTE_HOST'})),2) || $ENV{'REMOTE_ADDR'};
0092名無しさん@お腹いっぱい。01/12/30 16:18ID:???
>>87
> ってなんか鯖に不都合な事ってあるんですかね?

いちいち要求がくるたびにリモートアドレスからホスト名をルックアップしていたら、
サーバーに多大な負荷がかかるから。
通常は必要時だけ(Perlのgethostbyaddr()等で)逆引きできるしてある。
それでもiswebみたいに逆引きできないところがあるけど。
00939201/12/30 16:19ID:???
×できるしてある。
○できるようにしてある。
0094名無しさん@お腹いっぱい。01/12/31 02:15ID:j9i5Z4Nr
this_is_query.cgi?message=%90%C0%82%C1%82%C4%83%88%83V%81I
とかってやつの ? 以降を URL エンコードするってよくいいますよね。
で、その URL エンコードってのには、& や = でバラしたりとかいう作業も
含まれているとは思うんですが、
単純に + を半角スペースにしたり %7e を ~ にしたりすることだけのことは
なんていうんでしょうか?
やっぱり URL エンコード?
それとも URI エスケープ?
0095名無しさん@お腹いっぱい。01/12/31 02:39ID:???
url-decode
0096名無しさん@お腹いっぱい。01/12/31 02:55ID:9syMh91n
$host = gethostbyaddr(pack('C4',split(/\./,$ENV{'REMOTE_ADDR'})),2) || $ENV{'REMOTE_ADDR'};
0097名無しさん@お腹いっぱい。01/12/31 03:02ID:9syMh91n
>>66
>けど、webprog板だけ、何故かバナーと背景が見えないなあ。
>他の板は普通に見えるのに。
<img src="../
     ~~~
が原因。
ディレクトリが1層下になるからね。
read.cgiもこれを利用して、
<a href=66>
見たいにできるの。
0098名無しさん@お腹いっぱい。01/12/31 03:32ID:???
>>94

> で、その URL エンコードってのには、& や = でバラしたりとかいう作業も
> 含まれているとは思うんですが、

URLエンコードはURLに使用できない文字を暗号化すること。
ちなみにエンコード・デコードに分割は関係ない。
0099名無しさん@お腹いっぱい。01/12/31 12:55ID:???
URI::Escapeは誤りってことなのか。
01009401/12/31 16:20ID:+8aj9sSZ
URLエンコードって、、、いや、デコードのまちがいっす、鬱。

>>98
ってことは、暗号化や復号化の処理自体がエンコードなりデコードってことで
いいってことなんですか、、、ありがとうございます。
いや、ちょっと気になったもので。
こういう「ちょっと気になる」ってのがいちばんイライラするんですよね。
とにかく、ありがと。
0101名無しさん@お腹いっぱい。01/12/31 17:39ID:???
かなり初歩的な質問で申し訳ないですが
BBSやカウンターを取りつけるには
まずサーバーにページを借りてからするものでしょうか?
0102名無しさん@お腹いっぱい。01/12/31 18:00ID:???
「取り付ける」が何を意味するかによる。
ページを借りるって言うのも意味がわからない。
もう少し詳細を書いてくれんと答えようがないYO!
0103名無しさん@お腹いっぱい。01/12/31 18:07ID:???
もうちょっと詳しく言うと

BBSを借りてきて、実際使えるように設定するには
サーバーからHPスペースをもらってからでないと
ちゃんと設定できないのしょうか
0104名無しさん@お腹いっぱい。01/12/31 18:20ID:???
>>103
別にスペースを借りてこなくても
自分のPCで疑似環境を構築してテストしてから借りればいいんじゃん?
0105名無しさん@お腹いっぱい。01/12/31 18:24ID:JU12p1Rx
perlでセッション管理をしたいんですが、定石だとhiddenで渡すと思いますが、
その場合、ページの切り替えのときは<a>タグじゃなくて<form>で
切り替えていかないといけないのでしょうか?
リンク先がたくさんあると<form>がその分多くなってしまう気が・・・
何か良い方法があれば、ご教授ください。
0106名無しさん@お腹いっぱい。01/12/31 18:26ID:???
>103
レンタル掲示板やレンタルカウンタの事?
大方は前もって掲示板を借りてても問題は無いと思うけど。
必要な時は自分で設置するから借りた事は無いが、理論上は問題無い。
サービスによっては前もって把握したがるサービスもあるかもしれないけど。
せいぜい気にすべきは掲示板での戻り先くらいな物だろうけど、これは多分後で
設定できるだろうし。

…でもこの質問、少し板違いな気もするが。
Web製作の方がまだ良いかと思われ。
0107名無しさん@お腹いっぱい。01/12/31 19:05ID:???
>>105
GETじゃダメなの?
0108名無しさん@お腹いっぱい。01/12/31 19:58ID:???
GETにするならcookie使わないとね。
URIに埋め込むとreferer洩れした時にまずい。
0109名無しさん@お腹いっぱい。01/12/31 20:45ID:???
リダイレクトすればいい
0110名無しさん@お腹いっぱい。01/12/31 23:47ID:HmADGb+H
sunでcgiwrapが動いてるサーバがあります。
ここで使うスクリプトはeucコードじゃないとだめだっけ?
(設定によるのかな?)

文字ヴァケで悩みまくり・・・。

データをjcodeでsjisにして、保存して、見てみると文字ヴァケ・・・。
(htmlのmetaで文字コードは指定していません)
サーバの使いかた忘れちゃったよ。
0111名無しさん@お腹いっぱい。02/01/01 00:13ID:???
>>110
何か勘違いしてないか?
011211002/01/01 00:38ID:jV/yJayj
勘違いしてますね。

全部sjisにしたら直りました(たぶん・・・)
0113名無しさん@お腹いっぱい。02/01/01 01:08ID:???
新年オメデト、
なんか殺伐としてるからさぁ・・・。

あごめん、邪魔した?
0114名無しさん@お腹いっぱい。02/01/02 01:53ID:iq5oPPqB
VC++6.0でCGI作らなくちゃならないんですが、何か良い参考書ありますか?
本屋行っても全然ないんで困っちゃってます。誰か助けて。
0115名無しさん@お腹いっぱい。 02/01/02 02:09ID:???
1冊CGIの本買って読めばいい(つーかWebで十分だが)
あとはコマンドラインアプリ作ってhttpdと話すだけ
CGIよりhttpdの設定本の方が良いかもね
0116名無しさん@お腹いっぱい。02/01/02 02:15ID:???
>>114,115
標準入出力でやりとりするだけだから易しいもんだよね。
わざわざVC++なんかで組むのが馬鹿らしいくらい。
0117名無しさん@お腹いっぱい。02/01/02 02:33ID:X3xNyY3j
>>115-116
ということは、先ずは最初に何か関連本を読んだほうが良いということですね。
早速、本屋に行ってみます。ありがとうございました。
0118親切な人02/01/02 02:41ID:???

ネットサーフィン中に、凄い人気掲示板、発見!!!

「はにちゃんねる」↓
http://www.isn.ne.jp/~honey/hc/

ネット内では、現在、この掲示板の話題で、持ちきりです。
0119名無しさん@お腹いっぱい。02/01/02 02:52ID:???
CGIはインターフェイスをHTMLで作れるからいいよな。
コンソールアプリと同じような感覚で作れるし。
0120チュウ02/01/02 18:33ID:dZQOJH1p
フォームメールのE-Mail入力チェックを外したいんだけど
やりかたがわかりません。
コメントアウトが#を加えるってことまでは自分で調べたのですが
いざ#を付けてみてもうまく動作しません。
だれか詳しい人教えてちょ〜


#------------------------------------

# 入力チェック

#------------------------------------

#お名前・onamae に入力チェックをかけない場合はコメントアウトして下さい

if ($onamae eq "") {$errno=11;&error; }



#メールアドレス・emailに入力チェックをかけない場合はコメントアウトして下さい

if (!($email =~ /(.*)\@(.*)\.(.*)/)) { $errno=12;&error; }
0121名無しさん@お腹いっぱい。02/01/02 18:36ID:???
if (!($email =~ /(.*)\@(.*)\.(.*)/)) { $errno=12;&error; }

# if (!($email =~ /(.*)\@(.*)\.(.*)/)) { $errno=12;&error; }

で良いんじゃないのか?

にしても酷いスクリプトだな。マジックナンバーじゃなくて定数を使ってくれ…。
0122名無しさん@お腹いっぱい。02/01/02 21:48ID:???
グループウェアっぽいものを作っているのですが、
ユーザがログアウトしたあとにブラウザで前のページに
戻れないようにするのってどうすればいいんでしょうか。
どなたか知っていたら教えてくださいm(__)m
0123名無しさん@お腹いっぱい。02/01/02 21:53ID:VG6leNvJ
http://www2.org1.com/~eiji/upload/uploader.cgi

ここのみたいに、JPGファイルをアップロードして、その画像ファイル一覧を
GIFの縮小画像でサムネイル一覧表示をするスクリプトを探しています。
アップロードされた画像を単純にHTMLのタグで縮小表示してるのはたくさん見つかったんですが
そうすると大量のサムネイル表示には重くて適していないもので。
「探しています」スレッドでは誰も応えてくれなかったので、ソースレベルでどのような
ことを行っているのかお聞きしたく書き込みました
宜しくお願いします
0124名無しさん@お腹いっぱい。02/01/03 00:47ID:???
>>122
出来ません。

まあ、ユーザーが自分で明示的にログアウトした後なら、
セッション情報がサーバから消されている筈で、
恐らくユーザーが前のページに戻ったところで、
無効なセッションとしてエラー処理されるだろうから問題ないでしょう、きっと。
0125名無しさん@お腹いっぱい。 02/01/03 07:43ID:???
プ
0126名無しさん@お腹いっぱい。02/01/03 08:41ID:OYtOtVsw
CGI 使ってリモートブックマークみたいなのを作ってるんですが、
そこから飛ぶときに出来れば Referer を渡したくありません。

Location で飛んでも Referer 渡されちゃうし。
どうやったら Referer 渡さずに飛べるんでしょう?
0127名無しさん@お腹いっぱい。02/01/03 08:43ID:???
早く教えてください!!!
0128名無しさん@お腹いっぱい。02/01/03 08:47ID:???
早くしてください!!!!!
0129名無しさん@お腹いっぱい。02/01/03 09:08ID:???
>>128
何を?
0130名無しさん@お腹いっぱい。02/01/03 09:10ID:???
>>126
そのブックマークスクリプトを起動する際に
パスワード認証するようにして、
Refererを知って見に来た外部の人間には
見られないようにすればいいと思われ。
0131名無しさん@お腹いっぱい。02/01/03 09:24ID:OYtOtVsw
>>130
でも、それだと"登録してる"って事実は漏曳しちゃうわけですよね。
うーん....
0132名無しさんに接続中…02/01/03 10:21ID:KWfhi5kb
>>123
自分で作るしかないようなきがするが
特にGIFの生成に関するのでフリーでというのは虫がよすぎる。
GIFの生成わりと簡単なのでネットで調べるとヨシ。
0133名無しさん@お腹いっぱい。02/01/03 14:16ID:???
>>123
JPGの縮小画像じゃだめなん?
0134名無しさん@お腹いっぱい。02/01/03 19:08ID:???
cgiをSSIで呼び出すときにクエリー文字以降のコマンドを実行したいのですが
どうすればよいのでしょうか?

具体的にはimgboard.cgiの2ページ目、3ページ目…を
2.shtml、3.shtml…として呼び出したいです。

1ページ目はimgboard.shtmlに
<!--#exec cgi="cgi-bin/imgboard.cgi"-->
と書いて正常に表示されます。

2ページ目は2.shtmlに
<!--#exec cgi="cgi-bin/imgboard.cgi?page=2"-->
としてみましたがエラーが出てしまいます。
0135名無しさん@お腹いっぱい。02/01/03 19:52ID:???
>>134
2.shtml,3.shtml…それぞれに
<!--#exec cgi="cgi-bin/imgboard.cgi"-->
と書き、
imgboard.cgiの中で環境変数DOCUMENT_URIを調べて、
呼び出し元を判別すればよい。
0136名無しさん@お腹いっぱい。02/01/03 21:42ID:rXCVYJ/4
フォームからの受け取り値が多くて、
未記入は漏れなく許さない形にすると、if文の荒しになります。

if( $hage eq "" ){
print "Content-type: text/html\n\n";
print "<html><head><title>未記入です。</title></head>\n";
print "<body>\n";
print "<p>未記入です。</p>\n";
print "</body></html>\n";
}
if( $aage eq "" ){
print "Content-type: text/html\n\n";
print "<html><head><title>未記入です。</title></head>\n";
print "<body>\n";
print "<p>未記入です。</p>\n";
print "</body></html>\n";
}
...

と延々書いていくしかないんですか。非効率的な気がします。
0137名無しさん@お腹いっぱい。02/01/03 21:48ID:???
あと、とりあえずそれでもいいんですが、
この場合未記入でもその後の処理は続いちゃいますよね?
if内処理の中に__END__を入れればいいの?
0138名無しさん@お腹いっぱい。02/01/03 21:49ID:???
if($hage eq "" || $aage eq "" ){
print "Content-type: text/html\n\n";
print "<html><head><title>未記入です。</title></head>\n";
print "<body>\n";
print "<p>未記入です。</p>\n";
print "</body></html>\n";
exit;
}
0139名無しさん@お腹いっぱい。02/01/03 21:54ID:???
>>138
thx
0140名無しさん@お腹いっぱい。02/01/03 21:59ID:???
&error("hageが未記入です") if $hage eq "";
&error("aageが未記入です") if $aage eq "";

sub error {
my $msg = shift;
print <<"_EOE_";
Content-type: text/html

<html><head><title>未記入です。</title></head>
<body>
<p>$msg</p>
</body></html>
_EOE_
exit;
}
0141名無しさん@お腹いっぱい。02/01/03 22:04ID:???
>>136

require 'cgi-lib.pl';
&ReadParse;
foreach (values %in){
if(!$_){エラー処理;exit;}
}
0142名無しさん@お腹いっぱい。02/01/04 03:53ID:???
>>131
redirect.cgiとかそういうのを作って、redirect.cgi?url=http://foo/bar/
として呼び出すと
<meta http-equiv="refresh" content="0;url=http://foo/bar/">
というHTMLを吐くようにする。
んで、ブックマークスクリプトで表示するリストではredirect.cgiを使うよう
にすればOK。
0143名無しさん@お腹いっぱい。02/01/04 07:04ID:???

ありがとう。

下のような感じなのかな
www.users.yun.co.jp/~moriq/lang/cgi/tips.html

適当に改ページの処理らしき所に突っ込んでみたけど動作せず。
# ページを決める
$total_page=@PAGE_START;

if($FORM{'page'} > 0){
if($FORM{'page'} > $total_page){
$disp_page = $total_page;
}else{
$disp_page = $FORM{'page'};
}
}else{
$disp_page = 1;
}
$next_page = $disp_page + 1;
$pre_page = $disp_page - 1;

if ( $ENV{'DOCUMENT_URI'} ) {
$page_name = $ENV{'DOCUMENT_URI'};
}
else {
$page_name = $ENV{'PATH_INFO'};
}
if($pre_page > 0){

&output_kiji_html;

大本のCGI
www.big.or.jp/~talk/t-club/soft/mini_r6/imgboard122r6.zip
0144名無しさん@お腹いっぱい。02/01/04 12:38ID:+vgAy2bq
メールアドレスの形式を判定して
.comや.netや.orgや.to以外のドメインを弾く場合につかう
正規表現って?

.*@.*\.

この先がわかりません。
0145デフォルトの名無しさん02/01/04 12:50ID:???
http://www.din.or.jp/~ohzaki/perl.htm#Mail
>>144
ここよく読んで拝借しなされ
0146名無しさん@お腹いっぱい。02/01/04 12:54ID:+vgAy2bq
>>145
そんなに難しいもんなの?

if ( ! $mail eq .*@.\.[com,net,org] ){
ふせー
}

とか出来ないの?!萎えるなあ。。
0147名無しさん@お腹いっぱい。02/01/04 12:58ID:???
難しいと思うならよく読めよ
簡単と思うなら自分で考えろ、お前は自分で自分を簡単な事も考えられない
馬鹿だと言いたいのか?
実は正規表現知らんだけちゃうんかと
0148名無しさん@お腹いっぱい。02/01/04 13:05ID:???
結局、perlってダサイのか
0149これでいいのかな?なんだ簡単じゃん。02/01/04 13:09ID:+vgAy2bq
$mail_regex =
q{(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\} .
q{\[\]\000-\037\x80-\xff])|"[^\\\\\x80-\xff\n\015"]*(?:\\\\[^\x80-\xff][} .
q{^\\\\\x80-\xff\n\015"]*)*")(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x} .
q{80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|"[^\\\\\x80-} .
q{\xff\n\015"]*(?:\\\\[^\x80-\xff][^\\\\\x80-\xff\n\015"]*)*"))*@(?:[^(} .
q{\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\0} .
q{00-\037\x80-\xff])|\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[^\x80-\xff])*} .
q{\])(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,} .
q{;:".\\\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[} .
q{^\x80-\xff])*\]))*};

if ($email !~ /^$mail_regex$/o) {
print "不正なメールアドレスです\n";
}
0150名無しさん@お腹いっぱい。 02/01/04 13:11ID:???
>>148
うんダサいね、少なくとも君の半分位はダサい
0151 02/01/04 13:28ID:SyaInDky
アンケートフォームを使っているのですが、直接CGIのアドレスを入力して
CGIを呼び出すと空白の結果が送られてきて困っています。
直接CGIを呼び出したときにエラーのHTMLを表示させるにはどう追加記述すればいいでしょうか。
0152>>15102/01/04 13:32ID:+vgAy2bq
if( $ENV{'REQUEST_METHOD'} eq "" ){

print "エラってる1\n";

}
0153>>15102/01/04 13:34ID:+vgAy2bq
if( $ENV{'REQUEST_METHOD'} eq "" ){

print "エラってる\n";
exit;

}


#これをスクリプトの上に置く
0154デフォルトの名無しさん02/01/04 13:36ID:???
荒れてるなぁ・・・・
>>149 まぁそんな感じで
>>151
環境変数を適当にチェックするか、フィールドをif($IN{hoge} eq ''){error;
みたいに検査すれば良い、、、、
が!、そんな認識でsendmailをopenしてるなら厨房の餌食にされる可能性が
凄く高いから根本的に本でも読むことをお勧めする
0155デフォルトの名無しさん02/01/04 13:37ID:???
>>149 それは違う w
0156 02/01/04 13:42ID:SyaInDky
>>152
スクリプトの一番上に追加したらいいのですか?
それでもまだ駄目なようですが。
0157名無しさん@お腹いっぱい。 02/01/04 13:46ID:???
そんな腐ったフォーム使うなよ (´д`;)
別のにしろ
0158 02/01/04 13:47ID:SyaInDky
>>157
なかなか良いのが無くて困っていたんです(;´Д`)
0159名無しさん@お腹いっぱい。02/01/04 14:01ID:???
if ( ! ($ENV{'REQUEST_METHOD'} eq "POST") ){

print "Content-type: text/html\n\n";
print "<html><body>エラー</body></html>\n";

exit;

}
0160 02/01/04 14:11ID:SyaInDky
>>159
うまくいったようです。有り難う御座います。
あと送ってきたのホストを完全に取得する方法分かりますか?
今だったら、*.ocn.ne.jpのようにかなり曖昧なものなんです。
0161名無しさん@お腹いっぱい。02/01/04 14:21ID:FMoA2DDO
use POSIX 'strftime';
print strftime "%Y%m%d\n", localtime;
こうやると年月日が出ると思うんですが、
この数字に7を足すことってできます?

ほかの方法があればその方法もご教授頂けるとありがdなんですが。
■ このスレッドは過去ログ倉庫に格納されています