CGIだけど、なんか質問ある? Part 9
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001ななし ◆E6qQ.htN7o
03/01/03 02:56ID:H5ub4PWW※CGIは特定の言語に依存するものではありません。
※Perlのコーディングに関する質問は専用スレがありますのでそちらでお願いします。
↓
【Perl】初心者コーナー Part18
http://pc.2ch.net/test/read.cgi/php/1037797479/l50
過去ログ・関連スレッドは >>2-5 あたりに
0810nobodyさん
03/03/19 04:11ID:???$message =~ s/(ttp)\:([\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]+)/<a href=\"http\:$2\">$1\:$2<\/a>/g;
すいませんこれで解決しました。
でももっとスマートな方法あれば教えて頂けませんか?
0811nobodyさん
03/03/19 04:40ID:???0812nobodyさん
03/03/19 07:52ID:???$message =~ s/h?(ttps?)\:([\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]+)/<a href=\"h$1\:$2\">$1\:$2<\/a>/g;
ところで、なんでこんなことするわけ?
見たところ、掲示板か何かの本文の処理みたいだけど。
せっかくh抜きで書いたものを、強制的に直リンにしてしまうとは・・・
0813nobodyさん
03/03/19 08:00ID:???0814鳩
03/03/19 10:52ID:???#!/usr/local/bin/perl
$WGET = "/usr/bin/wget";
$URL = "http://www.yahoo.co.jp/index.html";
@lines = `$WGET -q -O - $URL` or die;
print "Content-type:text/html\n\n";
print @lines;
exit;
こんな感じで、とりあえず取得はできるんですが、User-Agentの指定はできるんでしょうか?
教えてください。お願いします。
0816nobodyさん
03/03/19 21:31ID:dpgy+pXrなぜ出ないのでしょう?
どういうことが考えられるかわかりますか?
0817nobodyさん
03/03/19 21:48ID:???>どういうことが考えられるかわかりますか?
あなたの頭が相当に悪いということぐらいしかわかりません。
どこのチャット(スクリプト)の話をしてるかぐらい書きなさい。
0818nobodyさん
03/03/19 22:04ID:nD9UxgHPいや、自分で作ってるヤツなんですが、
初期画面でログが出ないのってよくある落とし穴かと思って、
よくある落とし穴の答えを出してくれるかと思っちゃいました。
初期画面でログが出なくて、フォームだけ出るのってあんまり無いことなのかな?
0819nobodyさん
03/03/19 22:08ID:???↓↓↓次の方どうぞ↓↓↓
0821nobodyさん
03/03/19 22:09ID:???-- 終了 --
次
0822nobodyさん
03/03/19 22:19ID:???どうもありがとうございました。
0823nobodyさん
03/03/19 22:45ID:w/Iesnahhttp://sports2.2ch.net/test/read.cgi/iraq/1048063233/l50
各板司令部へ入電
現在イラク板で反戦バナー製作の案が出ております。
これに伴い人材が不足している為苦戦中です。
余力のある方世界平和の為に救助を求みます。
計画
1、バナー画像を作る。
2、アクセス集計プログラムと設置集計プログラムを作る。
3、クリック先のページを作る。(2の設置できる場所)
0824nobodyさん
03/03/20 19:49ID:7VWyNL/Kまた、そうなのであれば常駐しない手動更新のアンテナというものは存在するのでしょうか?
0825nobodyさん
03/03/20 20:23ID:???手動更新のアンテナって要するにLast-Modifiedチェッカ?
あるアクセスが前回のアクセスから一定時間たってる場合、Last-Modifiedを
再取得するようなスクリプトは組んでみたけど、サーバがLast-Modifiedを
返してくれなかったり、対象に日時を取得できるような文字列が無かったり
するケースだと、仕様的にNGだったなあ。
0826nobody
03/03/20 23:34ID:Oa4xESM8先日、利用している掲示板のデータが紛失してしまいました。
バックアップを取っておいたので上書きしたらデータがおかしな所で区切られるようになりました。
普通は「,」で日付やタイトルや名前、本文などを区切られているのですが
途中から改行で区切られるようになってメチャクチャになってしまいました。
あたりまえですが掲示板のコメント本文には改行が多く含まれている為困っております。
データを一行ずつ改行を消すか<BR>を入れるにしても量がハンパじゃありません。
誰かCGIに詳しい方、正しく表示できる方法を教えてください。よろしくお願いします。
0827nobodyさん
03/03/20 23:57ID:???0828nobodyさん
03/03/21 00:05ID:???移植性が悪いと思うんだけど、その辺はレスキューやらKENTの脳では考えられ
なかったらしい…。っていうのがその問題の原因。あまり関係ないけど…。
で、どうやって復活させるかというと、1レコード中の項目数は同じなんだから、
これを利用すればいい。
レコードの区切りを\n、本文中の改行を\rにする
my @all = split(/,/, $all);
while (@all) {
my @line = splice(@all, 0, 1行の項目数);
foreach (@line) {
s/\x0d\x0a/\r/g
tr/\x0d\x0a/\r/;
}
print OUT join(',', @line) . "\n";
}
0829nobodyさん
03/03/21 00:08ID:???$line[-1] =~ s/\x0d?\x0a?$//;
がないとゴミが発生するな。。
0830nobodyさん
03/03/21 00:09ID:???tr/\x0d\x0a/\r\r/;
0831826
03/03/21 00:22ID:7GAZusfYでも自分はperlやCGI言語が実はあまり分かりません…。
でもなんとか頑張ってみます。
0832nobodyさん
03/03/21 00:38ID:???じゃあ、どういう回答を期待していたのか。
0833nobodyさん
03/03/21 00:41ID:???Web製作の方から誘導されてきた模様。
0834nobodyさん
03/03/21 00:56ID:???ふむ。提示された情報はあちらと同じなのかな。
>>826 は、掲示板スクリプトの入手先 or ログファイルの中身の一部(晒すべきでない
箇所はマスクして) 等の情報は、最低でも提示しないと。
0835nobodyさん
03/03/21 02:19ID:???0836nobodyさん
03/03/21 02:58ID:???するには、何処をつつけばいいのでしょうか?
www.kent-web.com/bbs/joyful.html?
0838nobodyさん
03/03/21 21:41ID:???anHTTPdでCGIを起動している時、CGIでヘッダーを「text/plain」と
プレーンテキストとして出力しているのですが Htmlと解釈されていまします。
設定で直るのでしょうか?
0841nobodyさん
03/03/21 23:10ID:???ずっと悩んでいたんですが、ブラウザの仕様・・?だったんですね。
0843T女の竹田
03/03/22 00:13ID:???wmaの時はこれでうまく行ったんだけど。
さすがマイクロソフト!
0844T女の竹田
03/03/22 00:28ID:???「HTMLっぽく見える」
「ユーザーがテキストだと激しく主張している何か」を
HTMLとして扱うことに、こうまで執念を燃やすのだろう?
マイクロソフトに何か利益が?
0845nobodyさん
03/03/22 00:36ID:???0846nobodyさん
03/03/22 04:28ID:???0847nobodyさん
03/03/22 06:38ID:???http://pc.2ch.net/test/read.cgi/prog/1045401372/381
さすがIE!
0848nobodyさん
03/03/22 12:25ID:QDGorIu0FORMで送信し、それを処理するのはCGIですよね?
他にもありますか?
実は、早稲田大学のシステムで、フォームターゲットが〜〜.htmになっているんですが、
これって機能するんでしょうか?
実際ページを表示できませんと出るんですが・・・科目登録ができない・・・
0849nobodyさん
03/03/22 12:29ID:QDGorIu0一部伏せています。
<html>
<body onLoad="fncSubmit();">
<script type='text/javascript'>
function fncSubmit() {
// submit
document.frm1.submit();
}
</script>
<form name="frm1" action="https://www.***.******.**/******/********.htm" method="POST">
<input type="hidden" name="HID_P1" value="*******">
〜〜〜中略〜〜〜
</form>
</body>
</html>
これが原因でエラーなのでしょうか?
それとも単に込んでいるだけなのかわかりません......
0852nobodyさん
03/03/22 12:53ID:???0853nobodyさん
03/03/23 05:01ID:obrjhThh通常、ひとつのファイルしかアップロード/ダウンロード出来ませんが
ディレクトリを指定して、その階層化のファイル、ディレクトリをまるごと
アップロード/ダウンロードする事は出来ませんか?
0854nobodyさん
03/03/23 05:28ID:???0855nobodyさん
03/03/23 08:30ID:???0856nobodyさん
03/03/23 16:27ID:GYklYBj0クライアント側を↓こう定義して、localファイルを指定してボタンを押し、
<FORM ACTION="/cgi-bin/upload.cgi" ENCTYPE="multipart/form-data" METHOD="POST">
ファイル: <INPUT TYPE="file" NAME="File" SIZE="32"><BR>
<INPUT TYPE="submit" VALUE="送信">
</FORM>
cgi側でこう受け取ると
require 'cgi-lib.pl';
&ReadParse(\%in);
print "$key=[$in{$key}]<BR>\n" foreach $key ( keys %in);
ファイルの内容は
$in{'File'}に格納されるのですが、
localファイル名を取得することができません。
htmlの定義が足りないような気がして色々調べてみましたが
よくわかりませんでした。
スレ違いなような気もしますがよろしくお願いします。
0858nobodyさん
03/03/23 17:24ID:???0859nobodyさん
03/03/23 17:38ID:???cgi-lib.pl 使うのは悪いこっちゃないが、「やりたい事」がそこまで明確ならば、
まず標準入力からどんなデータを取得できるのかをファイルに落とす、等して
確かめてみればすぐ解ることだと思われ。
0860856
03/03/23 17:41ID:???0861nobodyさん
03/03/23 19:38ID:???亀レスですが、アンテナ自体のプロセスが常駐するものだと思っていました。
調べててcronを使えばいいことを知り、さっき設定がうまくいきました。どうもです。
0862nobodyさん
03/03/23 21:52ID:???0863nobodyさん
03/03/23 23:32ID:hItEViUJ2つ以上選んだ場合にエラーが出るようにしたいんですが、
私の頭では恥ずかしながら下のが限界でした。
もうちょっとコンパクトに書くにはどうすればいいんでしょうか?
if (($hoge ne '' && $huga ne '') || ($huga ne '' && $foo ne '') || ($foo ne '' && hoge ne '') || ($hoge ne '' && $huga ne '' && $foo ne '')) {
&error("一つだけにして!!");
}
0864nobodyさん
03/03/23 23:43ID:???選ぶと言うのがよくわからん。
それはHTMLのフォームから入力した場合をいうのか?
多分そうだろうな。
んで、言語はPerlか?
やっぱり、多分そうだろうな。
だったら、PerlではないHTMLの部分で、radioを使えばそもそも一つしか選べなくなるけど、
そういうことではないのか?
0865nobodyさん
03/03/23 23:53ID:???選ぶってのは間違いです。スマソ
テキストボックスが3つ(hoge,huga,foo)あって、
たとえば、hogeに何か書き込んであるのに
hugaにも値が入ってると、
えらーを出したいって事です。
0866nobodyさん
03/03/23 23:53ID:???0867nobodyさん
03/03/23 23:56ID:???今は別でやってます。
もしこれも一緒にできれば一緒にしたいんですが・・・
0868nobodyさん
03/03/23 23:57ID:???//hogeの処理
if($hoge ne "")
{
if(!($huga eq $baka eq ""))
エラー
}
//hugaの処理
if($huga ne "")
{
if(!($hoge eq $baka eq ""))
エラー
}
・・・
0870nobodyさん
03/03/24 01:52ID:???die("いってよし") if ( ($hoge ne "") + ($huga ne "") + ($baka ne "") ) > 2;
ってのはどうよ?
0871nobodyさん
03/03/24 01:54ID:???$count=0;
map{$count++ if $_ ne ''; } ($hoge, $hage, $foo);
if ($count != 1) {
エラー
}
って手もあるよ。
0873870
03/03/24 02:00ID:???ダタヨ。鬱だ。
0874nobodyさん
03/03/24 02:15ID:???それは、'0'のことを考えるとあまり良くないような。
それに、>1 じゃなくて、>=1と書きたかったのでは?
結局、
die unless ($a ne '') + ($b ne '') + ($c ne '') != 1;
でどう?
0875nobodyさん
03/03/24 02:58ID:???0876nobodyさん
03/03/24 05:49ID:???0877nobodyさん
03/03/24 06:02ID:???「ゲートウェイ,もしくはプロキシとして動作させているサーバが,上流から無効なレスポンスを受け取ったことを示す」
って出てきたけど素人の俺様には意味が分かりませんでした。
0878nobodyさん
03/03/24 12:29ID:???$it = $hoge || $huga || $foo;
if ($hoge.$huga.$foo ne $it) { # 連結して比較
&error("一つだけにして!!");
}
じゃだめか?
0879nobodyさん
03/03/24 18:22ID:JKyHEx6GCGI で HTML のデータを標準出力するようなものを
実行したときには,その HTML が WWW ブラウザに
表示されるのでしょうか?
0881879
03/03/24 19:10ID:JKyHEx6G標準出力に HTML をちゃんとはき出してるのを確認したんですが,
WWW ブラウザからその CGI を実行すると,
何も表示されないんです.
どうしてなんでしょうか?
0882nobodyさん
03/03/24 19:32ID:???0886nobodyさん
03/03/24 20:41ID:???そのままDLすることはできないんですの?
0887nobodyさん
03/03/24 20:49ID:???>CGIをダウンロードしようとすると
意味不明。まあ言わんとしてることは解るんだけど。
その CGI とやらは配布されているものなのか?
だとしたら配布元に聞くのが最速解。
0888nobodyさん
03/03/24 20:57ID:???フリーで配布されてる掲示板が上手く改造されてたんでちょっとあたしも欲しいな〜と
フォルダ覗けたんでcgiを頂きたいな〜と思ったんですの
でもhtmlに…
無知で文才もなくてすまそ。
0889nobodyさん
03/03/24 21:07ID:???0890nobodyさん
03/03/24 21:33ID:fQ3PutSJこの方法で無断ダウンロードしようとすると、不正アクセス禁止法でタイーホされるかも(ウソデス)
本人にメールを送って頼み込むのがいい。ただし、必ずくれるとは限らないので注意。
08914
03/03/24 21:37ID:muzproYQディレクトリを予想してターゲットのファイルをopenすればうまい
具合にタイーホされる。
0893nobodyさん
03/03/24 21:48ID:???http://book.2ch.net/test/read.cgi/bizplus/1048507777/
0894nobodyさん
03/03/24 21:48ID:???502エラーが出ました。検索してみると
「ゲートウェイ,もしくはプロキシとして動作させているサーバが,上流から無効なレスポンスを受け取ったことを示す」
と、出てきましたが意味が分かりません。
このサーバーは俺に何をしろと言ってるのでしょうか?
502になる時と正常に動く事はマチマチです。
0895nobodyさん
03/03/24 21:55ID:???そのサーバは自鯖?レン鯖?
動かしてるプログラムは自作?拾い物?
サーバのログ等は見られるの?
この程度の情報も出さずに回答がもらえると思っちょるのかバカチン。
0896879
03/03/24 23:01ID:JKyHEx6G>>885
確認はコマンドラインからしました.
ヘッダをつけても同じことでした.
なんででしょう?
0898879
03/03/24 23:15ID:JKyHEx6G質問に関係ない部分をどう廃除していいかわからなくて…
08994
03/03/24 23:25ID:muzproYQ先頭10行でいい
09004
03/03/24 23:27ID:muzproYQ例えばREQUEST_METHODがGETの場合だけHTMLを出力するような
プログラムを書いたとしても、コマンドラインからでは何もでない。
その逆もある。
09014
03/03/24 23:28ID:muzproYQ先頭10行ってのはコマンドラインから出力した10行ね
キリ番ゲト
0902nobodyさん
03/03/24 23:41ID:Q3dLkmth↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
http://www.pink-angel.jp/betu/linkvp2/linkvp.html
0903879
03/03/24 23:45ID:JKyHEx6Gそれではコマンドラインで出力した結果を書きます
以下です.
Content-type: text/html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"></head>
<title>入力内容確認</title>
<body>
<h1>入力内容確認</h1>
(以下略)
09054
03/03/24 23:51ID:muzproYQそれは何も条件なしで出力しているのか?
ついでに聞くがCGIは初めてです?
0906nobodyさん
03/03/24 23:52ID:???プログラム自体は合ってそうだから、
あとは>>895(と、パーミッション)に答えたら解決だな。
つっか>>895を無視ってんじゃねーよボケ。本当に質問に答えて欲しいのか?
09074
03/03/24 23:53ID:muzproYQ0908nobodyさん
03/03/24 23:54ID:???そのCGIってどこに置いて実行したの?
コマンドラインって、サーバに置いてtelnetかSSHで?
あまり関係ないけど、言語は何?
0909nobodyさん
03/03/25 00:00ID:???こういう時はPerlと相場が決まっている(よなぁ)
あと、>>884やれよ>>>879
それで解決だろ。
telnet ホスト 80
GET /hogehgoe.cgi HTTP/1.0
0910879
03/03/25 01:26ID:1VNT2YvWWindows98 でローカルで httpd というサーバを動かしてやってます.
CGI の言語は perl です.
で,この httpd を通して,WWW ブラウザ(IE)でみると,
何も表示しないんです.
なんででしょう?
レス数が900を超えています。1000を超えると表示できなくなるよ。