CGIだけど、なんか質問ある? part 6
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/04/23 20:28ID:Kp0cZQna<<注意:CGIは特定の言語に依存するものではありません>>
Perlのコーディングに関する質問はこちら
【Perl】初心者コーナーPart11
http://pc.2ch.net/test/read.cgi/php/1017201229/
過去ログは>>2
0670nobodyさん
02/06/17 07:14ID:nRo1vqSRこのようにするとうまくいかないのですが・・・。
0671nobodyさん
02/06/17 07:17ID:nRo1vqSR[error] [client 127.0.0.1] syntax error at c:/apache/htdocs/test.cgi line 550, near "}"
このようなエラーが出てきます。
0672hoge
02/06/17 07:25ID:???at: 〜に
line: 行
near: 〜の近くに
0674nobodyさん
02/06/17 14:20ID:oSTbTHVJcookieを使ってROM禁の掲示板をやってますが、
ブラウザをcookieを食べる設定にしても、レスが見えない人がいます。
(その人は、XP&IE6を使ってます。)
レスを見れないと言ってる人は、ログを見るとcookieを食べてないのですが、
ブラウザはcookieを受け付ける設定にしてると言ってます。
掲示板のスクリプトはありふれた物で、変わった事はしてません。
他のユ−ザは問題ないですし、私が動作チェックした時も問題ありませんでした。
一部のIE6ユーザだけが見れないみたいなんです。
これはIE6の不具合なんでしょうか?
0675nobodyさん
02/06/17 14:57ID:???http://www.google.com/search?num=50&lr=lang_ja&q=IE6%20Cookie
0676674
02/06/17 15:22ID:???私もそうだと思うんですが、cookieを食べてるって言い張るんですよ・・・。
取り敢えず上のURLに誘導してみます。
ありがとございました。
0677nobodyさん
02/06/17 16:15ID:9yBZa2Oocgiを設置したのですが、
adminって書いてある管理者モードのところがあるのですが、
そこに入ることができません。
これって、どこを直すとよいのでしょう?
0678nobodyさん
02/06/17 16:20ID:???それはたいへんですね。 URL を書いていただければこちらで確認してもいい
のですが。
0679677
02/06/17 16:27ID:9yBZa2Ooここ↓なのですが、なんとかなりますか?
http://cgi.tripod.co.jp/cyndi/cgi-bin/jdiary.cgi
0680hoge
02/06/17 16:29ID:gBMmBBrYしつもんのしかたをなおすとよいでしょう。
0681nobodyさん
02/06/17 16:32ID:HzoJQ/16そのようにすればよかったのですか・・・。
参考になりました。
ありがとうございました。
0682677
02/06/17 16:43ID:9yBZa2Oo日記ページなのですが、下のところのマスターってとこから入ると
管理者用のログインページが表示されるはずなのですが
まったく表示されないのです?
初心者でどこが?なのかも分からなくて。
何とか、ならないでしょうか?
0683nobodyさん
02/06/17 17:08ID:???0684nobodyさん
02/06/17 17:21ID:???0685677
02/06/17 17:28ID:9yBZa2Oo特には何もせず設置しちゃったのですが
どのあたりを見て直せば良いですか?
0686nobodyさん
02/06/17 17:36ID:???Perlで書かれたCGIだったら普通はCGIファイルの初めのほう。
別の設定ファイルがある場合も。
0687nobodyさん
02/06/17 17:37ID:???レンタルのCGIならレンタル元に、KentなどCGIスクリプト配布サイトで
ダウンロードしてきたスクリプトを自分で設置したのならスクリプトの
配布元に相談しる。
日記のCGIですって言われても世の中にいっぱいあるんだからわからんよ。
0688nobodyさん
02/06/17 17:37ID:???設定マニュアル
0689687
02/06/17 17:41ID:???0690nobodyさん
02/06/17 17:53ID:???最近これブレイクしてるらしいんで。
|>( ≡?ω?)<魚
|>( ≡´∀`)<魚
|>( ≡゜∀゜)<魚
|>( ≡ ゚Д゚)<魚
|>( ≡・∀・)<魚
|>( ≡?∀?)<魚
|>( ≡@-@)<魚
0691nobodyさん
02/06/17 18:07ID:???フリーのBBSCGI(↓これ)なんですが
ttp://isweb40.infoseek.co.jp/play/hirodd2/cgi-bin/sakula_b5/bbs.cgi
書き込まれている文章はEUC、
BBS自体の文字はS-JISなのです。
そのために、書き込みを見るにはEUCにせねばならず、
そうするとBBS自体の表示が化けてしまって見栄えが悪く、
BBS自体の表示をちゃんと表示するためにSJISにすると
書き込まれている内容が化けて読めないということになってしまいます。
つまるところ、EUCかSJISのどちからに統一したいんですけど
これ、どうやったらいいんでしょうか。
0692nobodyさん
02/06/17 18:12ID:???サイトを見たところ、内部処理がEUCでフォーム出力がSJISということですね。
フォーム出力をEUCのままでやるだけで解決します。
0694nobodyさん
02/06/17 18:36ID:???jcode.jpをリクワイヤしたのに、ブラウザの表示が
ばけてます。どうしてですか?
0696nobodyさん
02/06/17 18:40ID:???0697nobodyさん
02/06/17 18:45ID:???処理をしなければ、化けても文句は言えまい
0698691
02/06/17 18:57ID:???あぁ〜!
どっかおかしいと思ったら転送時にSJISで転送しちゃってました・・・
printはそれ自体の形式で生成するみたいで、お陰でEUCとSJISと
混ざっちゃってたみたいです。ありがとうございました。
0699nobodyさん
02/06/17 19:41ID:???0700nobodyさん
02/06/17 19:54ID:???今だ!700番ゲットォォォッ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´
∧∧ ) (´⌒(´
⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ ̄ (´⌒(´⌒;;
ズザーーーーーッ
http://www.geocities.co.jp/Milano-Cat/1568/zuza.swf?b64=jaGCvoFJglaCT4JPlNSDUYNig2eDSINIg0iDYoFJgUk%3D
0701nobodyさん
02/06/18 03:41ID:???i-mode版(http://red.tomato.nu/desperado/software/)に、
i-PADv2(http://www.kent-web.com/bbs/ipad/ipad2.cgi)みたいに
返信がいくつ返ってきてるかわかる表示を加えたいんですが、
どこをどういじればいいのでしょうか・・・ご教授お願いします。
0703nobodyさん
02/06/18 10:42ID:LbKvXgZA回答を貰えなかったので質問
open(LOCK,">どうでもいい空ファイル");
flock(LOCK,2);
ファイルAを読み込んで加工
テンポラリファイルBに書き出し
rename(ファイルB,ファイルA);
ファイルCを読みこんで加工
テンポラリファイルDに書き出し
rename(ファイルD,ファイルC);
flock(LOCK,8);
close(LOCK);
この処理でファイルA、ファイルCが壊れる確率ってどの程度でしょう。
rename途中にシグナル発生でプロセスが死んだりした場合以外は
そうそう壊れないでしょうか。
0704nobodyさん
02/06/18 10:59ID:???で、これがどうCGIと関係あるの?
取り敢えず、↓これ読んでみたら?
http://www.din.or.jp/~ohzaki/perl.htm#File_Lock
0705nobodyさん
02/06/18 11:12ID:???Unix系なら、rename実行時にファイルが壊れることは
ないと思っていいんじゃない。詳しくはrename(2)のman参照。
むしろ1回目と2回目のrenameの間でプロセスが死んだ場合などに
ファイルAとCの不整合がおきるほうが可能性は高そう。
それから、わかってると思うけどopen、flock、renameを
実行したときは必ず戻り値を見てエラーチェックしる。
0706703
02/06/18 11:18ID:???>>704
一応シグナルハンドラを設定してロックは解除するように
してます。というかflockってプロセスが死んだら自動的に
解除されませんでしたっけ?
>>705
はい、戻り値を見てエラーチェックして、途中でエラーが
発生したら前のファイルは元に戻るようにしてます。
まあ戻らなくてもいいものがほとんどなので一部を除いて
そのままですが。
というわけでありがとうございました。
0707nobodyさん
02/06/18 16:13ID:yIzQCv5hPGPで暗号化して送信したいんです。
さんざん検索したんですが、
個人間でやりとりするメールを暗号化する話しかひっかかりませんでした。
サーバはレンタル、メール送信する際はsendmailを使ってます。
なんかいいやり方や情報、お願いします。
# 他スレでも質問しましたが、板違いとのことでしたので、
# マルチではないと思います。
0709nobodyさん
02/06/18 18:58ID:???しかし、そこから例えば**.cgi?mode=search_1にアクセスしても飛ばないのです。
直接**.cgi?mode=member_viewとかでもダメでした。
多分処理のさせ方が変じゃないかと思います。何処が悪いかこれだけでわかりますか?追加2箇所削除すると正常です。
if ($u_agent eq "5") { &pc; } #PCメイン←ここ追加
else { &in_form; } #携帯メイン←ここ追加
if ($in{'mode'} eq 'member_view') { &members_view; }
elsif ($in{'mode'} eq 'mailform') { &mailform; }
elsif ($in{'mode'} eq 'sendmail') { &sendmail; }
elsif ($in{'mode'} eq 'search_1') { &search_1; }
elsif ($in{'mode'} eq 'search_2') { &search_2; }
else { &manual; }
これ以外でcgiにアクセスされた時PCの時は"&pc"処理。携帯は"&in_form"処理させる方法があれば教えて下さい。。
0710nobodyさん
02/06/18 19:01ID:???http://www.harukaze.net/~mishima/perl/module/mlstj2.html#2-14
簡単に使えるようになるのは、まだ先の話ってことなんだろか?
0711707
02/06/18 19:15ID:???レスさんきゅ!
今のレベルのオイラにはサパーリでしたが、
簡単にはできないという結論ですよね。
オンライン通販してるショップサイトにて「SSL+PGPで安心!」とあったので
どうやってるんかなと単純に疑問を持ったのでした。
0712nobodyさん
02/06/18 21:33ID:???fmlのパッケージの中に、libpgp.pl なるモノがあった
パッと見た感じは、別途導入した pgp へのI/Fのようだ
ま、ご参考までに
0713nobodyさん
02/06/18 22:02ID:???0714nobodyさん
02/06/18 22:26ID:T2Ry5zLo0715nobodyさん
02/06/18 22:52ID:???0716nobodyさん
02/06/19 03:50ID:???CGIを使えるサーバで、.htaccessも使えるかどうかはどうやって確認すれば
いいのでしょうか?ISPのサーバだと、CGIはOKでも.htaccessは不可だったのですが、
ISPやレンタルサーバのFAQには特に明記されてなかったので、困ってしまって……。
サーバ管理者にメールなどで問い合わせるしかないのでしょうか?
新しくサーバを借りようと思います。お勧めのサーバがあれば、
上記の質問に併せてご推薦いただければと思います(こっちは板違いなので
無視して頂いてもいいです)。
具体的には、特定の人に対して、index.htmlのあるフォルダへのアクセス制限かけたいんです。
宜しくお願いします。
0719nobodyさん
02/06/19 11:46ID:???場合、パタ−ンマッチしたあとなにをすればいいのでしょうか?
0720nobodyさん
02/06/19 12:09ID:???0721719
02/06/19 12:27ID:???useridを検索してその個人情報を書き換える方法がしりたいです。
0724nobodyさん
02/06/19 12:37ID:???ここは【Common Gateway Interface】に関するスレだよ
0725nobodyさん
02/06/19 12:37ID:???普通にファイルを読み読みながらマッチした部分があれば書き替えて一時ファイルに
書き込んでいき、リネームする。これをファイルロックを使ってやればいいのでは?
0726719
02/06/19 12:42ID:???while(<FH>)
if (/マッチさせるもの/)
でマッチングに成功したんですがこの方法だとどうやってマッチ行の文字列
を書き換えていいのかわわらなくなってしまい、
別の方法があれば教えてもらおうかと、、。
>>724 意味がわかんないんですけど
0727725
02/06/19 12:48ID:???while (<FH>){
if (/\Q$in{'KEY'}\E/o){
ここでマッチした行の書き替えたい部分をすりかえる
}
}
724さんとしては、WEB上からのデータを扱っていてもつまづいてる部分の
処理内容はCGIの部分とはべつものだということ。
0729719
02/06/19 12:58ID:???>>727の方法を勉強してみます。
パタ−ンマッチでやるのとfor文で$iを増加させて$list[i]で一行づつ
照らし合わせる方法もなくもなかったんですがなんとなく
処理負荷がマッチよりかかる気がして、、、、実際のとこどうなんでしょう?
0730725
02/06/19 13:02ID:???0732725
02/06/19 13:10ID:???0733ト−シロ
02/06/19 13:33ID:???これなら配列で書換え可能でした。
どうもお騒がせしました。
0734nobodyさん
02/06/19 14:44ID:es/NDl1S日本語ファイル名対応のがいいです。
0735nobodyさん
02/06/19 14:46ID:???0737nobodyさん
02/06/19 23:37ID:???0738nobodyさん
02/06/19 23:42ID:???use IO::Socket;
use FileHandle;
なぜか文字ばけします
#require 'C:\Inetpub\wwwroot\test\jcode.jl';
$host = 'localhost';
$port = 6060;
文字コードはこれが一般的なのかな?
print "Content-type: text/html\; charset=EUC-JP\n\n";
#print "$host:$port<p>";
$socket = IO::Socket::INET->new(PeerAddr => $host,
PeerPort => $port,
Proto => 'tcp',
);
if ( ! $socket ){
die "misss<p>";
}
print $socket "ON";
$socket->flush();
この辺りで、止まってますどうしてでしょうか???????
ここが一番わかりません!
#$buf = <$socket>;
#print "$buf";
while(<socket>){
print $_;
}
print $socket "END";
print "END<p>\n";
$socket->close();
0739nobodyさん
02/06/19 23:45ID:???↓
require 'C:\\Inetpub\\wwwroot\\test\\jcode.jl';
0740nobodyさん
02/06/20 11:01ID:???CGIとは関係ないようだが?
つーか自分で理解できないコードを書くなよ。
どこかから移してきたのならその「どこか」を書け。
いきなり「ソース診てもらえませんか」もないもんだ。
>>739
試してみれば判るけど、バックスラッシュは一つで問題なし。
0741nobodyさん
02/06/20 14:32ID:qw4hZtl9sendmailを使ってのフォーム送信CGIでmailtoの宛先に
間違って存在しないメールアドレスを記述してしまった場合、
その送信フォームCGIから送られたデータはどこにいってしまうのでしょうか?
存在しないので送り返されるとしたらどこに戻ってくるのでしょうか?
0742nobodyさん
02/06/20 14:51ID:???ブラウザ上でHTMLのテキストフィールド(<input type="text">)にデータを入力し、
submitボタンを押したらCGIを呼んで、そのCGIからExcelのシートにどうにかデータを渡せないでしょうか?
つまりはCGIからExcelにデータを渡したい・・・と。
よろしくお願いします。
0743レベル落ちたねぇ…
02/06/20 15:15ID:???( ゚д゚)ポカーン
0744.
02/06/20 15:18ID:???Excelのシートってのはアプリ固有のフォーマットを持ったファイルだろ。
不可能とまでは言わないが、それをCGIで処理は無理があるだろう。
せいぜいCSVにでも書き出してローカルでインポートでもしたら?
0745738
02/06/20 17:08ID:???ここを参考に、CGIからソケットで独自のサーバにつなぐプログラムを
つくっています。現在では通信テストの段階でアプリプロトコルの設計
は、HTTPを参考に開発しようと考えています。
http://x68000.startshop.co.jp/~68user/net/module-1.html
サーバ:IIS5
CGI:ActivePerl5 DLL
@構成
ブラウザ→CGI/Perl→(ソケット通信)VBサーバ
@最大のトラブル
CGIからVBサーバにソケット送信して、そのエコーを受け取りたいのですが
CGIプログラムが正しく動作しません。VBの動作はTelnetで確認しました。
CGIのPrint文で止まります。問題のコードは次のとおりです
問題のコードと思われるパターン1
$buf = <$socket>;
print $socket "$buf";
問題のコードと思われるパターン2
while(<socket>){
print $_;
}
いづれも、VBエコーを表示できません。
どこがおかしいのかよろしくお願いします。
0746738
02/06/20 17:23ID:???エコー機能は成功しました。
$buf = <$soket>;
print "$buf";
ただ、このコードが成功しません
while(<$socket>){
print $_;
}
このコードが止まりません。
ソケットを切断するととまりました。
どうしてでしょか?
あと日本語が表示されません。化けます
jcode.jpを要求したのに、どのように合わせたらいいですか?
0748nobodyさん
02/06/20 18:23ID:cqGMaGWX自動的にデータベースに登録や削除するスクリプトは
どんな感じになりますか?
0750738
02/06/20 18:40ID:???わかりますた。文法はPerl板へ逝きます
文字コードについてだけおしえていただけませんか?
xxx.cgi ← シフトジスで保存してます
CGIはこうかいてます
print "Content-type: text/html\; charset=EUC-JP\n\n";
つまり、ブラウザではシフトジスをEUCに変換して表示ということ
でよろしいでしょうか?
0751nobodyさん
02/06/20 19:06ID:???違う。変換はちゃんと変換処理する必要がある(jcode.plなどで)
>print "Content-type: text/html\; charset=EUC-JP\n\n";
これはただブラウザに「このテキストの文字コードはEUC-JPです」と伝えているだけ。
だから当然テキスト自体がShift_JISなら文字化けする。
0752nobodyさん
02/06/20 19:12ID:???今はPATH_INFOから読んでいるようですが、
QUERY_STRINGではなくPATH_INFOから読むことにどのような意義があるんですかね?
送信する文字数が減るだけ・・・ではないと思うのですが・・・
0753nobodyさん
02/06/20 19:14ID:???これでうまくいきました
print "Content-type: text/html\; charset=SHIFT-JIS\n\n";
jcode.jpをはずしましたが、同じように動きました。
jcode.plは、どのような働きがあるのでしょうか
0754nobodyさん
02/06/20 19:39ID:???まあ2chの場合は転送量が減ることが大きかったよな。
一般には、ttp://domain/download.cgi/hoge.jpg みたいなURLは
ローカルに保存するとき"download.cgi"じゃなく"hoge.jpg"という
ファイル名になる(ブラウザがごまかされる)ので便利。
0755nobodyさん
02/06/20 21:02ID:???jcode.plは文字コードを変換したりするためのもの。(JIS SJIS EUC)
意味わからずにどうやって使ってたのか不思議だ。
>print "Content-type: text/html\; charset=SHIFT-JIS\n\n";
書き方間違ってるし・・。
○ print "Content-type: text/html; charset=Shift_JIS\n\n";
075662
02/06/20 21:32ID:???require でjcode.plしても日本語が正しく表示できるのが不思議だ
xxx.cgi Shift-JISで保存
charset=Shift_JIS でブラウザ表示
このときは、jcode.plが必要ないということでいいですか?
UNIXのときは
xxx.cgi がEUCか何かになるのでjcode.plがいるということですか?
0757nobodyさん
02/06/20 21:36ID:???何を言っているのやら・・・
jcode.plのgetcodeである文字列の文字コードを取得したり、
convertである文字列の文字コードを変換したりする
require は別ファイルのスクリプトを利用可能にするだけ
コーディング以前に勉強すべきことが山ほどあるぞ
0759752
02/06/20 23:22ID:???なるほど・・・やはり転送量の問題でしたか。
ファイル名がそうなるのは知らなかったですわ。
画像を出力するCGIにこれは便利ですな。
Thanx.
0760nobodyさん
02/06/21 00:31ID:???で、jcode 関係で熱くなっている所スマンが、それがどう【CGI】と関係あるの?
単なるコーディングの話じゃぁ?
0762nobodyさん
02/06/21 00:40ID:???0763nobodyさん
02/06/21 03:49ID:???うんうん。
ttp://domain/download/hoge.jpg
(downloadはCGI)
としておくと、見た人も気づかないし。
0764nobodyさん
02/06/21 13:09ID:???0765nobodyさん
02/06/21 13:33ID:???0766nobodyさん
02/06/21 13:47ID:???さくらインターネットと言うCGI可能サーバーを利用しています。
配布している掲示板を設置してパーミッションや転送は案内通り何回
も確認しながら行いました。しかしエラー番号500の連続です。
試しに INDEX.HTMLをINDEX.CGIに変更してアップしましたがそれでも
エラー500と出ます。これは設定とかの問題ではなくサーバー問題で
しょうか??
0767nobodyさん
02/06/21 14:19ID:???どの様な方法がよろいしいでしょうか?
0768s
02/06/21 14:32ID:???それって、CGIをアップできる環境でってこと?
■ このスレッドは過去ログ倉庫に格納されています