CGIだけど、なんか質問ある? Part 6
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/07/06 13:41ID:Mpxtn4bk※CGIは特定の言語に依存するものではありません。
※Perlのコーディングに関する質問は専用スレがありますのでそちらでお願いします。
↓
Perl 初心者コーナー Part13
http://pc.2ch.net/test/read.cgi/php/1022731565/l50
過去ログ・関連スレッドは >>2
0713nobodyさん
02/08/27 13:25ID:OV4vTErYどうしたらいいですか?
0715nobodyさん
02/08/27 13:51ID:bSwaE/gx同じ機種の携帯2台で実験したところ、環境変数で変化する項目はIPとポートのみで、
IP→接続するたびに変化、ポートリロードするたびに変化で
個々の端末の判別に利用できず、COOKIEを食わせようにも食ってくれず、
どうにもできない状態です。
よい方法知ってる人いたら教えてください。
0716713
02/08/27 13:52ID:OV4vTErYユーザーエージェントってなんですか?
ちなみにネタじゃないです。
0718nobodyさん
02/08/27 14:06ID:I18kXluBI.Eとかのブラウザのこと。
0719nobodyさん
02/08/27 14:07ID:???ボク怒っちゃうE
検索してから質問してネ
アト、板違いなので Web制作板に逝ってクレ
http://pc3.2ch.net/hp/
0720713
02/08/27 14:17ID:OV4vTErYスイマセン。検索したら大体わかったのですが、
私の説明不足だったので改めて質問しなおします。
i-modeのショッピングカートのCGIで、かごの中を
見た時に商品名が文字化けしてしまうのです。
それを直すにはどうしたらいいでしょうか?
素直に全角で商品名を書いた方が賢明でしょうか?
何か他の板で「CGIで半角カタカナを表示させるのは難しい」って
読んだんです。
長々とすいませんが、ご指導お願いします。
0721717
02/08/27 14:20ID:???i-modeではutn指定しないとID送られないようです。
0722715
02/08/27 14:20ID:???全対応。。。とまで行かなくても、503辺りまでとかは無理ですか?
D503iSを2台使ってやってみたら、HTTP_USER_AGENTがまったく同じだったもので(汗
0724nobodyさん
02/08/27 14:31ID:M6gPKX3ji-modeだったらShift_JIS固定なのでCGIをShift_JISで書けば良い。
0726nobodyさん
02/08/27 15:00ID:???http://pc.2ch.net/test/read.cgi/php/990173593/
0727697
02/08/27 15:08ID:???単純なコピペじゃ動かないだろうから、移植とかいたのだが、通じていないね。
素人なら、KENTさんや、KENTスクリプトの改造配布している人に頼むしかないのでは?
# 俺は改造YY-BOARD(YYnote)を改造したから、オリジナルの事は正直知らないんだ(スマソ
0728728
02/08/27 15:21ID:XC6qe5bdTOPページに小さいBBSを埋め込んでいるサイトを見つけて、
同じようなソースを探したんですけど、見つかりませんでした。
何かいいソースはご存知ないですか?
0729713
02/08/27 15:23ID:OV4vTErY「CGIをShift_JISで書けば良い。」ですが、
最初に何か宣言したりするんですか?
それともエディタのモードをShift_JISにして書く
という事ですか?
当方、エディタは秀丸です。
CGIはもとから改造なのでどこを修正するのか
分かりません。
0730nobodyさん
02/08/27 15:33ID:u+z2O7j8http://www.bulldog.co.jp/
定番でしょ。
>>729
Content-Typeヘッダでcharset=Shift_JISを指定する。
スクリプト自体もShift_JISで書く。
Jcode.plでも使ってデコード時にShift_JISに変換する。
i-mode専用だったら、最後はいらない。
0731730
02/08/27 15:34ID:???0733nobodyさん
02/08/27 15:52ID:???html javascript cgi の、どれを指しているか解りません。
場合によっては、て言うかむしろ板違いだと思われ。
>>729
思いついたことを試してみてから質問するようにして下さい。
出力を Shift-JIS にする必要があります。
Shift-JIS で保存するだけでも動作する可能性はあります。
>>730
えこひいきすんな。
0734713
02/08/27 17:48ID:OV4vTErY色々試してるんですが、まだ上手くできません。
&jcode'convert(*name,'jis');
&jcode'convert(*value,'jis');
↑
のjisをShift_JISにすればいいんでしょうか?
後、「Shift-JIS で保存するだけでも動作する可能性はあります。 」は
動作しませんでした。
>730
「Jcode.plでも使ってデコード時にShift_JISに変換する。」って
どこをどうさわるのか分からないのでまだ試せません。
0735nobodyさん
02/08/27 17:51ID:???&jcode'convert(*name,'Shift-JIS');
トカじゃないの?
0736nobodyさん
02/08/27 17:56ID:qVb9I/tBjcode.plのシフトジスは 'sjis' です。
0737nobodyさん
02/08/27 18:00ID:???知らないのだったら適当なこと答えないほうがよいと思われ
>>734
検索しる。
google で jcode.pl だけのキーワードで検索しても
jcode.plの公式サイトとjcode.plの私的な解説書ってサイトがすぐ見つかる
0738nobodyさん
02/08/27 18:01ID:qVb9I/tB0739713
02/08/27 18:03ID:OV4vTErYさっそく検索して試して見ます。
後ほど報告します。
0740735
02/08/27 18:16ID:???なんだ。このレベルならみんな答えられるのか。
0741nobodyさん
02/08/27 18:46ID:???プ
0742優香
02/08/27 22:04ID:41JLJ2p7if ($id eq ""){&error("IDを設定してください。");}
elsif ($siteurl eq ""){&error("サイトURLを入力してください。");}
elsif ($email eq ""){&error("メールアドレスを入力してください。");}}
この記述の中に一部のメールアドレスやURLを禁止語句として組み入れるにはどうすれば良いでしょう?
別のCGIの記述の中にこういうのもあったのですが・・
@badmail = ('090');foreach(@badmail) { if ( $in{'email'} =~ /$_/ ) { &error("メールアドレスに不正な文字が含まれています。");}
単純につなげてもダメですね・・・素人ですいません。
0743nobodyさん
02/08/27 22:12ID:???\\ノハ)ヽ)∩
(○) ´∀`ノ丿 / ̄ 謝ってからかきこんでねー
⊂二 y / < if ($email =~ m/^090/){&error("メール欄が 090 ではじまってるよー");}
/ _二⊃ \_マルチポスト(いろんなところで同じ質問をすること)はダメだよー
⊂二ノ
0744優香
02/08/27 22:18ID:41JLJ2p70745タオル
02/08/28 15:14ID:C5teLTv+HTML内
<img src="../xxx/xxx/aaa.cgi" alt="GIF">
で、cgiを指定して
cgi内
#!/usr/local/bin/perl
print "Content-type: image/gif\n";
print "\n";
open(IMG, '/xxx/xxx/bbb.gif');
print <IMG>;
close(IMG);
と書いたのですが、画像を表示できません。
何がいけないんでしょうか?
0747nobodyさん
02/08/28 16:16ID:???open(IMG,"./xxx/xxx/bbb.gif");
print "Content-type: image\/gif\n\n";
binmode(IMG);
binmode(STDOUT);
print <IMG>;
close(IMG);
0748nobodyさん
02/08/28 16:43ID:???0750nobodyさん
02/08/29 01:10ID:???この$aで、「◆keyword1◆」と「◆keyword2◆」にはさまれた部分「かきくけこ」
だけを抜き出したい場合。
indexで「◆keyword1◆」の位置を、rindexで「◆keyword2◆」の位置を調べて
substrで抜き出すという方法はすぐおもいつきましたがもっとスマートな方法が
あればお知恵拝借したいと存じます。
0752nobodyさん
02/08/29 01:28ID:???本当は抜き出す部分が何であるかは事前にわかりません。
0753nobodyさん
02/08/29 01:34ID:???じゃあ、「あいうえお」の部分に「◆keyword1」と入れられたり、
「さしすせそ」の部分に「keyword2◆」と入れられたらどうするの?
0754nobodyさん
02/08/29 01:40ID:???0755nobodyさん
02/08/29 01:43ID:???なぜないと言い切れるのか。
そういう考えがセキュリティホールを生み出したりすると思うのだが。
絶対にないと言うなら、正規表現でも使えば?(Perlの場合)
0756nobodyさん
02/08/29 01:44ID:???書きなよ
0757nobodyさん
02/08/29 01:46ID:???正規表現使うとどうなりますかね?
0758nobodyさん
02/08/29 01:50ID:???そういう気持ちに問題があるっての。
あんたのCGIのせいで、同じサーバーのほかの人間が迷惑被る可能性だってあるんだよ。
0759nobodyさん
02/08/29 01:51ID:???サーバーにアップする前にはちゃんと対策します。
0760nobodyさん
02/08/29 03:16ID:???($hoge) = $a =~ /◆keyword1◆(.*?)◆keyword2◆/;
substr使った方が倍以上速いけど
$b = index($a,'◆keyword1◆'+1,index($a,'◆'));
$hoge = substr($a,$b+3,rindex($a,'◆keyword2◆')-$b-3);
0761nobodyさん
02/08/29 03:48ID:???すごいです。ありがとうございます。$aには\nも含まれるので、/s;にして無事うまくいきました。
しかしやはりsubstrの方がやや速かったです。
0762760
02/08/29 04:17ID:???上の例だと2倍チョイだけど、抜き出す文字列が長くなれば速度差は
数十倍以上になったりするからね
つってもループ外で使うなら気にするほどの差じゃ無いので
自分が分かりやすい方を書いた方が後々良いかもしれん
0763nobodyさん
02/08/30 11:23ID:w917hCw/cgi-binにしかスクリプト置けなくて、そのスクリプトは
members.tripod.co.jp/垢/cgi-bin/スクリプト名
では読めず、
cgi.tripod.co.jp/垢/cgi-bin/スクリプト名
でしか読めない。
で、cgi.tripod.co.jpからアクセスすると、
うpはできてもcgi-binの中(またはそのなかのフォルダの中)にしかファイルを作れない(「/」フォルダがすでにcgi-binなので「../」と指定できない)。
すると、うpしたファイルを落とすとき、
members.tripodからはcgi-binにアクセス権がなく、
cgi-tripodからは拡張子がcgiのファイルしか直接読めない。
なんかいい方法ないかな。
0764nobodyさん
02/08/30 12:37ID:???欧鳥みたいに php+MySQLが一番なんだが
#最近jp弾きするようになったのは誰のせい?
0765nobodyさん
02/08/31 01:51ID:3XHp94dS[10] Re:お疲れサンタマルタ♪ HOME 2002/8/30(Fri)
22:46:37-taka-管理人さん(ZONE幼稚園)
この書き込みで
次のからはウイルスが勝手に飛んだりパス解こうとすると・・・
って感じにするから大丈夫。
って(汗
CGIにそんなことが可能なんでしょうか?
どうやってウィルス飛ばすんでしょうか?
0767宣伝隊No.4
02/08/31 08:07ID:qEuEjGno最大限に2chのパワーを引き出した掲示板が
今、見参!!
0769nobodyさん
02/08/31 21:25ID:9CUDh78Mperlで似たようなもの作ろうと思うんですが>index.cgiにして置く予定
誰か似たようなスクリプト作ってませんか?
0771nobodyさん
02/09/01 04:48ID:nhMd50K5ボタンで行うとき、そのページ内で再リロードしますよね?
それの情報を別ウインドウに送るにはどうすればいいのでしょうか?
0773769
02/09/01 10:28ID:2Mci4oQXまぁ そうなんですけど
ファイル上げるたびに更新するのめんどいんで
動的にやってくれるやつがないかなって
0775769
02/09/01 11:11ID:2Mci4oQX使えたら苦労はしないっす。
CGIだけは使えるのでそれでどうにかしようと思ってます。
0777769
02/09/01 11:34ID:2Mci4oQXapache1.3.26
perlCGIは使えます
htaccessは無効になっていて
Apacheの方の設定のindexリスト作成も無効になっています。
0778nobodyさん
02/09/01 12:02ID:???<form action"..." target="...">
とかいう問題じゃないよね?
0781nobodyさん
02/09/01 12:18ID:???action「=」が抜けてた。
鬱死。
0783nobodyさん
02/09/01 13:33ID:???CGIって言葉の意味ってどんなもんでしょう。
「デジタル用語辞典」とかに載ってる様な、「HTMLでは実現できない云々」
とか言う方はわかるんですが、
「PHPはCGIより速い」
という場合の「CGI」の意味がちょっとわからんす。
先ほどの定義ではPHPとかもCGIなような気がするんで。
もしかしてこういう場合は、
mod_phpとかmod_perlに対して、mod_cgiという意味で使っているのでしょうか?
0784783
02/09/01 14:21ID:???0785nobodyさん
02/09/01 15:18ID:???>「PHPはCGIより速い」
こんな馬鹿なこと言ったの誰だ?
0786nobodyさん
02/09/01 16:33ID:???CGIは言語ではなく技術を総称した言い方
>>783の「PHPはCGIより速い」っていった人はCGI=Perl言語と勘違いしてるだけ
0788783
02/09/01 19:08ID:???http://pc.2ch.net/test/read.cgi/php/1005122528/46-47n
例えばこういう使い方での「CGI」って言葉の意味です。
0790nobodyさん
02/09/01 19:32ID:???それはmod_perlの命令の一つに「CGI」というのがあるだけと思われ。
0791<>
02/09/01 20:55ID:8fmb+fu6ここに、
半角→全角
tr/A-Za-z0-9/A-Za-z0-9/;
その反対
tr/A-Za-z0-9/A-Za-z0-9/;
と書いてありましたが本当でしょうか?
自分で試してみようとは思わないの…?
とりあえず、perl5.6以上で文字コードutf8にしてuse utf8;でなら可能だけど。
さもなくばJcode.pmのJcode::trメソッドを使う、とか
0795<>
02/09/01 21:25ID:8fmb+fu6スクリプトはSJISで書いてます。全角英数字を半角に統一したいので、
jcode::tr(\$str, '0-9A-Za-z', '0-9A-Za-z');
または
&jcode::tr(\$line, <<'EOM', <<'EOM');
0-9A-Za-z
EOM
0-9A-Za-z
EOM
としましたがだめでした。
0797nobodyさん
02/09/01 22:13ID:???いや、PHPにもApache組み込み型じゃなくてCGI型があったはず。
インタプリタ言語としての性能差比較なんだろうか??
0798nobodyさん
02/09/02 15:54ID:2dKvJqigやっぱり和鳥ってCGI使いにくいんですか?
0800俺
02/09/02 17:25ID:???unlinkの関数で.iniのファイルを削除しようとしたのですが
むりでした。
iniのファイルは削除できないのですか?
A:できる(Yes,you can.)直訳:はい、できます
B:できない(No, you can't)いいえ、できません
C:知るか!!(How should I know?)どうして私が知ろうものか・・・
D:教えねえよ(I don't tell you.)私はあなたに教えません。
ABCDのどれかでおねがいします
0801nobodyさん
02/09/02 17:27ID:???わかるかっ!
0802俺
02/09/02 17:47ID:???0804俺
02/09/02 21:28ID:???0805nobodyさん
02/09/02 21:29ID:fApWiCnrhttp://www.leverage.jp/bloom/qry/search.qry?function=Search
0806783
02/09/02 22:55ID:???Apache組み込み型ってのはApache自体にPHPやらPerlのインタプリタとしての機能を
組み込んでそのスクリプトを処理するって事ですよね。
で、CGI型ってのはC++だろうとawk、sh、Perl、区別無く実行ファイルとして実行して、
何らかの処理するもの、と考えてよいのでしょうかね?
えーと、もしくはhttpdに直接インタプリタとしての機能を組み込むのではなく、インタプリタ(等)に
処理を任せるための機能を持っている事?
と言う事は、
http://japan.cnet.com/Help/manual/0217.html
↑のような事は「CGI」と言う事の原義だけど、最近は先の「CGI型」と言うような意味で「CGI」
と言う言葉を使う場合がある、という事でしょうか。
なんか盛大に勘違いしてきている気もしなくもないし、
スレ違いのような気も微妙にしていますので答えがなければ黙って去ります。
0807nobodyさん
02/09/02 22:57ID:???C言語CGI専用スレッド
http://pc.2ch.net/test/read.cgi/php/988918264/
の事か?
0808nobodyさん
02/09/03 10:38ID:+fworGnI0810nobodyさん
02/09/03 12:12ID:dMsxDOGy#!/usr/local/bin/perl
print "Content-type: text/html\n";
print "\n";
print "<HTML>\n";
print "<HEAD>\n";
print "<TITLE>テスト</TITLE>\n";
print "</HEAD>\n";
print "<BODY BGCOLOR=\"#FFCCCC\">\n";
print "これはCGIのテストです。\n";
print "</BODY>\n";
print "</HTML>\n";
0811808
02/09/03 12:15ID:05tL4XNtGMT-8で時間を取得したいです。
あとdatに書き出す方法が分からないです。
すみません。調べても分からなくて。
0812nobodyさん
02/09/03 12:54ID:???print "Content-type: text/html; charset=Shift_JIS\n";
とか
print "Content-type: text/html; charset=EUC-JP\n";
とか指定しろ。
■ このスレッドは過去ログ倉庫に格納されています