[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 02/23 15:56 / Filesize : 341 KB / Number-of Response : 991
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

★三 【 スクリプト改造工房 PART 8 】 ★三



1 名前:sage mailto:sage [04/02/23 17:36 ID:???]
#================================
# スレッドの説明
#================================

「スクリプトを改造したいけどやりかたわかんないよー」という人がいましたら
ここで聞いてください。ひょっとしたらアドバイス出来るかもしれません。

質問するときは以下の点に注意して書いて下さい

(1) そのスクリプトの内容と置いてある場所を明記する (txtファイルでUPすればなお良い)
(2) どんな風に改造して欲しいのか? (完成イメージHTMLを用意すればなお良し)
(3) 出来るだけ詳しく書くこと。少しは自分で考えること。できれば御礼も言ったほうが良い

※答えてくれないからといって逆ギレする厨はお断り

前スレ pc2.2ch.net/test/read.cgi/php/1063780103/

518 名前:nobodyさん mailto:宜しくお願いします [04/11/04 08:51:40 ID:???]
おはようございます。

ttp://haiiro.info/up/file/1469.txt

このCGIで NGワードを設定出来るようにしたいのですが
可能でしょうか?
宜しくお願いします。

519 名前:nobodyさん mailto:sage [04/11/04 12:02:05 ID:???]
>>518
変数にNGワードが入ってたらエラーで弾けばよかろ

520 名前:518 [04/11/04 13:11:29 ID:/4YiSBg1]
>>519
スミマセン。詳しくお教えいただけないでしょうか?

521 名前:nobodyさん mailto:sage [04/11/04 17:36:00 ID:???]
>>520
これ以上何を聞きたいのだろうか…
丸投げしたいのならスレ違い。
自分で何とかしたいのなら、どこがどう解らないのかを書く。

【 スクリプト改造依頼スレ 】(丸投げ) part2
pc5.2ch.net/test/read.cgi/php/1092304968/

522 名前:nobodyさん mailto:sage [04/11/06 21:18:18 ID:???]
178 Name_Not_Found [sage] 04/11/06 16:26:41 ID:???
【種別】 ダイスチャット
【言語】 perl
【備考】 ttp://www.big.or.jp/~t-shun/trpg/trpg_cgi/dicechat/dchat03.html
      これのようにダイスを振るフォームがあるのではなく、発言欄にコマンドを入れるようなもの。

正確には、COMCHAT-EX(KENT-WEB)に追記することによって
実装できるダイス用の構文が欲しいかも。


179 Name_Not_Found [sage] New! 04/11/06 19:49:11 ID:???
それは改造になるんじゃ?

523 名前:nobodyさん mailto:sage [04/11/06 21:22:07 ID:???]
>>522
>>521

1つ上のレスぐらい読めや

524 名前:nobodyさん mailto:sage [04/11/17 22:33:22 ID:???]
【.  CGI名  .】LIGHT CHAT
【配布先URL】ttp://happy.honesto.net/cgi/download/lchat.html
【. 置き場所 .】ttp://botejako.com/zony/chat.txt
         自分で多少改造したものです。
【ヘルプ内容】
チャットの発言が表示される上の部分に表示される参加者名を
左から発言・入室したのが早い順に更新・発言した際に並び替えて
表示させるようにしたいのですがどうしてもできません。
今の状態だと、入室した順にしかなっていないようです。
参加者リスト(present.dat)の先頭に毎回追加すればいいのだと思うのですが、
push〜〜をunshift〜〜に変えてみてもうまくいきません。
それが見当違いのことをしてるかどうかもわかりません。

何かヒントをいただけないでしょうか、お願いします。

525 名前:nobodyさん [04/11/17 22:35:28 ID:A5o7/dm+]
書き込みないようなのでageさせてもらいますです。

526 名前:nobodyさん mailto:sage [04/11/22 19:28:58 ID:???]
しかし回答出来る人間は居なかった


      − 完( ´∀`) −








527 名前:nobodyさん mailto:sage [04/11/22 22:20:50 ID:???]
いやぁ、つまらん改造だから、スクを見る気になれないだけ。
有料なら請け負うが…

528 名前:nobodyさん mailto:sage [04/11/23 00:04:37 ID:???]
一匹釣れたみたいよ>>526

529 名前:nobodyさん mailto:sage [04/11/23 02:43:22 ID:???]
527 :nobodyさん sage :04/11/22 22:20:50 ID:???
いやぁ、つまらん改造だから、スクを見る気になれないだけ。
有料なら請け負うが…

527 :nobodyさん sage :04/11/22 22:20:50 ID:???
いやぁ、つまらん改造だから、スクを見る気になれないだけ。
有料なら請け負うが…

527 :nobodyさん sage :04/11/22 22:20:50 ID:???
いやぁ、つまらん改造だから、スクを見る気になれないだけ。
有料なら請け負うが…

527 :nobodyさん sage :04/11/22 22:20:50 ID:???
いやぁ、つまらん改造だから、スクを見る気になれないだけ。
有料なら請け負うが…

530 名前:nobodyさん mailto:sage [04/11/24 05:44:42 ID:???]
527 :nobodyさん sage :04/11/22 22:20:50 ID:???
いやん、つまらん改造ですので、スクを見る気になれませんわ。
私を満足させられる対価を頂けますなら請け負いますけれど…

531 名前:nobodyさん mailto:sage [04/11/26 17:09:14 ID:???]
【CGI名】ランキングSP
【配布先URL】hp.bird.to/info/ranking.html
【依頼内容】スコアと表示されてる数字の間に.とかを入れる(9999を9.999と表示)ようにしたいのですが、どのように改造すればいいでしょうか?
アドバイスお願いします。


532 名前:nobodyさん mailto:sage [04/11/30 18:53:24 ID:???]
ttp://www.rescue.ne.jp/cgi/database/

↑ここのサイトのデータベース改造してます。
regist.cgi、search.cgiは変更しましたがエラーになったのでデフォルト。
regist.htmlのみ変更してます。

複数登録したいのでregist.htmlのリストボックスをチェックボックスに改造中なのですが、
チェックボックスに変更した後、WEB上で動作確認した所
チェックボックスで選択した項目で最後の物のみ反映されて
他の項目は反映されません。

【例】

<input type="checkbox" name="PREF" value="1" border="0">1  
<input type="checkbox" name="PREF" value="2" border="0">2 
<input type="checkbox" name="PREF" value="3" border="0">3 
<input type="checkbox" name="PREF" value="4" border="0">4
<input type="checkbox" name="PREF" value="5" border="0">5

Aに対して2つの項目を登録するとして

1と4を選択すると4のみ、2と3を選択すると3のみ
と言った状況です。

regist.cgi、search.cgiもいじらなくてはいけない事は分かるんですが、
何処をどうやって良いのか分かりません_| ̄|○

誰か、教えてください。。。

長文、すいませんでした。

533 名前:nobodyさん mailto:sage [04/12/01 04:25:16 ID:???]
こっちに貼っておけば良かったのかな?
www.google.co.jp/search?as_q=perl+%E8%A4%87%E6%95%B0%E9%81%B8%E6%8A%9E&num=100&hl=ja&c2coff=1&btnG=Google+%E6%A4%9C%E7%B4%A2

534 名前:nobodyさん [04/12/04 20:50:36 ID:8LV5OOZo]
配布されているチャットを改造したいです。

インフォシークなので直リンができないので、中継地点を作ってます。

keizibann.hp.infoseek.co.jp/tyatto/tyuukei.html
↑から入ったチャットの、一番上あたりに、
 参加者の名前を表示させるにはどうすればいいですか?

スクリプトはこれ↓です。
keizibann.hp.infoseek.co.jp/a.txt

よろしくお願いします。




535 名前:nobodyさん mailto:sage [04/12/04 21:24:16 ID:???]
help.www.infoseek.co.jp/isweb/?id=8
通報済み

536 名前:nobodyさん mailto:sage [04/12/05 06:13:44 ID:???]
>>534
知恵袋で質問した人だよね。
漏れは丸投げスレに誘導したんだが、工房スレに来たということは自分で改造できるんだね。

じゃ、改造の流れを説明するぞ。

まずKENTの所(www.kent-web.com/)に行ってcomchatをダウンロードして来い。
comchat.cgiの在室者処理の所をパクれ。
変数名をK's Chat Ligthにあうように弄れ。

以上。



537 名前:nobodyさん mailto:sage [04/12/05 06:14:55 ID:???]
>以上。

これは余計だなお

538 名前:nobodyさん [04/12/05 16:51:08 ID:+UKjgSSz]
ここじゃなかったのか、、、。
ついでに寄ったから間違えた。。。

でもありがとう。がんばります。

539 名前:nobodyさん mailto:sage [04/12/12 03:38:36 ID:???]
imgboard.cgiを利用中です。
ttp://www.big.or.jp/~talk/t-club/soft/mini_r6/index.cgi

これに2ちゃんと同じsage機能をつけたいのですが上手くいきません。

540 名前:nobodyさん mailto:sage [04/12/12 03:39:20 ID:???]
3341行目からの
----------------------------------------------------
if($PM{'res_go_up'} == 1){
undef $tp_match_flag;
local($tp_loop_counter)=0;
foreach $tmp_parent(@NEW_BLOODS){
# 3スレッドまで上へ持って行く
# それ以上にすると負荷が上がるのでやめる
last if($tp_loop_counter >= 3);
if(($tmp_parent eq "$9")||($tmp_parent eq "$11")){
$tp_match_flag = 1;
last;# 検出したら抜ける
}
$tp_loop_counter++;
}
if($tp_match_flag == 1){
push(@GOUP_MESSAGE, $_);
$all_message++;
}else{
push(@MESSAGE, $_);
$all_message++;
}
}else{
push(@MESSAGE, $_);
$all_message++;
}
----------------------------------------------------

541 名前:nobodyさん mailto:sage [04/12/12 03:40:26 ID:???]
を下のように書き換えました

----------------------------------------------------
if($email == $sage){ #### $sage=sageというのを作った
push(@MESSAGE, $_);
$all_message++;
}
else{
undef $tp_match_flag;
local($tp_loop_counter)=0;
foreach $tmp_parent(@NEW_BLOODS){
# 3スレッドまで上へ持って行く
# それ以上にすると負荷が上がるのでやめる
last if($tp_loop_counter >= 3);
if(($tmp_parent eq "$9")||($tmp_parent eq "$11")){
$tp_match_flag = 1;
last;# 検出したら抜ける
}
$tp_loop_counter++;
}
if($tp_match_flag == 1){
push(@GOUP_MESSAGE, $_);
$all_message++;
}else{
push(@MESSAGE, $_);
$all_message++;
}
}
----------------------------------------------------


542 名前:nobodyさん mailto:sage [04/12/12 04:12:51 ID:???]
そうした所レスのメール欄にsageを入れようが入れまいが
書き込むと上に上がらなくなってしまいました。
試しに変更した
if($email == $sage)

if($PM{'res_go_up'} == 0)
にしてレスを入れたらちゃんと上がりました。

if($email == $sage)
が間違えているのでしょうか?
どなたご教授頂けないでしょうか?
長くなってすみません。

543 名前:nobodyさん mailto:sage [04/12/12 06:05:55 ID:???]
質問を全部読んでないが(^^;
== は数値の比較
eq が文字列の比較

544 名前:539 mailto:sage [04/12/12 08:03:13 ID:???]
>>543
ありがとうございます。
if($email eq $sage)が正しいようですね。
しかし今度は下がらなくなった。_| ̄|○

545 名前:nobodyさん [04/12/12 17:10:46 ID:cJqt4xtP]
参考:www.kent-web.com/bbs/epad/epad.cgi
依頼:携帯から投稿された絵文字が記録されているログを開き
$text = &emoji($text);
の様に絵文字変換ルーチンを通せば
携帯3キャリア相互変換、PC表示ができる様にさせたい。
&emoji; の部分をお願い致します。


546 名前:nobodyさん mailto:sage [04/12/12 18:53:39 ID:???]
>>545
まず、>>1の(3)の真ん中を音読してもらおうか?



547 名前:nobodyさん [04/12/14 09:19:31 ID:Q99fVzSY]
www.kit.hi-ho.ne.jp/t-sonoda/index.shtml
こちらで配布している「シンプル日記」の改造をお願いします
(作者さんが多忙のせいか、更新放置されているので・・・)

改造項目は日付の横に任意の画像アイコン(セレクトタグで)を載せたいです
自分で改造できなくて情けない・・・
宜しくお願いします

548 名前:nobodyさん mailto:sage [04/12/14 10:10:33 ID:???]
>>547
スレ違い

■ 自分で改造できない場合には
【 スクリプト改造依頼スレ 】(丸投げ) part2
pc5.2ch.net/test/read.cgi/php/1092304968/2(テンプレ)

549 名前:nobodyさん mailto:sage [04/12/14 11:04:42 ID:???]
>>548
ありがとう、移動します
スレ汚してごめんなさい

550 名前:6 mailto:sage [05/01/07 23:40:43 ID:???]
【.  CGI名  .】 電光! v.5.20
【配布先URL】 cgiscriptmarket.com/script.html
【. 置き場所 .】 www36.tok2.com/home2/boboburajiru/xxx/data/bobo_20050107233603.lzh
【ヘルプ内容】 
途中までやりましたがココからがわかりません。
・枠がどうしても青色。黒色に変えたい。枠の太さも1pxに。
・日付に「'」が入ってしまう。
・1 名前 : 内容  5/06 12:40 とひとつのformで表示したい。
・見かけ上だけ消してるだけなので要らないソースは消してしまいたいがどれを消していいかわからない。

お願いします。

551 名前:nobodyさん mailto:sage [05/01/07 23:53:58 ID:???]
>>550
マルチ乙!

552 名前:6 mailto:sage [05/01/07 23:59:44 ID:???]
誘導されてきました。。
スレ違いですか?

553 名前:nobodyさん mailto:sage [05/01/08 00:55:46 ID:???]
>>552
丸投げスレとperlスレみたいにあちこち書いてるだろ。
他のスレに書くなら取り消すなり移動する旨ぐらい書け。
だからマルチと言われる。
それに自分でいじってるんだろ?
だからここへ誘導されたんだ。

↓自分がどちらなのかよく考えろ。

■ 自分で改造できない場合には
【 スクリプト改造依頼スレ 】(丸投げ) part3
pc5.2ch.net/test/read.cgi/php/1105046286/2(テンプレ)

■ 自分で改造するアドバイスが欲しい場合には
★三 【 スクリプト改造工房 PART 8 】 ★三
pc5.2ch.net/test/read.cgi/php/1077525387/79(テンプレ)

554 名前:6 mailto:sage [05/01/08 16:21:33 ID:???]
こっちが★三 【 スクリプト改造工房 PART 8 】 ★三 で
・枠がどうしても青色。黒色に変えたい。枠の太さも1pxに。
・日付に「'」が入ってしまう。
こっちが★三 【 スクリプト改造工房 PART 8 】 ★三 です。
見かけ上だけ消してるだけなので要らないソースは消してしまいたいがどれを消していいかわからない。 rmで表示したい。
・1 名前 : 内容  5/06 12:40 とひとつのformで表示したい。

555 名前:nobodyさん mailto:sage [05/01/14 22:12:47 ID:???]
【.  CGI名  .】 WwwSearch Ver3.15 - 検索フォーム
【配布先URL】 ttp://www.tohoho-web.com/wwwsoft.htm
【ヘルプ内容】 検索結果を、5件ごとや10件ごとに表示させるようにしたいです
自分がいじった部分のソースを貼ります

sub search1 {
  local($dir) = $_[0];
  local(@filelist, $file, $filename);
  opendir(DIR, $dir);
  @filelist = readdir(DIR);
  closedir(DIR);
  $begin = $FORM{'page'} * $hyouji;
  $end = $bigin + $hyouji;
  if($end > @filelist) {
    $end = @filelist;
  }

(続く)



556 名前:555 mailto:sage [05/01/14 22:13:34 ID:???]
    #foreach $file (@filelist) {
    for ($a = $bigin; $a < $end; ++$a) {
    if ($file eq ".") { next; }
    if ($file eq "..") { next; }
    $filename = "$dir/$file";
    if (-d $filename) {
      if ($recursive_flag) {
        &search1($filename);
      }
    } else {
    &search2($filename, $dir);
    }
  }
  if ($end < @filelist) {
  $nextpage = $FORM{'page'} + 1;
  print "<a href=\"$ENV{'SCRIPT_NAME'}?page=$nextpage\">次へ</a>\n";
  }

# }
}





557 名前:555 mailto:sage [05/01/14 22:18:04 ID:???]
foreachのかわりにforでまわしてみたんですが
結果は検索が一件もされず「次へ」のみが表示されてしまいます
アドバイス、解決法よろしくお願いします


558 名前:nobodyさん mailto:sage [05/01/15 19:29:07 ID:???]
>>555
久しぶりに改造工房にお客が来たのに放置されているなぁ〜

sub search1の@filelistだが、お前はこの配列に検索に引っかかったものが入っていると思っているだろ?
残念。
@filelistには対象ディレクトリの中にある全てのファイルが格納されている。
試しに
closedir(DIR);
のあとに
errexit("@filelist");
って入れてごらんよ。

漏れならsub search1とsub search2を大改造しる。
opendir(DIR, $dir);
で、指定してた拡張子のファイルのみを
@filelistに入れていく。

559 名前:555 mailto:sage [05/01/15 23:08:47 ID:???]
>558
指摘、アドバイスありがとうございます
となるとforループ自体がおかしいことになりますね
なんだか煮詰まってテンパってきました
もちょっとガンガってみますです…

560 名前:nobodyさん mailto:sage [05/01/16 03:38:30 ID:???]
KENTのBBSのソースでも眺めれ。
たいていは件数によって次ページ送りの機能がついているから。

561 名前:nobodyさん [05/01/17 11:01:28 ID:gvEGsU/w]
丸投げの方で放置されそうな勢いなので、自分で努力しつつこちらで質問します。

【.  CGI名  .】 HiLink Type-B
【配布先URL】 ttp://www.e-hws.net/cgi_index.html
簡易表示の方法をちょっと変えたいです。新着順とランキング順しかソート方法が無いのですが、
これをタイトル(サイト名)で50音表示できるように変更したいです。
利用方法としては「ランキング表示」リンクボタン(?)を「50音表示」とし、クリックするとで50音順で
並ぶというものです。
表示方法なんかを改造してるので、行数が合わないと思われるので、名前で場所を伝えます。

sub mainの「表示データ作成」にある「# ランキング表示の場合、ソートする」をどうにかしたら良いんですよね?
$ititleと$jtitleがサイト名のようです。
さらに、その下の「if( $iclicknum < $jclicknum ){」の部分を書き換えれば良いとは思うのですが…
素人ながらに「if( $ititle < $jtitle ){」ってしてみましたが、案の定変化無しです。
どのようにしたら50音順に並べる事が可能ですか?

宜しくお願いします。


562 名前:nobodyさん mailto:sage [05/01/17 18:56:00 ID:???]
>>561
規約は読んだのか?
再配布禁止&&使用者はメールで届出の義務あり

563 名前:555 mailto:sage [05/01/18 19:32:37 ID:???]
>560
眺めて悩んでいたらなんかわかってきました
558さん560さん、アドバイスありがとうございました

564 名前:nobodyさん mailto:sage [05/01/18 20:55:07 ID:???]
>>562
このスレは改造工房であり、改造済みのスクリプトを手渡すわけではないので再配布禁止には当たらないかと…
それにまだ改造したものを設置してないので、メールはまだしなくてもよいかと…

要するにヒントだけ与えれば質問者が何とかするって言うスレなので問題はないかと…

>>561
今ちょっと忙しいので、そのうちスクを見てみるわ。

565 名前:nobodyさん mailto:sage [05/01/19 05:16:19 ID:???]
>>561
惜しい。
Perlは数値か文字列かで比較演算子が異なる。
< の代わりに gt を使えば丁度だな。

566 名前:561 [05/01/19 10:15:04 ID:sYVj0TcQ]
>>564 >>565
フォロー&返答ありがとうございます。

ばっちり出来ました。
文字列は数字じゃないから数字の演算式記号は使えないって事で覚えててOKでしょうか?

アドバイスありがとうございました!



567 名前:730 mailto:sage [05/01/23 11:37:56 ID:???]
他スレから誘導されて来ました。

会員制掲示板のPerlCGIスクリプトです。普通の掲示板(KENTさんの書籍のスクリプトを参考に、過去ログ
作成機能と検索機能を削除した)に、IP制限とパス制を組み合わせ改造しました。
✓で特定のIP(@allow)だったら認証画面(&admin)を出し、パスが合ったら掲示板を表示させる(&bbs)。
IPおよびパスが合わなければエラーを返す、・・・つもりでした。しかし下記のスクリプトでは認証画面は
表示しますが、パスを入力しても認証画面、パスミスでも認証画面になるという状態で、
どうにも煮詰まってしまいました。どこがおかしいのかご教授下さい。これでもIP制限は動作しています。

スクリプトはここにアップしました。該当部分だけ。
up.isp.2ch.net/up/af9977328ccc.txt


568 名前:730 mailto:sage [05/01/23 12:14:51 ID:???]
ついでにお聞きします。

【スクリプト名】
Web拍手(公式HPから配布版DL。2004年10月。)

【CGIソース】
kaiseki.cgiだけ。
up.isp.2ch.net/up/18cf046e2758.txt

【改造した内容】
●過去15日分のデータを保存し表示するのを、31日分にする。(crap.cgiとkaiseki.cgi)
●アクセス解析機能を追加し、拍手した人のホスト名をaccess.datに保存する。(crap.cgi)
●このスクリプトへアクセスしたときの画面にはaccess.datへのリンクを張る。
●DLしたままのスクリプトでは、解析グラフのタグがぐちゃぐちゃだったので
 そこも変更。時間ごとのグラフも縦表示から横表示に変更し、31日表示を
 しやすくした。
●グラフの画像も横表示に対応させた。
[現在困っていること]
上記改造を加えたあと先週までは問題なく動作していたのですが、今日アクセス
してみたらスクリプトエラーが発生していました。拍手機能は動作しています。
kaiseki.cgiは、上記改造後何も手を加えていないので普通は起こりえないエラーです。
ただ原因として、ローカルに保存していたこのスクリプト(アプロダに挙げたもの)が
間違っていて、サーバーで動作していたのはサーバー側で直接書きなおしたからでミラーリング
していなかった。それをFTPソフトの誤動作で全ファイルを送信したために、動かないローカルの
スクリプトで更新されてしまった・・・というのが考えられます。
#FTPソフトのログにはこのファイルを送信したという記録はないのですが、一昨日以前のログが
#消えているのでわからない。

そこでUPしたこのスクリプトを眺めてみたのですが、どこがおかしいのかわかりません。
pcheck.cgi(Perlスクリプト文法チェッカ)ではsyntax errorの発生はありませんでした。
なにか間違っているところがありましたら教えてください。


569 名前:nobodyさん mailto:sage [05/01/23 13:17:49 ID:???]
>>567-568
アップ先が表示できません


570 名前:567 mailto:sage [05/01/23 16:52:48 ID:???]
ありゃ。失礼しました。申し訳ないです(大汗)
UPしなおしました。
>>567
yellow.ribbon.to/~mintplace/a.txt
>>568
yellow.ribbon.to/~mintplace/kaiseki.txt

571 名前:555 [05/01/23 22:33:51 ID:a5mA126v]
再びすみません

【.  CGI名  .】 WwwSearch Ver3.15 - 検索フォーム
【配布先URL】 ttp://www.tohoho-web.com/wwwsoft.htm
【ヘルプ内容】 検索結果を、「次へ」ボタンを押して、次の件をひょうじさせたいです

5件ごとや10件ごとの表示は最初だけは表示できるようになりました
「次へ」ボタンを押して、次の件をひょうじさせたいのですが
うまくいきません
この文を最後に追加しました

print "<form method=\"POST\" action=\"$script?page=$page&word=$word\">\n";
print "<input type=\"submit\" value=\"次へ\">";
print "</form>";

「次へ」ボタンを押しても検索結果が出てきません
何かたりないのでしょうか
かなり悩みましたが答えが見つかりません
ヒント、アドバイスお願いします

572 名前:nobodyさん mailto:sage [05/01/23 22:37:48 ID:???]
書き忘れました

>571の文の前に

$page=$FORM{'page'};
$word=$FORM{'word'};

を実行しています

$scriptには自身のCGIファイルの名前が入ってます

573 名前:nobodyさん mailto:sage [05/01/24 00:23:35 ID:???]
>>572
掲示板スクリプトを拾って読んでみたら応用できるんじゃない?

574 名前:nobodyさん mailto:sage [05/01/24 00:33:32 ID:???]
>>572
かなり勘で答えるけど、
<form method=\"POST\" action=\"$script?page=$page&word=$word\">
これをこんな風にしたらだめ?
<form method=\"POST\" action=\"$script¥">
<input type=\"hidden\" name=\"page\" value=\"$page\">
<input type=\"hidden\" name=\"word\" value=\"$word\">

それと、$pageが、ボタンを押したら変化する(=数字が増えたり減ったり)
ようになってますか?
(FORMのほうの数字が固定だったら、最初のページしか動かない。)

575 名前:572 mailto:sage [05/01/24 01:12:24 ID:???]
>573
掲示板スクリプト眺めてるんですが
一向にらちがあかないのです;;

>574
ありがとうございます
試してみましたが、結果はやっぱり同じでした
「次へ」を表示するとこまではいいんですが
押しても、検索フォームだけ出て結果は出ないのです

ソースも晒したほうがいいでしょうか?

576 名前:572 mailto:sage [05/01/24 01:16:02 ID:???]
>574
うっかりしてました
この文の直前に

$nextpage = $FORM{'page'} + 1;

をしています

print "<input type=\"hidden\" name=\"page\" value=\"$nextpage\">\n";

にしても結果変わらずです



577 名前:nobodyさん mailto:sage [05/01/24 01:33:30 ID:???]
そんな送信する側の記述を書かれたってわかるわけない。
page=$pageとword=$wordという値を受け取ってどういう処理をさせてる?

578 名前:572 mailto:sage [05/01/24 09:52:41 ID:???]
>577
sub readform {
 if ($ENV{'REQUEST_METHOD'} eq "POST") {
  read(STDIN, $query_string, $ENV{'CONTENT_LENGTH'});
 } else {
  $query_string = $ENV{'QUERY_STRING'};
 }
 @a = split(/&/, $query_string);
 foreach $x (@a) {
  ($name, $value) = split(/=/, $x);
  $value =~ tr/+/ /;
  $value =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg;
  $FORM{$name} = $value;
}
}

の後

$page = $in{'page'};
$word = $in{'word'};

を実行してます
(続く)

579 名前:572 mailto:sage [05/01/24 10:03:39 ID:???]
(続き)
 if ($word =~ /[\x80-\xff]/) {
  # 日本語が含まれているフラグ
  $jflag = 1;# 日本語が含まれている
  # 一度EUCに変換する
  &jcode'convert(*word, "euc");
  # 全角空白を半角空白に置換する(EUCの空白は#A1A1)
  $word =~ s/([\x80-\xff][\x80-\xff]|[\x00-\x7f])/($1 eq "\xa1\xa1") ? " " : $1/eg;
  # SJISモードであればSJISに変換する
  if ($kcode_file eq "sjis") {
   &jcode'convert(*word, "sjis");
  }
 }

sub search1の中から抜粋
 if (defined($FORM{'WORD'})) {
  # メタ文字を無効化する
  if (!$jflag) {
   $word =~ s/([\+\*\.\?\^\$\[\-\]\|\(\)\\])/\\$1/g;
  }
  # 検索語を分割する
  @words = split(/ +/, $word);
  # 検索する
  print "<dl>\n";
  @dirs = split(/ +/, $target_dir);
  foreach $dir (@dirs) {
   &search1($dir);
  }


580 名前:572 mailto:sage [05/01/24 10:07:38 ID:???]
$pageは>576にも書いたのですが$nextpageにしてますので
今は使ってません
最初の一回目は5件表示されるのに
「次へ」を押すと検索フォームだけ出て、結果が出ないのがはがゆくてなりません
これで参考になりますでしょうか?

581 名前:nobodyさん [05/01/24 10:18:02 ID:f8wXJteD]
>>580
Perlってデバッガ無いの?
PHPだとZend入れてればIEの右くりメニューからデバッガ起動するよ。

582 名前:572 mailto:sage [05/01/24 10:28:28 ID:???]
一番重要なトコ忘れてました
sub search2の中から抜粋
 $bigin = $FORM{'page'} * $hyouji;
 $end = $bigin + $hyouji;
 if($end > @filelist) {
  $end = @filelist;
 }
中略
if ($bigin <= $a) {
 if ($a < $end) {
  $h_k++;
  print "<dt>■ <a href=\"$target\" target=\"out\">";
  $title =~ s/<[^>]*(>|$)//g;
  $title =~ s/[\r\n]+//g;
  &jcode'convert(*title, $kcode_cgi);
  if ($title eq "") {
   $title = $target;
  }
  print "$title</a>\n";
  if ($print_filename) {
   print "( <a href=\"$target\" target=out>";
   $target =~ s/$tdir\/?//;
   print "$target</a> )\n";
  }
  print "<dd>";
  $imin = $i - $how_many_lines;
  if ($imin < 0) { $imin = 0; }
  $imax = $i + $how_many_lines;
  if ($imax > $#lines) { $imax = $#lines; }


583 名前:nobodyさん [05/01/24 10:29:17 ID:CX5KANJQ]
  for ($j = $imin; $j <= $imax; $j++) {
   $line = $lines[$j];
   &jcode'convert(*line, "euc");
   line =~ s/<[^>]*(>|$)//g;
   $tmp = $word;
   &jcode'convert(*tmp, "euc");
   if ($jflag) {
    $tmp =~ s/([\+\*\.\?\^\$\[\-\]\|\(\)\\])/\\$1/g;
   }
   foreach $w (@words) {
    $w2 = $w;
    &jcode'convert(*w2, "euc");
    $line =~ s/($w2)/<b>$1<\/b>/ig;
   }
   &jcode'convert(*line, $kcode_cgi, "euc");
   print "$line ";
   if ($end >= @filelist) {
    exit;
   }
  }
  if ($h_k == $hyouji) {
  $nextpage = $FORM{'page'} + 1;
  print "<form method=\"POST\" action=\"$script\">\n";
  print "<input type=\"hidden\" name=\"page\" value=\"$nextpage\">\n";
  print "<input type=\"hidden\" name=\"word\" value=\"$word\">\n";
  print "<input type=\"submit\" value=\"次へ\">";
  print "</form>";
  }

 }
}


584 名前:nobodyさん mailto:sage [05/01/24 12:14:55 ID:???]
部分だけじゃなくてどっかに全部うpしろや。

585 名前:nobodyさん mailto:sage [05/01/24 12:35:13 ID:???]
>>567
✓ # アクセスチェック
if ($mode eq ''){ &admin; }
if ($FORM{'pass'} ne "$pass") {&error("パスワードが違います");}
if ($mode eq 'regist'){ ®ist; }
&bbs;
exit;
sub check { # アクセス制限
$host = gethostbyaddr(pack("C4", split(/\./, $ENV{'REMOTE_ADDR'})), 2) || $ENV{'REMOTE_ADDR'};
 foreach $i (@allow) {
  if ($host =~ /$i/) { return; }
 }
 &error("アクセスが許可されていません");
 exit;
}
sub admin { #認証
 &header;
print << "_ID";
<form action="$script" method="POST">
<input type=hidden mode=bbs size="8">
<input type=text name=pass size="8">
<input type=submit value="認証">
</form>
_ID
 &footer;
 exit;
}

全体がわからんけどこんなところか。
ただしこれだけじゃなくて全体にも手を入れないと動かんよ。


586 名前:572 mailto:sage [05/01/24 18:07:17 ID:???]
>584
うpしました
www.uploda.org/upload.cgi?mode=dl&file=34893
受信パスは「cgi」です
よろしくお願いします



587 名前:567 mailto:sage [05/01/24 22:09:17 ID:???]
>>568解決しました。jcode.plのパスが違ってました。
わかってみれば、にんともかんとも(滅)
お騒がせしました。

>>566についてはまだです。
パス認証だけどうしてもうまくいきません(TT)

588 名前:nobodyさん mailto:sage [05/01/25 04:15:56 ID:???]
ttp://www.net-easy.com/psw/ezpsw.html
のパスワード認証&自動発行スクリプト
ttp://cat.zero.ad.jp/mouse/download/psw/ezpsw_cgi.txt

まず、115行のメールアドレス入力欄
<INPUT name="mail_add" size="30"><BR>
 を
<INPUT name="mail_add_a" size="30"><BR>
<select name="mail_add_b">
<option value="\@docomo.ne.jp">\@docomo.ne.jp</option>
<option value="\@ezweb.ne.jp">\@ezweb.ne.jp</option>
<option value="\@c3.ezweb.ne.jp">\@c3.ezweb.ne.jp</option>
</select>
のように2段階入力にして、
("mail_add_a"はメアドの@までのアカウント、
"mail_add_b"は@以降のドメイン名として代入)

147行 $mail_add = $in{'mail_add'}; の部分で
上記フォームから受け渡される"mail_add_a"と"mail_add_b"を連結して
変数 $mail_add に代入されるようにしたいのですが、
$in{'mail_add'}; の部分をどのように書き換えれば2つの文字列を連結させられるでしょうか?


589 名前:588 mailto:sage [05/01/25 04:31:03 ID:???]
付け足し
147行はメアドの書式をチェックする部分です。

590 名前:nobodyさん mailto:sage [05/01/25 11:35:50 ID:???]
>>588
$mail_add = $in{'mail_add_a'} . $in{'mail_add_b'};

591 名前:nobodyさん mailto:sage [05/01/25 21:21:27 ID:???]
>>590
解決しました。
vrytnx

592 名前:572 mailto:sage [05/01/27 21:43:23 ID:???]
忘れてました

# このスクリプトの名前
$script = "kensaku2.cgi";

(78〜79行目辺り)の部分をスクリプトの名前に変えてください
よろしくお願いします

593 名前:572=586 [05/01/28 22:52:33 ID:wG0bpuZu]
うpしなおしました
ttp://www.uploda.org/upload.cgi?mode=dl&file=36634

デバッグしてみると
「次へ」ボタンが押された時、検索語が受け渡されていないようです
どこをいじればいいかわからなくなってきました
アドバイスお願いします

594 名前:nobodyさん [05/01/29 16:02:16 ID:BgaXde9b]
【.  CGI名  .】 Design BBS 1.80 【配布先URL】 prism-web.com
【ヘルプ内容】 
このCGIについている、特定のIPからのアクセスを拒否するアクセス制限を、逆に特定のIPからのアクセスだけOKにするアクセス制限に変更したい。どうすればよいか。
DLしたままのファイルで、sub axs_checkのflagを逆にしてみたらスクリプトエラーになってしまい、他にどうすればよいかわからなくなった。
ーーここからスクリプト
@deny = (
"hogehoge.com",
);

&decode;  #フォームデコード
&axs_check; #アクセス制限
#(中略):フォームの設定が数行
&html;   #BBS本体表示

# アクセス制限
sub axs_check {
 &get_host;

 if ($deny[0]) {
  local($flag)=0;#ここを1にして・・・その下の$flag=1を0にするとスクリプトエラー。
  foreach (@deny) {
  #↓これは、@denyにないIPならループ抜けの意味ですよね?違う?(・・、
   if ($_ eq '') { last; }
   $_ =~ s/\*/\.\*/g;
   if ($host =~ /$_/) { $flag=1; last; }
  }
  if ($flag) { &error("許可されていないアクセスです!") }
 }
}


595 名前:594 mailto:sage [05/01/29 16:03:22 ID:???]
# ホスト名取得
sub get_host {
 $host = $ENV{'REMOTE_HOST'};
 $addr = $ENV{'REMOTE_ADDR'};

 # ホスト名取得に gethostbyaddr関数を使用する場合は$gethostbyaddr = 1;にします。
 $gethostbyaddr = 1;

 if ($gethostbyaddr) {
  if ($host eq "" || $host eq "$addr") {
   $host = gethostbyaddr(pack("C4", split(/\./, $addr)), 2);
  }
 }
 if ($host eq "") { $host = $addr; }
}

596 名前:nobodyさん mailto:sage [05/01/29 16:57:47 ID:???]
>594-595
俺もperlをちょこっといじって遊んでるくらいの人間なんで、あんま自信ないけど・・・

 if ($deny[0]) {
  local($flag)=0;
  foreach (@deny) {
  #↓これは、@denyから取り出した内容($_)が空('')だったらループ抜け、だと思
   if ($_ eq '') { last; }
   $_ =~ s/\*/\.\*/g;
   if ($host =~ /$_/) { $flag=1; last; }
   #↑アクセスした人のホスト($host)に@denyから取り出した内容($_)が
   #↑含まれていたら$flagの値を1にしてループを抜ける
   #↑つまり「$flag==1なら拒否」
   # これを「$flag==1なら許可」に変えたい → 言い換えると「$flag=!1なら拒否」
  }
  if ($flag=!1) { &error("許可されていないアクセスです!") }
  #↑ということでここをこう変更すればいけるんでは?
 }

ただ「特定のIPからの制限」なら、$hostじゃなくて$addrにするべきなんじゃ?って気がするけど





597 名前:594 mailto:sage [05/01/29 21:54:11 ID:???]
>>596
if ($flag=!1) { &error("許可されていないアクセスです!") }
これだと500エラーになってしまいましたです。

if ($flag ne "1") にしてみましたが、こっちも500エラー。
if ($flag = "0")も500エラーでした。
>>594だったらちゃんと動作するんですけど・・・(><)

598 名前:594 mailto:sage [05/01/29 22:21:41 ID:???]
フラグを使わない方法を考えてみましたが・・・
sub axs_check {
 # ホスト名を取得
 &get_host;
 if ($deny[0]) {
  foreach (@deny) {
   if ($_ eq '') { &error("許可されていないアクセスです"); last;}
   $_ =~ s/\*/\.\*/g;
   if ($host eq~ /$_/) { last;}
   #こうしたら、@denyのIPでのアクセスがエラーになる。
   #$host ne にするとスクリプトエラーに。
  }
 }
}
お手上げです(TT)

599 名前:594 mailto:sage [05/01/30 01:16:06 ID:???]
たぶんできました。
sub axs_check {
 # ホスト名を取得
 &get_host;
 if ($deny[0]) {
  local($flag)=0;
  foreach (@deny) {
   $_ =~ s/\*/\.\*/g;
   if ($host =~ /$_/) { $flag=1; last; }
  }
  if (!$flag) { &error("許可されていないアクセスです!") ; exit;}
 }
}
これで何とか動作しました。
>>596さん、いろいろヒントありがとうでした。
>>595
>if ($_ eq '') { last; }
これ、@denyが空の設定がありうる、ということを失念しておりました(^-^;
#だってデフォルトからして空ではなかったので、なんて言い訳してみるテスト(ぉぉ

600 名前:nobodyさん mailto:sage [05/01/30 05:18:46 ID:???]
つか、500エラーに対処できないのかね?
多分こいつは共有サーバでテストしながら改造している希ガス

601 名前:594 mailto:sage [05/01/30 11:57:38 ID:???]
なんかエラった(汗)

>>600
文法チェックの結果エラーがなく、
InternalServerErrorになる理由がわからないというだけの話です。
IPの判断に関してはローカルではテストできないので
確かに共有鯖にしましたけど、
ローカルでテストする方法あります?

602 名前:nobodyさん mailto:sage [05/01/30 12:02:58 ID:???]
>>601
500エラーについて
CGI設置について質問 【Part2】
pc5.2ch.net/test/read.cgi/php/1104624784/2


603 名前:nobodyさん mailto:sage [05/01/30 17:01:23 ID:???]
>>601
&get_host; をコメントアウトして代わりに
$host = 'ダミーのアドレス';を書けばいいだろ

604 名前:nobodyさん mailto:sage [05/01/31 23:38:23 ID:???]
質問にあったスレが見当たらないのでお邪魔します
CGI配布場所  ttp://sugachan.dip.jp/download/
サンプル  ttp://sugachan.dip.jp/download/sample/upload.html
特定IP・串からのアクセス・DLを弾きたいのですが
特定IPの場合
$set{'deny_host'} = ' ';に何を入れればいいのでしょうか?
そして上にIPを入れた場合は直リンからのDLも防げるのでしょうか
検索してみたのですがわけがわからず途方にくれています

605 名前:nobodyさん mailto:sage [05/01/31 23:52:38 ID:???]
>>604
ここは改造スレなのでスレ違い。

CGI設置について質問 【Part2】
pc5.2ch.net/test/read.cgi/php/1104624784/

606 名前:nobodyさん mailto:age [05/02/03 10:49:14 ID:???]
丸投げスレッドから来ました。
期限が近いのでどうぞよろしくお願いします
【.  CGI名  .】 検索専用データベース Ver2.04
【配布先URL】 ttp://cgiroom.nu/
【. 置き場所 .】 ttp://hpcgi2.nifty.com/wanchan/downlode.cgi/database2_04.lzh
【 依頼期限 】 出来れば1週間ほどで。
【. 依頼内容 】検索結果に画像を表示、新着情報等がわかるように。
の2点をしたいのですが、よくわかりません。
理想としては
ttp://rikunabi-next.yahoo.co.jp/rnc/docs/cp_s00010.jsp
のような感じにしたいです。
どうぞよろしくお願いします。



607 名前:nobodyさん mailto:sage [05/02/03 15:09:30 ID:???]
>>606
>丸投げスレッドから来ました。
>期限が近いのでどうぞよろしくお願いします

(゚Д゚)ハァ? スレ違いは帰れ

608 名前:nobodyさん mailto:sage [05/02/04 00:30:42 ID:???]
>605
改造だと思っていたのですが、違っていたのですね
お礼が遅れてすいませんでした
ありがとうございます

609 名前:606 [05/02/04 10:07:39 ID:x2xOcYLj]
すみません、書き方がおかしかったです。
丸投ではなく、出来るだけ自分でどうにかしたいので
改造の方に来ました。という意味です。
>607様わかってもらえたでしょうか?

610 名前:nobodyさん mailto:sage [05/02/04 11:25:07 ID:???]
>>609
要するにマルチって事だろ?
期限って何よ?

611 名前:nobodyさん mailto:sage [05/02/04 13:47:30 ID:???]
>>610
期限は前スレッドで記入するところがあったので
そのまま流用してみました。
期限を決め、大体そのくらいで出来ればいいな。
という希望的観測も含まれています。
前スレッドに移動しますと言う旨を書いてるので
マルチではないかと思いますがどうでしょうか?
分かりにくくてすみません。


612 名前:nobodyさん mailto:sage [05/02/05 09:23:59 ID:???]
omae no taido ga kiniiran

613 名前:nobodyさん mailto:sage [05/02/05 18:32:34 ID:???]
態度が悪く申し訳ありません。
悪かった点がありましたら、謝りますので
どうにかしていただけないでしょうか?


614 名前:nobodyさん mailto:sage [05/02/06 05:14:40 ID:???]
やっぱ人に依存しっぱなしのヤツってどっか抜けてるんだな。


漏れもperlの文法とかはさっぱりだけど、
最低限自分のしたいようにするためにhtmlの出力部分をいじったり
どの変数がどういう処理に回されてるかを必死ににらめっこして自分なりに判断して、
その上で具体的にどの部分をどうしたいかを明記するもんだと思うんだけどね。

質問があまりにも抽象的だったり漠然としすぎているから
正直誰も答えようがないし、答える気もしないんじゃないかな。

2chでは社交辞令的な事には誰も関心なくて、
用件をはっきり伝えて手短に済ませるってなスタイルが定着してると思うしね。

615 名前:nobodyさん mailto:sage [05/02/07 02:06:50 ID:???]
「俺パソコンとかよくわかんねーからさぁ」って、開き直ってる人が多いッす。
大抵は少し経てばそういう気分は抜けて「そろそろ俺も中級者って感じィ♪」と思うんだけど、新しい分野に取り組むと
またお手上げ状態…みたいな。
身近にそういう人が何人かいるのでよくわかるッす。
まあ、なんでもかんでもそうですけど、わからなくてもとりあえずチャレンジすることって大切ッす。
いや勿論、責任の取れる範囲でのハナシッす。

>>14みたいな文は誘導のテンプレにしたいッす。

616 名前:nobodyさん mailto:sage [05/02/07 12:32:17 ID:???]
社交辞令っつーかさ「ひとまず謝ってみた」って姿勢がな。
あと「ドーユーアンダスタン?」な返答って「アンタ馬鹿?」って言ってんのに等しいぞ。
教えを請う態度じゃないよね。やる気の問題。

丸投げスレじゃなくてさ、改造スレなんだから。
まずおまぃさんのスキルが不明、prog理解度が不明。
何をやってみてどうダメだったのかのかが不明。

ソース丸ごと表示して「○○行目に以下を追加して〜」
「□□を△△に書き直して〜」とか言って欲しいのか?
それは丸投げっていうんだぞ。

お前宿題って先生に答え聞いてノートに丸写しする事だと思ってなぃ?




617 名前:nobodyさん mailto:sage [05/02/07 12:35:44 ID:???]
どっちにしろここでも丸投げでももう相手にされないから諦めるだろ

618 名前:nobodyさん mailto:sage [05/02/07 18:10:45 ID:???]
どこがどう解らないかを提示できないってのは、
理解しようという意識が薄い顕れだからね。
1つ問題が解決できても、また同じような事で質問してくる確変パターンに繋がるのが
オチだし






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<341KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef