△▲ WebProg 初心者の質問 Part4 ▼▽
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/06/20 12:10ID:???WebProg 板は初めて。
質問したいけど、どうしたら良いか分からない。
そんなときは、ここに書き込んでください。
板の住人や、その他が、けなしながら、厳しく教えてくれるかも。
質問する前に、まずはここを読んでね。
2ch 総合ガイド
http://www.2ch.net/guide/
記念カキコ専用スレ
http://pc.2ch.net/test/read.cgi/php/982575577/
前スレ
http://pc2.2ch.net/test/read.cgi/php/1045091733/
http://pc2.2ch.net/php/kako/1037/10372/1037222063.html
http://pc.2ch.net/php/kako/1030/10301/1030151932.html
お願い。
適切な、板、スレ、を発見した場合、誘導してあげましょう。
スレの性質上 age 進行でお願いします。
0511nobodyさん
03/07/09 10:31ID:juYXp5lrindex.htmlを送った後にCGIが動く。
書き換え途中にアクセスがあったら書き終わるまで待たされる。
0512あぼーん
NGNG0513nobodyさん
03/07/09 12:01ID:???大抵のモジュールは置くだけで使えると思う。XSとかでなければ。
漏れはホーム以下にlibとか適当に作って全部そこに入れてる。
で、使うほうでuse libにそのパスを加える感じ。
0514nobodyさん
03/07/09 12:15ID:???use モジュールの絶対パス;
ではできないです。Linux Vine2.6
perl -Sでパスの通ったディレクトリを探しに行かせても、だめ。
実行するディレクトリ(カレント)にlibがあると大丈夫だった。
こんなものでしょうか。それとも何か漏れの・・・
0515nobodyさん
03/07/09 12:16ID:???0517513
03/07/09 13:14ID:???use lib qw(. ./lib);
つー意味に解釈してくれてる?
そういや、use baseが使えなくて、@ISAに書き直した覚えがあるな。
いや、関係ないが。
0518nobodyさん
03/07/09 14:44ID:GmIdsAFl次レスの PERL のプログラムに、
$we>100 は $type='買い物中2';
に行かせたいのですが、
どうやるのか教えて下さい。
if($we>100){
$log .= "<br>\n";
$tm = $cmd = 0;
$type='買い物中2';
と加えても駄目なので。
内容は次レスに書いておきますので、
どうか宜しくお願い致します↓
0519nobodyさん
03/07/09 14:44ID:GmIdsAFlif(!$tm){
if($cmd<=0 || $cmd>$#cmp){
$log .= "また御来店下さい・・・。<br>\n";
$tm = $cmd = 0;
$type='';
&call_main_st;
}elsif($cmd){
if($camp<1){
$log .= "貴方には売れません。<br>\n";
$tm = $cmd = 0;
&call_main_st;
}else{
my $x = int($g_p[$rank]/3);
if($max_sol<=$my_cs){
$sol= $max_sol;
}elsif($max_sol>$my_cs){
$sol= $my_cs;
}
my $y = int($sol/10);
$log .= "どれを買いますか?。<br>\n";
$nation=$cmd;
$tm=0;
$type='買い物中';
0520nobodyさん
03/07/09 15:02ID:ZAwFBHHSなんて入力したらいいのでしょうか。
0521519
03/07/09 15:08ID:GmIdsAFl0522nobodyさん
03/07/09 15:10ID:???Perl コーディング初心者質問コーナー Part25
http://pc2.2ch.net/test/read.cgi/php/1056730690/l50
0523nobodyさん
03/07/09 15:11ID:jBxn2/Kbあるでしょうか?
分かりやすい例を挙げると、
「<BR>〜〜だよ。<BR>」というタグが書かれているホームページ
で、この「〜だよ。<BR>」だけを表示させないで(無効化して)
「<BR>」だけ表示させるようにしたいんです。
近いところであげると、掲示板での荒らし行為を防ぐためのタグ禁止に
近い感じなんですが、こんなCGI、PHPってあるでしょうか?
または可能なんでしょうか?
0525nobodyさん
03/07/09 15:40ID:VZa+tCnE∧_∧ (´<_` ) ?
( ´_ゝ`) / ⌒i
/ \ | |
/ / ̄ ̄ ̄ ̄/ |
__(__ニつ/ 2ch / .| .|____
\/____/ (u ⊃
0529nobodyさん
03/07/09 18:20ID:???0530nobodyさん
03/07/09 18:55ID:???というかそのままコピペのような気もするが(w
前半はプロキシのような気もするが、後半で否定される....
なんにせよ、>>368ってことだね。
<input="file">
に対応してますか
単刀直入に言えばケータイから掲示板に写真貼り付け
できますか
板ちがいだったらスンマソン
0533nobodyさん
03/07/09 21:58ID:???Web制作板いってみそ
http://pc2.2ch.net/hp/
0534nobodyさん
03/07/10 16:12ID:5ky3Wmqmあったら教えてください。
なければここで質問します。
0535あぼーん
NGNG0537nobodyさん
03/07/10 16:35ID:???ではなくて
xxx.cgi/無題.bmp?yy=hoge
は
どういう仕組みで動くのでしょうか?
404にならずに動くのが理解できないんですけど・・・
0539537
03/07/10 17:10ID:???すんません
私の作ったプログラムでは404になるんですよ
同じ環境(IIS5.0)にはいってる
サイボウズAG(お試し)では
/scripts/cbag/ag.exe/無題.bmp?page=FileDownload&id=
でファイルがダウンロードできるのですが
/scripts/xxx.cgi/無題.bmp?page=FileDownload&id=
では404になるので
0540nobodyさん
03/07/10 17:38ID:???ならちゃんと動くのか?
0541nobodyさん
03/07/10 17:39ID:???作ったのなら引数として受け取れるように書けばいい。
0542537
03/07/10 17:59ID:???はい
下に書きますが404で起動さえ出来ないので
>>541
同じように考えてはいけないんですか?
その辺がよくわかってないかも・・・
1.WEBサーバがリクエストを受け取り
2.プログラムを起動
っていう手順になると思うんですけど
404になってる時点で
プログラムが起動されないから
引数を取得とかそれ以前の問題になる気がするんですけど
根本からして間違ってます?
ログを見るとサイボウズのほうは
/scripts/cbag/ag.exe/無題.bmp?page=FileDownload&id=
でアクセスすると
GET /scripts/cbag/ag.exe
で200でOKになってるし
もうわけがわかりません
0543nobodyさん
03/07/10 18:04ID:???のログ書いてよ。
0544nobodyさん
03/07/10 18:52ID:???/scripts/xxx.cgi/無題.bmp?page=FileDownload&id=
はIISでは
SCRIPT_NAME = /scripts/xxx.cgi
PATH_INFO = /scripts/xxx.cgi/無題.bmp
QUERY_STRING = page=FileDownload&id=
てな感じになる。
W2k, IIS5.0で試してみたが404にはならなかった。
ちなみにApacheだとPATH_INFOは「/無題.bmp」のようになる。
SCRIPT_NAME部分が含まれないので注意。
0545537
03/07/10 19:18ID:???SIP, -, 2003/07/10, 19:05:17, W3SVC1, SV, DIP, 40, 440, 4213, 404, 3, GET, /scripts/xxx.cgi, page=FileDownload&id=10
SIP, -, 2003/07/10, 19:07:07, W3SVC1, SV, DIP, 601, 392, 34901, 200, 0, GET, /scripts/cbag/ag.exe, page=FileDownload&id=10
こんな感じで404です
>>554
うちの環境では404になるので
プログラムを起動できないので
環境変数をみることができない・・・
で、perl2exeで
xxx.cgiをxxx.exeにしたらプログラムが動きました
scripts/xxx.exe/無題.bmp?page=FileDownload&id=
こんな形で表示されました
REQUEST_METHOD:GET
SCRIPT_NAME:/scripts/xxx.exe
PATH_INFO:/無題.bmp
結論としては
.cgiにperl.exeとかをマッピングしてる環境ではできない?でFAですか?
もうわけわからんです
0546544
03/07/10 19:42ID:???いや、俺の環境も.cgiにperl.exeをマッピングしてるんだが?
てか、それが普通だと思うが(もしくはISAPI版)。
C:\usr\bin\perl.exe "%s" "%s"
こんな感じになってる。
0547537
03/07/10 20:03ID:???うちはこんな感じです
.cgi C:\Perl\bin\perlis.dll
.pl C:\Perl\bin\perl.exe "%s" %s
うちの環境の問題なのかなぁ?
IIS5.0+W2KSP4
xxx.exe/aaa.bmp?xxx=aaa
の場合
だと/をディレクトリとみなさない?
そして
xxx.cgi/aaa.bmp?xxx=aaa
だと/をディレクトリとみなしている感じ?
0550
03/07/11 01:02ID:LHmThz5C0551あぼーん
NGNG0555nobodyさん
03/07/11 01:59ID:???こういうのが作りたいんですが、簡単ですか?
0557nobodyさん
03/07/11 02:38ID:ZB5SZbbQ来られたら、何処から来たか不明になるのですか?
そういう方法で殆どの人が来るページを作るので、意味がなくなるでしょうか?
0559537
03/07/11 09:28ID:???IISの設定で.cgiに
ファイルの存在を確認する
のチェックが入っており、それを外したところ
xxx.cgi/無題.bmp?page=FileDownload&id=
でアクセスできました
みなさま、ありがとでした
0560nobodyさん
03/07/11 12:29ID:???おめでとう。
そういやそんな設定あったなー。
IISなんてたまに仕事で止む無く使うぐらいだからそんな設定忘れとった。
とか言い訳してみるものの、その設定画面を開いたのに気付かなかった漏れはアフォかと_| ̄|○
つーか、「ファイルは存在する」って判定にはならんのかyp!
0561nobodyさん
03/07/11 13:37ID:???0562nobodyさん
03/07/13 13:55ID:2xt/jgiV(コテハンの文字に反応する自動リンクか)
とうすればいいでしょうか?教えて下さい
0564nobodyさん
03/07/13 14:31ID:2xt/jgiVそのhtmlわかりませんか??
0565nobodyさん
03/07/13 14:34ID:???てかHTMLの基本だろ。
CGIを自分で作れないなら、最初にそう言うか、諦めれ。
0566nobodyさん
03/07/13 14:35ID:2xt/jgiV0567nobodyさん
03/07/13 14:40ID:2xt/jgiVあれ?これで出るんですか?
0568nobodyさん
03/07/13 15:04ID:???試してから言えやヴォケ!
試したんなら、どんな風にやったのか、結果がどうなったのか、
洗いざらい全部ぶちまけてから言えや!
0569nobodyさん
03/07/13 15:16ID:???>>567の<img src="アイコン">をCGIから出力する時に
>>563のアイコンリストと照らし合わせて アイコンをhttp://・・ に置き換える。
↑ここまでを今のCGIに組み込む。
# アイコンリストを作るCGIも必要になってくる。
0570nobodyさん
03/07/13 15:20ID:???別にテキストファイルでも良いんでは?
ひろゆき@缶酎ハイ,./img/mona.gif
CSVでもよし。
<kotehan>
<name>ひろゆき@冠婚葬祭</name>
<icon>./img/giko.gif</icon>
</kotehan>
XMLでもよし。
0572nobodyさん
03/07/13 21:36ID:???perl コーディングで質問しようと思いましたが、Web 系なので
こちらにカキコします
use LWP::UserAgent;
use HTTP::Cookies;
{
$ua = LWP::UserAgent->new;
$ua->agent( "Kuma-No-Pu-San/1.00 perl/$]" );
$ua->cookie_jar( 'test=aaa' );
my $req = HTTP::Request->new( POST => 'http://hoge.hoge.hoge/test.cgi' );
$req->content_type( 'application/x-www-form-urlencoded' );
$req->push_header( 'Referer', 'http://hoge.hoge.hoge/test.cgi' );
$req->header( 'Connection' => 'keep-alive' );
$req->content( 'a=aaa&b=bbb&c=ccc' );
my $res = $ua->request($req);
print $res->as_string;
}
これを実行しても
Can't locate object method "add_cookie_header" via package "test=aaa" (perhaps you forgot to load "test=aaa"?) at /Perl/site/lib/LWP/UserAgent.pm line 410.
ってエラーが出ます。これってどういう意味でしょうか?使い方間違ってますか?
0573nobodyさん
03/07/13 23:21ID:VNQaaVnfperl/CGIで、gifcat.plを使ったgif文字列を
CGIで吐き出すHTMLに埋め込みたいと思っています。
my $birth_year_gif = &birth_year_to_gif( $birth_year );
print qq(<IMG src="$birth_year_gif" border="0">);
sub birth_year_to_gif {
# 画像連結ライブラリ取込み
require 'gifcat.pl';
my $birth_year = shift;
my @birth_year_nums = split( "", $birth_year );
my @birth_year_gif = ();
foreach ( @birth_year_nums ){
push ( @birth_year_gif, "${num_title_dir}${_}.gif" );
}
push ( @birth_year_gif, "${num_title_dir}tail.gif" );
print "Content-type: image/gif\n\n";
binmode(STDOUT);
print &gifcat::gifcat( @birth_year_gif );
}
これだと生成したgifは表示するのですが、他のHTML部分が
表示されません。
ページのソースが取れない、多分ヘッダの問題だと思うのですが、
僕の知識ではなんともよくわかりません。
どうすればCGIが吐き出すHTMLにひとつのgifブロックとして表示できるのでしょうか。
どなたか、お知恵お貸し下さいませ。
0574nobodyさん
03/07/13 23:25ID:fWERl1kzわかる人教えてください
http://www.purime.com/?ai=sadf
0575nobodyさん
03/07/13 23:31ID:fWERl1kzならエラーは出ません
0576あぼーん
NGNG0577nobodyさん
03/07/13 23:54ID:???$ua->cookie_jar( 'test=aaa' );
ここが間違いだな。エラーをよく読め。
Can't locate object method "add_cookie_header" via package "test=aaa" (perhaps you forgot to load "test=aaa"?) at /Perl/site/lib/LWP/UserAgent.pm line 410.
パッケージ"test=aaa"の中に、"add_cookie_header"言うメソッド(サブルーチン)はありませんぜ。
(もしかして、"test=aaa”をuseしたりrequireしたりすんの忘れてませんか?)
cookie_jarメソッドへの引数の与え方が徹底的に間違ってると思うね。
pod読んで出直しな。
これで、エラーメッセージの読み方を一つ覚えたね。勉強になったろ?
0578nobodyさん
03/07/13 23:58ID:???HTMLは普通に書いて、そこからそのCGIを<img src="〜">で呼び出せばいいのでは。
動的なHTMLにしたければ、HTMLを吐き出すCGIを別に作って、それが出力する
HTMLから<img>で以下略。
>>574
エラーメッセージを書け
どうせランキングか広告を踏ませようとしてんだろうが
0579nobodyさん
03/07/14 00:00ID:???HTMLの仕様からやり直してこいバカチンが。
こんなのは、Web製作板の範疇だっつーの。
<img src="hoge">
hogeに入るのは、
表示したいイメージファイルを示すURLであって、
画像そのものを入れるのではない。
おまえがやりたいことへのソリューションは二つある。
1.
<img src="birth_day.cgi?birth_day=$birth_day">
こんな風に記述し、
別CGIとして、birth_day.cgiをつくり、それがGIF画像を吐き出すようにする。
2.
わざわざGIF画像に変換せずに、文字で表示する。
俺としては2がオススメだがな。無駄に転送量も増やさないし、何より簡単=バグが入り込む余地がないからな。
0580nobodyさん
03/07/14 00:07ID:???引数を変えて踏んでみたけど、確かに広告だった。
でも、エラーも出てた(w。
>>574-575の引数は踏んでないけど。馬鹿に小銭稼がせるのも馬鹿らしいし。
というわけで、>>574-575は広告ですたぶん。
0581nobodyさん
03/07/14 00:07ID:???>>574は、携帯から入るための出会い系サイトのポータルだった。
会員情報の管理にPosgreSQLを使っているようだ。
で、GETで与えた引数を直接Pgに渡していて、そんな属性はないと文句を垂れられている訳だ。
>>574, >>575がどんな意図があるかは知らんが、
無能はカエレと。
0582nobodyさん
03/07/14 00:08ID:sTw98rpNWarning: pg_numrows(): supplied argument is not a valid PostgreSQL result resource in /home/purime/public_html/inc/banner.inc on line 42
というエラーです
0585nobodyさん
03/07/14 00:35ID:dWC8IqpEいや、多分そうなんだろな、と思ったんですが、カウンターCGIみたいに別に置くのもな〜、
と思ったものですから。
そんで、怒られるの承知で、HTML吐き出すスクリプトにgif生成ルーチン一緒に
埋め込んで再帰的に呼び出したら、なんと!、でたよ、でたでた!
でも、隣のgif(これは固定)が表示されないんだけど、これは最終的には
分岐でどっちかしか出さないつもりなので、問題ないんだったら全然おっけなんです。
これ、だめ?
0587573
03/07/14 00:44ID:dWC8IqpEオーバーヘッドって何ですか?過負荷?
そんなにアクセス数多いCGIじゃないんですけど、(せいぜい100/一日)
問題あるようでしたら、素直に謝って小物作って
隣に置こうと思いますが、、、
0589573
03/07/14 00:51ID:???<IMG src="$img_dir$tytle_gif" border="0">
すいません。
で、後学の為に聞きたいのですが、上の生成gifは表示されて、下の固定gifは
表示されません。
っていうか「〜ダウンロードしています...」でとまっちゃってます。
もちろん再帰呼び出しのほうをコメントアウトすると、すぐ出るんですが、
これが、オーバーヘッドの弊害、ですか?
前にも言ったように、最終的には分岐でどっちか、何ですけど。
0590あぼーん
NGNG0591あぼーん
NGNG0592572
03/07/14 09:57ID:???$ua->cookie_jar( 'test=aaa' );
の部分をどう書いていいか解りません。サンプルをちょこっと示してくれませんか?
>>577 は物言いが腹たったのでスルーしました。
0593nobodyさん
03/07/14 12:02ID:???確かに>>577の物言いは少々アレだが、ちゃんと誘導してくれてるんだからスルーするなよ。
原文でも日本語訳でもいいからドキュメント読んでみた?
俺は使ったことないのでよく知らないんだが、そこにはHTTP::Cookieオブジェクトを突っ込めと書いてある。
HTTP::Cookieがどんなモノなのかまで調べる暇はないが、サンプルはこのように書かれていた。
$ua->cookie_jar(HTTP::Cookies->new(file => "$ENV{HOME}/.cookies.txt"));
この程度で腹立てるようならこんなところで質問なんかしない方がいいよ。
どうせすんなり回答が返ってくることなんて少ないんだからさw
0598nobodyさん
03/07/14 15:26ID:???今後しばらくCookie関連の質問はスルーしましょうか。
0599nobodyさん
03/07/14 15:47ID:CrPHiYJ+他のサイトでリアルタイムランキングというサイトを発見しました。
なんでも、ホームページのアクセス数を自分で計測し人気ランキングをリアルタイムで
発表するようです。この仕組みを知っておられる方いますか?
クリックして、そこへ移動した数をカウントしてるのでしょうか?
それとも画面に表示されるカウンターなどを読み取ってランキングに
しているのでしょうか?
あと、この技術はどのプログラミング言語を習得するのが近道ですか?
知っておられる方いましたら、お返事ください。お願いします。
0600nobodyさん
03/07/14 15:54ID:???説明がいまいち良く分からないのですが・・・。
他のWebサイトのアクセスランキングをまとめてるサイトという
意味ですか?
他のWebサイトのアクセス数をそのまま表示してるのか、
そこのサイトから自分のサイトに飛んできた数を集計してるのか、
あるいは逆に自分のサイトからそこのサイトに飛んだ数を集計してるのか、
あるいはそのどれでもないのか、説明からでは良く分からないです。
そのサイトのURLがあれば一番早いのですが。
0602nobodyさん
03/07/14 16:29ID:VcdaaTVKその同じディレクトリ内で特定のファイルだけは制限をかけたくないんですけど、
そういうことできますか?
0603nobodyさん
03/07/14 16:40ID:???Apacheの場合、filesディレクティブを使う。
ディレクティブは後ろに書いたほうが有効になる仕様を利用する。
WebProgとは関係ないので、あとは自分でぐぐるとかしてください。
0604599
03/07/14 17:04ID:CrPHiYJ+いろいろあるのですが、たとえば2chのスレッドランキングです
http://www6.big.or.jp/~beyond/bbsnews/
これは人気のあるスレッドが一番上に来るんですよ。
とても便利だと思います。
>>601
ソースに書いてあったアドレスがhttp://www.ninki.net/です
こういった集計プログラムを自分で一からやってみたいと思ってたんです
どのプログラミング言語をやったほうがいいのか、どれから手をつければわからないのです。
このレベルは難しいのでしょうか?perl等のネットワークプログラムに
精通していなければならないのでしょうか?
0605nobodyさん
03/07/14 17:09ID:???右下にある「このシステムについて」を見てもわからないのか?
ソースにあったって・・・そのサイトがninki.netに参加してるだけ
下にバナー貼ってあるだろ?
0606599
03/07/14 17:14ID:CrPHiYJ+ぁあ、本当に見落としてました、すみません。
ソースの最後の方に「変更禁止」とか書いてあったもので
すっかりninki.netが作成したのかなと思ってました、、
お手数をおかけしてすみませんでした。
0607nobodyさん
03/07/14 17:24ID:???今使っているのだとPCのアクセスのみしか採れません。
0608nobodyさん
03/07/14 17:44ID:???0609nobodyさん
03/07/14 18:34ID:???なんて理不尽な世の中だ……。
0610nobodyさん
03/07/14 18:51ID:???スレッドランキングは、時間辺りの書き込み量を見てるんだと思うが?
俺も似たようなのを作って使ってるけど、だいたい同じ順位になるよ。
■ このスレッドは過去ログ倉庫に格納されています