CGIだけど、なんか質問ある? Part 9
■ このスレッドは過去ログ倉庫に格納されています
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 あたりに
0613595
03/03/10 18:09ID:???どうもありがとうございました。
608さんのおっしゃるとおり、
サーバーはパーミッションを自動で変更してくれたようです。
それで607さんの絶対パスについてのところを参照にCGIのパスをいじったところ、
DATファイルが反応するようになり、
GIFファイルも直したら反応するようになり、
サーバー上でカウンタが動くようになりました。
610さん、申し訳ありません。
サーバーエラーなのか、意図どおりに動かないのかすら判断できなかったのです。
みなさん、ほんとうにありがとうございました。
0614606
03/03/10 18:27ID:AgGCKLX9telnetできないっす。
こりゃCGIの問題じゃなくって、サーバーの仕様とかかな?
・・・そういう仕様って、アリ?
0615608
03/03/10 18:30ID:AgGCKLX9治りましたか。よかったよかった(^^)
サーバーエラー>紛らわしいよね(笑)
0616606
03/03/10 18:32ID:AgGCKLX9言葉がたりんかった。
Telnetできないのは、Telnet開放されてないから(^^;
0618nobodyさん
03/03/10 18:49ID:???0620nobodyさん
03/03/10 20:53ID:???0622607
03/03/10 21:38ID:y6h+x0iaおめでとう。(カメレススマソ)
0625nobodyさん
03/03/10 23:22ID:F/vwue5xFTPから丸ごと削除しようとしました。そうしたら、/diff/, /info/, /wiki/
というディレクトリ及びその中身のファイルが、Permission Deniedと言われ、
削除できずに残りました。どのようにすれば削除できるのでしょう?
0626nobodyさん?
03/03/10 23:25ID:???ディレクトリに書き込み権限がないんじゃないの?
0627625
03/03/11 06:17ID:???cgiによって作られたファイルはcgiからでないと削除できないと分かり、
ファイルをunlinkして回るcgiを作って走らせたところ、無事消えました。
0629nobodyさん
03/03/11 16:29ID:mYfv1t4yどれだけ調べてもヒントすら見つからないので、
全く見当違いなことを考えてるんだと思い質問させていただきます。
ディレクトリを作るのはmkdirですよね。
ならファイルを生成するのはどうしたらいいんでしょうか?
たとえばtestというディレクトリを作り、
その中にtest.datというファイルを作る
なんてことはどうすればできるんでしょうか?
0630nobodyさん
03/03/11 16:35ID:???open(FILE,">>ふぁいる名");
print(FILE "でーた\n");
close(FILE);
0632nobodyさん
03/03/11 17:41ID:04f/wl45表現がありますよね。処理が軽いとか。
この「軽い」「重い」って・・・?
設定項目(=変数)が多いと重い?
サブルーチンが多いと重い?
それとも行数が多いと重い?
コメントが含まれていると重い?
どんなんでしょ?(ちなみにPerlCGIで。)
0634nobodyさん
03/03/11 18:06ID:???>設定項目(=変数)が多いと重い?
>サブルーチンが多いと重い?
>それとも行数が多いと重い?
>コメントが含まれていると重い?
すべてNO
厳密に測定すれば差は出るだろうけど
0637nobodyさん
03/03/11 19:56ID:???0638nobodyさん
03/03/11 20:03ID:???0641nobodyさん
03/03/12 10:34ID:???0642nobodyさん
03/03/12 19:04ID:???どうしたら良いの?
while使っても大差ないと思うんだけど。
0645nobodyさん
03/03/12 23:22ID:???もう春なんだなあ・・・
0648nobodyさん
03/03/13 00:15ID:???ということをやりたいのですが、可能ですか?
0649nobodyさん
03/03/13 00:16ID:???Perlならrequireで検索。
0650nobodyさん
03/03/13 00:55ID:???config.plに$test = test;を入れといて、
print.cgiにprint "$test";って入れて表示させる方法ってどうやるんですか?
よろしくお願いします(plの1;やcgiのヘッダーはできているとする)
0653648
03/03/13 08:31ID:9FkJfCBrごめんなさい
もう少し詳しく書きます
別のcgiは別のサーバにあります。
で、POSTでそのcgiに値を渡し
そのcgiが(ブラウザに)出力する結果を元に
処理を行う、それをいくつか繰り返す
以上の事をcgiで行うことは可能でしょうか
0654nobodyさん
03/03/13 08:59ID:???可能
ただし、これ以上の質問は使っている言語専用スレで
> cgiで行うことは可能でしょうか
cgi の部分を、PerlなりPHPなり自分が使っている言語に
置き換えて読み返してみれば、すぐ解ることでしょが
0655nobodyさん
03/03/13 09:09ID:Lbm4LPV1http://homepage3.nifty.com/digikei/
0656bloom
03/03/13 09:18ID:+b8Vztun0657632
03/03/13 15:56ID:rD3WUou4ちょっと質問悪かったかも。
重い・軽い・っていうのは、どういう作りによっておきるのか?
と、聞きたかったのです。
それで、設定項目が・・・なんてことを言ったのですが。
>>634
うーん、そっか。
んじゃあとりあえず、40KBとかあるスクリプトが必ずしも
重いとは限らないわけね。
0659nobodyさん
03/03/13 16:38ID:xb4yxiHKアクセス解析するページを見ると、×印が表示されます。
FAQの
http://www.futomi.com/library/faq/acc_faq.html#1
は見ました。
standard版だと上記の方法で×印が表示されないようには出来たんですが
professional版だと駄目でした。
サーバーはxreaの無料鯖を使ってます。
×を表示しないようにする方法を知ってる方がいたらぜひとも!
教えてください。
0660nobodyさん
03/03/13 16:41ID:???私は、このウェブサービスが、初心者向けサービスでないことを知っています。最低限必要な情報しか提供していないことを知っています。
私は、問題を自分で解決する努力をします。わからないことはまず自分で調べます。
(XREA 規約より)
0662659
03/03/13 16:47ID:???やった事を書くのを忘れていたので書かせて頂きます。
自動広告表示が原因だと思うのですが
自動広告をやめてhtmlに直接タグを書いて広告を表示しても
×印が消えなかったです。
futomi's CGI Cafe のFAQではこれで×は消えると書いていたのですが
駄目でした。
検索エンジンでも調べてみましたが駄目で、
自分で言うのもあれですが努力はかなりしました。
出来れば解決方法が分かれば教えてください。
宜しくお願いします。
0663nobodyさん
03/03/13 16:47ID:???重い = 処理時間が長い
つまり効率的な処理ができていないものと言える。
(処理そのものが複雑な場合もあるが、それはとりあえず置いておく)
効率的な処理というのは、>>632で挙げられたことと全く関係がない
わけではないが、そこに大きな関係を見出すことは難しい。
また処理の方法というのは、ほとんどの場合幾通りものアプローチが
あるもので、どれが効率良いかは試験と経験でしかわからない。
というわけで、ネット上で配布されているようなものに関して言えば、
使ってみるかソースを読んで解析するかしないとわからないよ。
既ユーザに使用感を聞いてみるのが一番簡単な方法かもね。
0664nobodyさん
03/03/13 19:07ID:ajLCHyyn0665nobodyさん
03/03/13 19:47ID:???>設定項目(=変数)が多いと重い?
設定項目が多くても、処理が少なければ軽い。
>サブルーチンが多いと重い?
サブルーチンが少なくても、全体の処理が多ければ重い。
>それとも行数が多いと重い?
たった1行でも無限ループになっていたらそっちの方が重い。
>コメントが含まれていると重い?
誤差の内。
結局は、計算機が計算を行なう回数と、ファイルアクセスなどを行なう回数及び時間に関わる。
結果として、>663さんの言うのが正しいわけだが。
どういう作りで、というなら、シンプルな方が軽い。
もちろん、下手な奴が作ればシンプルでも重くなるが。
あとはベンチマークでもやって自分で計るのが一番。
いうまでもないがローカルでな。
0666nobodyさん
03/03/13 20:32ID:???0667nobodyさん
03/03/13 21:37ID:???出来る範囲で分割させた方が管理しやすいと思うんだけど。
書き込みと表示を分けるとか。
0669nobodyさん
03/03/13 21:49ID:0oN+bQDd0670nobodyさん
03/03/13 21:57ID:???一画面に収まらない関数を作った場合は再検討する。
0671nobodyさん
03/03/13 22:26ID:???これについては、C-BOARDは強烈。画面をまたぐifのブロック。
0672nobodyさん
03/03/13 23:58ID:???1ファイルは大体20kb以内。500行ぐらいが己の限界です。
2000行なんて書いてたら、思いついた所を探す時には、泣いちゃうよ〜。
0673nobodyさん
03/03/14 00:05ID:???>これについては、C-BOARDは強烈。画面をまたぐifのブロック。
あなたが挙げているインデントの増加という面ではこれはむしろその抑止に働いていると思う。
kbだから大体2KBってとこか。平均10文字で200行。微妙かも。
0674nobodyさん
03/03/14 00:14ID:???0675nobodyさん
03/03/14 15:39ID:d7q/oEUSちゃんとコメントつけると、私は数十行などすぐ逝ってしまいます。
0678nobodyさん
03/03/14 17:06ID:???0679nobodyさん
03/03/14 17:07ID:???0680nobodyさん
03/03/14 17:15ID:???変数などの命名がヘタなんだろう。
0681657
03/03/14 17:29ID:Qg58BTXTちなみに私がつくったんじゃないっす。そこまで技術力は(以下略)
>>663,665
あ、なあんだ・・・そういうことだったのか。
なんとなく、変数があるとそれを記憶するのにメモリを使う=重い
なんてこと思ってた・・・。
コメントは極力ないほうがいいのか、っていうのも、Perlが「上から」
見ていく言語だから、飛ばすものは無いほうが、なんてことを考えてた・・。
#行が増えると検索に時間がかかる、のと同じレベルで考えてました。
そっか。これで安心してコード書けそう。
>>675
私はせいぜい設定項目にコメントつけて、サブルーチンに
これは何をするヤツって書くぐらい。
シンプルな掲示板なら数十行まではいかない。
配布するつもりないから使用条件とか書かなくていいし。
0682nobodyさん
03/03/14 18:02ID:???まだ勘違いしているようだが。
重いのとメモリ食うのははまた別。
0683nobodyさん
03/03/14 20:29ID:i5QyaZbU以下のようなイメージで「ソース」をクリックすると、ページの
ソースが見えるようにしたいのですが、このままですと
当然CGIそのものが実行されてしまいます。
print '<a href="http://11.11.111.111/cgi-bin/hogehoge">ソース</a>';
教えていただけませんか。
0686どーでもいい話だけど
03/03/14 20:45ID:???なんなのIEは。
0687683
03/03/14 20:57ID:???そうなんです。拡張子を.txtにしてもなぜかcgiが実行されてしまい
ます。ただし別ディレクトリに保存したら正しくソースが表示
されますが...できれば*.txtのファイルは別途作成せずに
やりたいです。
0688nobodyさん
03/03/14 21:15ID:???cgi-binの中に画像ファイルを置いても表示されないことがあるのはそのタイプ。
apacheならScriptAliasってやつだね。
で問題のソースの表示だけど、
別ディレクトリにtxtで置くか、ファイルの中身だけを表示するCGIを別に作成する。
後者は下手なプログラムだと知らない人に遊ばれちゃうので注意が必要。
0689nobodyさん
03/03/14 21:46ID:???0690683
03/03/14 21:53ID:0q8cRWlrありました。別ディレクトリに.txtをおくことにします。
0691nobodyさん
03/03/15 02:42ID:Ch+qUXLEログを更新する際、
open(IN,"hoge.log");
@lines = <IN>;
close(IN);
push (@lines,"$d0<>$d1<>$d2<>$d3<>$d4\n");
open(OUT,">hoge.log");
@lines = <OUT>;
close(OUT);
って感じに一度全て配列に代入し、
配列に新しい値を加えた後、
ログファイルに書き込んでるんですが、
open(OUT,">>hoge.log");
print OUT "$d0<>$d1<>$d2<>$d3<>$d4\n";
close(OUT);
↑これじゃあだめなんでしょうか?
だめな理由とかあれば教えていただけないでしょうか?
0694nobodyさん
03/03/15 02:59ID:???ケントのは読み込んでからデータを追加してファイル丸ごと上書きだろ。
別に追加でも構わないけど、下のじゃロックもかけてないからダメだ。
0695nobodyさん
03/03/15 03:08ID:???追加でもかまわないんですね。
どうもありがとうございました。
あと、ロックですが、
前後に&lock;と&unlock;
してあるんで大丈夫と思います。
0696nobodyさん
03/03/15 03:15ID:???0697nobodyさん
03/03/15 03:38ID:5hlN9xGBドメイン検索エンジンは、通常どういった仕組みで作られて
いるのでしょうか。
検索してもこれといったものが見つからなかったため、
質問させていただきました。
すみませんが、どうか宜しくお願いします。
0698nobodyさん
03/03/15 03:42ID:???0699nobodyさん
03/03/15 04:08ID:???何を知りたいのだろう?
0700nobodyさん
03/03/15 04:21ID:5hlN9xGB説明不足ですみません。
お名前.comのような、.com等のドメインが空いているか
サーチするプログラムを自前で作りたいということです。
0701nobodyさん
03/03/15 04:22ID:???見たいな事をしたいんですが、どのように書けばいいでしょうか?
0703nobodyさん
03/03/15 04:27ID:???0706nobodyさん
03/03/15 18:05ID:sA3oWGif質問です。
よく吐きだしたhtmlを直接表示させる掲示板cgiがありますけど、その吐きだした
htmlをいったんファイルとして保存して、そのhtmlを掲示板として表示させるように
するにはどうしたらいいんでしょ?
0707nobodyさん
03/03/15 19:04ID:???そのまんま。
答え出てるじゃない。
0708nobodyさん
03/03/15 19:16ID:???> 吐きだしたhtmlをいったんファイルとして保存して、
> そのhtmlを掲示板として表示させるようにするにはどうしたらいいんでしょ?
htmlファイルを作る処理を終えたら、そのhtmlファイルに飛んだらいい話かと。
Perlなら print "location: URL\n\n";
0709706
03/03/15 19:57ID:1k1hrfmMしたいことの論理が正しいことは分かりましたが(w、具体的なやり方が
分からないのでし。
>>708
>htmlファイルを作る処理を終えたら、そのhtmlファイルに飛んだらいい話かと。
>Perlなら print "location: URL\n\n";
この行はどこに挿入したらいいんでしょうかぁ? フッター作成の後?
それともcgiの最終行ですか?
■ このスレッドは過去ログ倉庫に格納されています