CGIだけど、なんか質問ある?part4
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
01/09/18 18:17ID:plR9HC2Eprint<<HTML_END;
<a href="http://corn.2ch.net/test/read.cgi?bbs=php&key=988727833" target="_blank">旧スレ</a>
HTML_END
0497486
01/11/03 23:53ID:ALgC6AlSあります。
ソースを以下に見やすく、かつ、後でいかに
変更できるのが簡単にするか?みたいな講義です。
0498名無しさん@お腹いっぱい。
01/11/04 00:13ID:7toSDaGVこれってURLに?が含まれてたら、それ以降の
文字列を取ることは出来ないんでしょうか?
例えばgoogleからの検索ページからのリファラーって
http://google.yahoo.co.jp/bin/query?p
こんな感じになってて、
if(defined $referer && $referer ne '') {
$referer=~s/%([0-9a-fA-F][0-9a-fA-F])/pack("C",hex($1))/eg;
$referer=~s/[\n\r]/ /g;
}
こういうスクリプトじゃあ?以降のクエリを取れないんです。
教えていただけますか?
0499JAPU ◆JAPUTeX.
01/11/04 00:24ID:???って
1. "?" 以降を削除するって意味? => $referer =~ s/\?.*//;
2. "?" 以降を取り出すって意味? => ($query) = ($referer =~ /\?(.*)/);
0500498
01/11/04 00:58ID:7toSDaGVそもそも$ENV{HTTP_REFERER}で値を表示させてみても、
やはりq以降のクエリが表示できません。こういう場合って
どうしたらよいのでしょうか?
0501
01/11/04 16:38ID:fpY/kDekhttp://www.maze.se/freeware/perl.html
(英語版)
どうしても
404 File not found
No such file or directory.
と出てしまう・・・。
結構よさげなモノなのでどうにか設置したいのです。
どなたかよろしくお願いいたします。
0502501
01/11/04 16:40ID:fpY/kDekは「protect.pl」の設置です。
0503名無しさん@お腹いっぱい。
01/11/04 16:54ID:???0504名無しさん@お腹いっぱい。
01/11/04 17:42ID:???設置出来た。
以上。
0505aaa
01/11/05 20:04ID:???0506名無しさん@お腹いっぱい。
01/11/07 18:06ID:???getenv(poyo);
何が入ってるか解らないのです。
0508名無しさん@お腹いっぱい。
01/11/07 19:18ID:???第三引き数が有ったのかぁ、
取り合えずFreebsdとlinuxではOKでした〜(^へ^*
これでマヌケな分岐が減りますです。。
0509名無しさん@お腹いっぱい。
01/11/07 19:45ID:lsVE0brRフォームで取得したアドレスに送るためには
どうしたらいいでしょうか。
0510名無しさん@お腹いっぱい。
01/11/07 20:11ID:???それだけ書いても誰も答えられないぜ。
まずは具体的にどんな作業をしなければならないのかを書け。
0511509
01/11/07 20:47ID:???CGIは全くの初心者なので具体的に、と言われると難しいのですが
509の繰り返しになりますが、携帯に画像を送りたいのです。
普通にブラウザで見ているウェブサイト上から。
フォームにアドレスを記入してもらい、
そのアドレスに自動的に画像を配信できるようにしたいのです。
いくつかそうした例を見てみたのですが
「CGIにいったんアドレスを送っている」というところまでしかわかりませんでした。
こういった自動配信をするようなCGIを探しているのです…
下手な説明でごめんなさい。
0512名無しさん@お腹いっぱい。
01/11/07 21:41ID:???携帯はどういうふうに画像を受けとってんの?
メールに画像を添付して送ればいいのかね。
0513名無しさん@お腹いっぱい。
01/11/07 22:00ID:???配布されてる物を探してるのであれば
ここはスレ違い。こちらへどうぞ。
こんなCGI探してますスレッド Ver4
http://pc.2ch.net/test/read.cgi/php/1003132904/
0514名無しさん@お腹いっぱい。
01/11/08 01:40ID:sGM4BgbG負荷の高さを調べる方法とかあるんでしょうか?
0515名無しさん@お腹いっぱい。
01/11/08 02:07ID:???有る、以上。
てのも何だからちょっとマジレスすると、実はアクセスされる回数の方が
ずっと問題、チャットやFFA、箱庭には共通する所が有るだろ?
0516名無しさん@お腹いっぱい。
01/11/08 02:31ID:ydCjfg0x0517名無しさん@お腹いっぱい。
01/11/08 02:36ID:???0520
01/11/08 22:46ID:CUHvgEg0掲示板で、投稿欄に、
AAAAAAAAA・・・
など連続した長い英数字を入れられると、
ものすごい横長のページになってしまうんですけど、
改行さす方法とかありますか?
よろしくお願いします。
0521名無しさん@お腹いっぱい。
01/11/08 23:22ID:???http://www.din.or.jp/~ohzaki/perl.htm#JP_Fold
0522名無しさん@お腹いっぱい。
01/11/08 23:47ID:MrY9QatlおれはIE専用のスタイルシート使ってる。
<body style="word-break:break-all">
0523名無しさん@お腹いっぱい。
01/11/09 00:32ID:yszEReHR単純に正規表現だけでやってたんですが、単語単位で区切ってくれるようなものにしたいんです。
0524名無しさん@お腹いっぱい。
01/11/09 01:02ID:???単語単位とは?
複数の入力キーワードを入れてAND検索とかOR検索したいつーことか?
0525523
01/11/09 01:41ID:yszEReHR例えば「2ちゃんねる」と入力したら、
「2ちゃんねる」 「2」 「ちゃんねる」 「チャンネル」 「2ch」
にヒットするみたいな感じです。
0526名無しさん@お腹いっぱい。
01/11/09 01:43ID:???テストでGET使って長文送ってみたら普通に送れちゃったんだけど
なんで?
GETのパラメータはエンコード済みの状態で256文字ぐらいまで
っていう制限があったような・・・
0527名無しさん@お腹いっぱい。
01/11/09 01:47ID:Kc5UBw1Ddata.txtに
(ID,パスワード,ユーザー名,コメント)
と大量のユーザーデータが並んでいるのを以下のようにして、
($id,$pass,$user,$coment) = split(/\,/,$data);
検索フォームに入力されたキーワードを含むコメントと、そのユーザー
を探すスクリプトが下のやつですが、
if ($FORM{'coment'} ne '') {
if ($coment=~ /^([\x00-\x7F]|[\x8E\xA1-\xFE][\xA1-\xFE]|\x8F[\xA1-\xFE]{2})*$FORM{'coment'}/i) { ; } else { next; }
}
↑これを$comentと同時に$userからも検索して、どちらかが一致した
ユーザーを拾い出したいのですが、どう変えればいいのでしょうか?
0528名無しさん@お腹いっぱい。
01/11/09 02:18ID:???セキュリティ甘いかもしれんが,こんな感じか。
検索のは作ったことないんで,はずしてるかも。
$text = '2ch';
$input = '2ちゃんねる';
$input =~ s/2/(?:2|2)/g;
$input =~ s/ちゃんねる/(?:ちゃんねる|チャンネル|ch)/g;
print $text if ($text =~ m/$input/);
0529名無しさん@お腹いっぱい。
01/11/09 02:21ID:???0530名無しさん@お腹いっぱい。
01/11/09 02:39ID:???if( (コメント検索) || (ユーザー検索) ) {;} else {next;}
でいけると思う。
検索は正規表現いらんならindexやeq使った方が速い。
0532名無しさん@お腹いっぱい。
01/11/09 03:29ID:4cZEuHdr配列の内容をフォームのドロップダウンに反映させる方法は
どうやったらいいですか?
よろしくおねがいします!!
0533名無しさん@お腹いっぱい。
01/11/09 03:29ID:???それでいちばん難しいのは、入力した「2ちゃんねる」て文字列から
検索キーワード「2ちゃんねる」 「2」 「ちゃんねる」 「チャンネル」 「2ch」
を得るとこだねえ。
「2ちゃんねる」、「2」、「ちゃんねる」は、英数字と漢字の境目で区切れば出てくるかな?
「チャンネル」は、入力文字列のひらがなをカタカナに変換すればいい?
「2ch」なんてのは、変換辞書データを持たせないと無理だな。
0534名無しさん@お腹いっぱい。
01/11/09 03:32ID:???Perlなら,foreachで回して<SELECT>をprintしていく。
0535名無しさん@お腹いっぱい。
01/11/09 03:37ID:4cZEuHdrforeachをつかうんだろなーというところまではなんとなく分かってたんですが,,,,,,
本当に申し訳ないのですが!!!!
一行だけ書いてください。 おねがいします。
0536名無しさん@お腹いっぱい。
01/11/09 03:48ID:???http://tohoho.wakusei.ne.jp/wwwperl.htm
0537名無しさん@お腹いっぱい。
01/11/09 03:54ID:4cZEuHdrありがとうございました
その一行からしばらく考えてみます。
おせわになります!
0538527
01/11/09 04:46ID:Kc5UBw1D出来ました。
ありがとう♪
0539名無しさん@お腹いっぱい。
01/11/09 04:52ID:4cZEuHdrできました!
$n=0;
foreach (@color) { print qq|<OPTION VALUE=\"$_\">
@color[$n] </OPTION>\n|; $n++}
でできました。
0540名無しさん@お腹いっぱい。
01/11/09 05:14ID:nB0AXHIZqqのあとのは囲み記号。qq()やqq||,qq##みたいに好きに設定できる。
qqで"以外を囲み記号にして使った時は,"をエスケープしなくてもかまわない。
あと,@color[$n] eq $_でないかい?
0541名無しさん@お腹いっぱい。
01/11/09 05:39ID:???加えてツッコミ。
@color[$n] --> $color[$n]
スライスを理解するといいでしょう。
0542名無しさん@お腹いっぱい。
01/11/09 12:41ID:???メールフォームから送られてきた人に自動的にメールを返信するのって
出来ますでしょうか?
返信する内容は統一されてます。
0543名無しさん@お腹いっぱい。
01/11/09 12:46ID:???メールフォームからメールを送信する際に、本来のメールと別に
返信用のメールを送信すればいいだけじゃないの?
要するにメールを2個送信するようにするだけでいいように聞こえるけど。
0544初心者
01/11/09 13:11ID:???stlfbbsはここにあります。
www.blk.mmtr.or.jp/~stlf/softwares/
0545名無しさん@お腹いっぱい。
01/11/09 13:14ID:???スクリプト改造工房 Part3
http://pc.2ch.net/test/read.cgi/php/988808396/
■■■■■■■■■■■■■■■■■■■■
なお、質問するときは
1)そのスクリプトのある場所(URL必須、拡張子".txt"でアップすればなお良し)
2)どんな風に改造して欲しいのか? (完成イメージHTMLを用意すればなお良し)
を必ず明記しよう。
■■■■■■■■■■■■■■■■■■■■
0547523
01/11/09 13:53ID:MARNF8Beやっぱりどこの検索エンジンもそういう「辞書」みたいなものを使ってるんですか?
0548名無しさん@お腹いっぱい。
01/11/09 15:43ID:???でしょうな。「2ちゃんねる」から「2ch」を導出するにはそれしかない。
辞書といっても、数十個程度のキーワードを変換できればいいってことなら
Perlのハッシュ使った簡単なやつでいいんだよ。
0549名無しさん@お腹いっぱい。
01/11/09 16:02ID:7OwplJOKいきません。
下のようにURLを記録してるのですが、記録の際にチルダ(~)が
%7eとなってしまうのが原因のようです。チルダが入ってないURLな
ら重複チェック出来ます。
open (IN, ">>../data.txt");
flock (IN, 2);
print IN"${siteurl}\,";
flock (IN, 8);
close (IN);
ちなみに下がチェックの部分です。どう変えればいいのでしょう?
open(IN,"../data.txt");
eval{flock(IN,1)};
@denyurl=split(/\,/,scalar(<IN>));
close(IN);
foreach(@denyurl){
if ($siteurl =~ /\Q$_\E/i){
&fileunlock;
&error("このサイトURLは既に登録されています。");
}
}
0550名無しさん@お腹いっぱい。
01/11/09 19:06ID:???0551JUN
01/11/10 14:03ID:???よろしくお願いします。
0552名無しさん@お腹いっぱい。
01/11/10 14:08ID:???こんなCGI探してますスレッドVer4
http://pc.2ch.net/test/read.cgi?bbs=php&key=1003132904
あなたにはここがお勧め。
0554名無しさん@お腹いっぱい。
01/11/10 15:07ID:TNMdUeUB↑みたいに読み書き可能でファイルを開けば、
ファイルを空にせず書き込みができflockなどで排他制御するのも不要と聞いたのですが、
本当でしょうか?
0555名無しさん@お腹いっぱい。
01/11/10 15:36ID:???systemはデバイス叩く時に使え
0556名無しさん@お腹いっぱい。
01/11/10 15:43ID:???0557名無しさん@お腹いっぱい。
01/11/10 15:52ID:???ファイルロックするつー話と混同してるとか。
0558名無しさん@お腹いっぱい。
01/11/10 16:01ID:???何で排他不要なのかが謎だが
0559554
01/11/10 20:16ID:???これがよさそうに思ったので
openでflockで十分ですかね・・・
0560名無しさん@お腹いっぱい。
01/11/10 23:00ID:???解析したいhtmlファイルに↓このようなものを貼りつけるのですが、
<SCRIPT LANGUAGE="JavaScript">
<!-- JavaScript start
document.write("<IMG SRC='http://www.xxxxx.ne.jp/~xxx/logking/logking.cgi?"+document.referrer+"' width=1 height=1>");
// JavaScript end -->
</SCRIPT>
ウチのページはフレームを使っていてindex.html、left.html、right.htmlの内のleft.html(フレーム部分)に貼ると、リンク元がindex.htmlになってしまうのです。
かといってindex.htmlに貼ると今度は全くカウントされません。
何か良い方法は無いでしょうか?
よろしくお願いします。
ちなみにCGIは↓ここのLogKingです。
http://www2a.biglobe.ne.jp/~yama/cgi.html
0561デフォルトの名無しさん
01/11/10 23:52ID:???確かに使えれば一発ロックだけど、やってる事は同じだぞ(flockシステムコール)
0562名無しさん@お腹いっぱい。
01/11/11 01:05ID:???(1)ノンフレームのトップページ作ってそこに張れ。
そっからフレームのmain.html(旧index.html)に飛ばせ。
(2)IMGじゃなくてFRAMEにしろ。
0563名無しさん@お腹いっぱい。
01/11/11 03:02ID:???document.referrer → parent.document.referrer
ではどうか。
0564名無しさん@お腹いっぱい。
01/11/11 17:26ID:???うまくいきました!
ありがとうございます!
0565名無しさん@お腹いっぱい。
01/11/12 16:00ID:04eCHJ4tprint $query->header("text/plain")
とやるときに、日本語の文字コードを指定するにはどうするのでしょう?
0566名無しさん@お腹いっぱい。
01/11/12 16:51ID:???print "Content-Type: text/plain; charset=EUC-JP";
とでもやれば?
0567名無しさん@お腹いっぱい。
01/11/12 19:32ID:???perldoc CGI 読んどきなさい。
header(-type=>"text/plain", -charset=>"EUC-JP")
0569名無しさん@お腹いっぱい。
01/11/14 20:53ID:atd2SUxkhttp://search.yahoo.co.jp/bin/search?p=%B8%A1%BA%F7
とかいうように%B8%A1%BA%F7と英数字に変換されて検索されますね?
この文字列のことは、なんというのですか?
0570名無しさん@お腹いっぱい。
01/11/14 20:58ID:???0571名無しさん@お腹いっぱい。
01/11/14 22:56ID:???google:q
0572名無しさん@お腹いっぱい。
01/11/15 10:04ID:p1hJVRjpCGIでエンコード(%16進数)した文字(クッキー)を、
JavaScriptでデコードして読み込むと文字化けしてしまいます。
CGIでデコードした場合は問題ありません。
ちなみにCGIもHTMLもShift_jisで作っています。
よろしくお願いします。
0573名無しさん@お腹いっぱい。
01/11/15 10:28ID:???2chも馬鹿では無いのです
0574572
01/11/15 11:36ID:+pyXoXKZ2chってクッキーをエンコードしていないみたいなんですが、
問題ないんでしょうか?
postで送ったらエンコードされないみたいなんですが、
CGI側でエンコードする必要って無いんでしょうか?
問題がないのならそれでいいんですが。。。
0575名無しさん@お腹いっぱい。
01/11/15 11:47ID:???クッキーごとき化けてもたいした問題はないです。
0576名無しさん@お腹いっぱい。
01/11/15 11:54ID:???名前欄に ' って入れてみよう
0577名無しさん@お腹いっぱい。
01/11/15 12:30ID:???IEのJScriptのCookieのエンコードと、ネスケJavaScriptの
Cookieのエンコードの形式が違う。
CGIでエンコードしたCookieはネスケと同じ形式なので、
IEではデコード出来ない。
エンコードしてないのをCookieに保存しておけば、とりあえず
誤魔化せるので(>>576さんの書いた通り問題があるが)
エンコードしていない。
2ちゃんの場合マシンのスペックより回線が問題と聞いたことが
あるような気がするので、>>575さんのような事は考えてないと
思う。
0578'
01/11/15 13:10ID:AsoC02dq0579574
01/11/15 13:39ID:/Cr0YXak'←これ名前欄に入れるとレイアウトえらいことになりますね。
クッキー食わす前に'を大文字の’に変えると回避できるみたいですが、、、
ほかにやばい文字ってありますか?
>>577さん
MSのJScriptとCGIの互換性の問題ですか。
初期の頃のJavaScriptからずっとですよね。
MSが変な解釈で実装したからみたいですね。
作る側の人間はどうしようもないということでしょうか。
0580名無しさん@お腹いっぱい。
01/11/15 17:56ID:AyXGT3ylopen (ANSWER, ">>namae.txt");
print ANSWER "${name}\n";
close (ANSWER);
だとnamae.txtには
1番目
2番目
3番目
・
・
という順序で書き込まれますよね。
これを逆に
・
・
3番目
2番目
1番目
と新しい書き込み順にするにはどうしたらいいのでしょうか?
0581名無しさん@お腹いっぱい。
01/11/15 18:03ID:???何度も出てきている質問なので過去ログを漁ってみましょう。
一般的には、追記モードでファイルの最後に書き足してから、
読み出す時にreverseをかける人が多いようです。
0582名無しさん@お腹いっぱい。
01/11/15 23:20ID:SZ/asDCL0583名無しさん@お腹いっぱい。
01/11/15 23:24ID:???0584名無しさん@お腹いっぱい。
01/11/15 23:37ID:SZ/asDCLこれってperlじゃなくて実行形式にコンパイルして動かしてるんですよね?
私の環境ではWindowsでActivePerlを使って掲示板を動かしてるんですが
perlじゃ半角カタカタは無理なんでしょうか?
0585名無しさん@お腹いっぱい。
01/11/16 00:09ID:???掲示板探してるだけならスレ違い。
0586名無しさん@お腹いっぱい。
01/11/16 00:21ID:Br89H9t8今掲示板を改造してて半角カタカナも通したいんです
どんな方法か教えてください
0587580
01/11/16 00:22ID:Y2uolE5Hreverseでうまくいきました。ありがとー。
0588名無しさん@お腹いっぱい。
01/11/16 00:51ID:LdLT89bd入力も出力も内部も、ぜんぶ、shift-JIS にすれば解決するんだとおもった。
細かいことは、忘れたなぁ
0589名無しさん@お腹いっぱい。
01/11/16 00:53ID:???半角カナを使うと化けるのは,実際とは別の文字コードだと誤認識しやすくなるため。
コード変換部分を細かく作るか,決め打ちするか,まったく変換しないかすればOK。
ふつうの掲示板なら,convert(\$line, 'euc','sjis'); みたいに決め打ちでいいと思う。
もっとふつうの掲示板なら,無変換でだいじょぶ。
詳しいことはこっちを参照
ミケネコの 文字コードの部屋
http://www.mikeneko.ne.jp/~lab/kcode/index.html
Perlメモ 漢字コードを調べる
http://www.din.or.jp/~ohzaki/perl.htm#JP_Code
0590名無しさん@お腹いっぱい。
01/11/16 01:05ID:Br89H9t8今ソースを見てみたらJISに変換しているようでした
コード変換の部分を変更していろいろ試してみます
0591名無しさん@お腹いっぱい。
01/11/16 01:09ID:???0592名無しさん@お腹いっぱい。
01/11/16 01:15ID:LdLT89bdだから、変換するから、混乱するのよ。
まずは、変換なんか、ぜんぜんしないで、ぜーんぶ、Shift-JIS にしてみるのをオススメしたい。
0593名無しさん@お腹いっぱい。
01/11/16 01:17ID:LdLT89bd何が言いたいの?
0594569
01/11/16 04:19ID:3Uk2GDFRありがとうございました。
0595名無しさん@お腹いっぱい。
01/11/16 16:10ID:pmjYcpZBインストール作業が不要な(できればSQLが使える)DBモジュールというのはあるのでしょうか?
0596名無しさん@お腹いっぱい。
01/11/16 16:42ID:???■ このスレッドは過去ログ倉庫に格納されています