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
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:???0597595
01/11/16 17:11ID:pmjYcpZBどうも申し訳ありません。
当方が利用しているのは所詮安いレンタルサーバスペースなので、
MySQLやらOracleやらのデータベースは導入されていません。
今のところは「CSVファイルを配列に格納してgrepやifで条件に合わせて抽出」
といった手法で運用しているんですが、
手順も多いですしあまりカッコよくない手法と思ったので、SQLで一発抽出を考えたわけです。
極端な話、格納データはCSVのままでも構いません。
とにかくSQLなどで一発抽出する方法を探しているところです。
で、色々と探していたところこんなページを見つけました。
http://member.nifty.ne.jp/hippo2000/perltips/DBD/csv.htm
インストールが必要となっていますが、
これってやっぱりレンタルサーバには入れちゃマズいですよね・・・。
0598名無しさん@お腹いっぱい。
01/11/16 17:19ID:???jcode.plだってインストールしなきゃ使えないんだぞ?
0599596
01/11/16 17:39ID:???http://www.vector.co.jp/soft/unix/business/se182749.html
↑使えば良いんでない?
0600名無しさん@お腹いっぱい。
01/11/16 17:40ID:67cmqQS3掲示板などで設定項目を増やすのってどうやればいいんでしょうか。
年齢とか、居住地をプルダウンで選ぶやつです・・・
今はkent webのプチボードをちょこちょこ改造したのを使ってます。
とりあえず同じくkentwebのfantasy boardには居住地選択の
項目があったので、ダウンロードして見よう見まねで
関連部分をコピペしたり修正したりして
なんとか500エラーにもならず、ログにも残るようには出来たんですが
どうしても、記事表示部分で「北海道」とかではなく数字が出ます。
ログにも、地名ではなく数字が残ります。
2つのCGI見比べて、どこか見落としはないかとか調べてるんですが
分かりません・・・なぜ、数字になってしまうんでしょうか。
ちなみにちょっと改造が出来るくらいで、プログラムの知識はありません。
0601600
01/11/16 17:41ID:67cmqQS3北海道なら0、青森が2、秋田が3とかそんな感じです。
0602名無しさん@お腹いっぱい。
01/11/16 18:00ID:???@Place = ('北海道', '???', '青森', '秋田',
・・・・・);
・
・
・
print $Place[$place_data];
0603名無しさん@お腹いっぱい。
01/11/16 18:35ID:I2tSH3T6Javascriptの質問スレにも書いたのですが、
もしわかる方がいましたら教えて下さい。
入力フォームから入力したテキストの値を、別ウインドウのテーブルに
出力する方法(コード)を教えて下さい。
別ウインドウをopenしたあと、openしたウインドウのテーブルのセルの指定の仕方が
わからないんです。
よろしくお願いします
例をあげると
�@"入力"というウインドウに「住所」「氏名」「年齢」という入力フォームがある。
�A登録ボタンを押す。
�B"住所録"というウインドウのテーブルに出力される。
テーブルは下記のような感じで、
登録する度に1レコードずつ追加されるようにしたいのです。
住所|氏名|年齢|
−−−−−−−−−
| | |
−−−−−−−−−
| | |
−−−−−−−−−
0604名無しさん@お腹いっぱい。
01/11/16 18:39ID:???付けるより取る方が簡単だと思うよ。
もし勉強してるならまともな本でも読むとか
0605名無しさん@お腹いっぱい。
01/11/16 18:45ID:???意味不明
0606名無しさん@お腹いっぱい。
01/11/16 19:36ID:???こういう場で機種依存文字を使う時点でダメ。
0607名無しさん@お腹いっぱい。
01/11/16 19:52ID:???素人さんには難しいですね、話に入れなくてごめんなさいね。
>>606
物知りお猿さんですね (^_^;) いんたねっと上級者さんですか?
でも俺も教えない w
0608名無しさん@お腹いっぱい。
01/11/16 20:00ID:???0609名無しさん@お腹いっぱい。
01/11/16 20:09ID:+qGZIDex同一スカラーの個数のカウントはどうやるのでしょうか?
0610名無しさん@お腹いっぱい。
01/11/16 20:14ID:???0611名無しさん@お腹いっぱい。
01/11/16 22:12ID:???やり方がわかりません。
教えてください。。。
gzipのソース
http://www.ibport.co.jp/~yui/cgiwork/tech/src/gzip_cgi.txt
0612名無しさん@お腹いっぱい。
01/11/16 22:35ID:???説明読んでも分からんならあきらめろ。
0613名無しさん@お腹いっぱい。
01/11/16 22:53ID:???上のスクリプトを設置しても白い画面しかでないのよ。。。。
どうすればいいんでしょ?
■ このスレッドは過去ログ倉庫に格納されています