★三 【 スクリプト改造工房 PART 8 】 ★三
at PHP
[前50を表示]
550:6
05/01/07 23:40:43
【. CGI名 .】 電光! v.5.20
【配布先URL】 URLリンク(cgiscriptmarket.com)
【. 置き場所 .】 URLリンク(www36.tok2.com)
【ヘルプ内容】
途中までやりましたがココからがわかりません。
・枠がどうしても青色。黒色に変えたい。枠の太さも1pxに。
・日付に「'」が入ってしまう。
・1 名前 : 内容 5/06 12:40 とひとつのformで表示したい。
・見かけ上だけ消してるだけなので要らないソースは消してしまいたいがどれを消していいかわからない。
お願いします。
551:nobodyさん
05/01/07 23:53:58
>>550
マルチ乙!
552:6
05/01/07 23:59:44
誘導されてきました。。
スレ違いですか?
553:nobodyさん
05/01/08 00:55:46
>>552
丸投げスレとperlスレみたいにあちこち書いてるだろ。
他のスレに書くなら取り消すなり移動する旨ぐらい書け。
だからマルチと言われる。
それに自分でいじってるんだろ?
だからここへ誘導されたんだ。
↓自分がどちらなのかよく考えろ。
■ 自分で改造できない場合には
【 スクリプト改造依頼スレ 】(丸投げ) part3
スレリンク(php板:2番)(テンプレ)
■ 自分で改造するアドバイスが欲しい場合には
★三 【 スクリプト改造工房 PART 8 】 ★三
スレリンク(php板:79番)(テンプレ)
554:6
05/01/08 16:21:33
こっちが★三 【 スクリプト改造工房 PART 8 】 ★三 で
・枠がどうしても青色。黒色に変えたい。枠の太さも1pxに。
・日付に「'」が入ってしまう。
こっちが★三 【 スクリプト改造工房 PART 8 】 ★三 です。
見かけ上だけ消してるだけなので要らないソースは消してしまいたいがどれを消していいかわからない。 rmで表示したい。
・1 名前 : 内容 5/06 12:40 とひとつのformで表示したい。
555:nobodyさん
05/01/14 22:12:47
【. CGI名 .】 WwwSearch Ver3.15 - 検索フォーム
【配布先URL】 URLリンク(www.tohoho-web.com)
【ヘルプ内容】 検索結果を、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
05/01/14 22:13:34
#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
05/01/14 22:18:04
foreachのかわりにforでまわしてみたんですが
結果は検索が一件もされず「次へ」のみが表示されてしまいます
アドバイス、解決法よろしくお願いします
558:nobodyさん
05/01/15 19:29:07
>>555
久しぶりに改造工房にお客が来たのに放置されているなぁ〜
sub search1の@filelistだが、お前はこの配列に検索に引っかかったものが入っていると思っているだろ?
残念。
@filelistには対象ディレクトリの中にある全てのファイルが格納されている。
試しに
closedir(DIR);
のあとに
errexit("@filelist");
って入れてごらんよ。
漏れならsub search1とsub search2を大改造しる。
opendir(DIR, $dir);
で、指定してた拡張子のファイルのみを
@filelistに入れていく。
559:555
05/01/15 23:08:47
>558
指摘、アドバイスありがとうございます
となるとforループ自体がおかしいことになりますね
なんだか煮詰まってテンパってきました
もちょっとガンガってみますです…
560:nobodyさん
05/01/16 03:38:30
KENTのBBSのソースでも眺めれ。
たいていは件数によって次ページ送りの機能がついているから。
561:nobodyさん
05/01/17 11:01:28 gvEGsU/w
丸投げの方で放置されそうな勢いなので、自分で努力しつつこちらで質問します。
【. CGI名 .】 HiLink Type-B
【配布先URL】 URLリンク(www.e-hws.net)
簡易表示の方法をちょっと変えたいです。新着順とランキング順しかソート方法が無いのですが、
これをタイトル(サイト名)で50音表示できるように変更したいです。
利用方法としては「ランキング表示」リンクボタン(?)を「50音表示」とし、クリックするとで50音順で
並ぶというものです。
表示方法なんかを改造してるので、行数が合わないと思われるので、名前で場所を伝えます。
sub mainの「表示データ作成」にある「# ランキング表示の場合、ソートする」をどうにかしたら良いんですよね?
$ititleと$jtitleがサイト名のようです。
さらに、その下の「if( $iclicknum < $jclicknum ){」の部分を書き換えれば良いとは思うのですが…
素人ながらに「if( $ititle < $jtitle ){」ってしてみましたが、案の定変化無しです。
どのようにしたら50音順に並べる事が可能ですか?
宜しくお願いします。
562:nobodyさん
05/01/17 18:56:00
>>561
規約は読んだのか?
再配布禁止&&使用者はメールで届出の義務あり
563:555
05/01/18 19:32:37
>560
眺めて悩んでいたらなんかわかってきました
558さん560さん、アドバイスありがとうございました
564:nobodyさん
05/01/18 20:55:07
>>562
このスレは改造工房であり、改造済みのスクリプトを手渡すわけではないので再配布禁止には当たらないかと…
それにまだ改造したものを設置してないので、メールはまだしなくてもよいかと…
要するにヒントだけ与えれば質問者が何とかするって言うスレなので問題はないかと…
>>561
今ちょっと忙しいので、そのうちスクを見てみるわ。
565:nobodyさん
05/01/19 05:16:19
>>561
惜しい。
Perlは数値か文字列かで比較演算子が異なる。
< の代わりに gt を使えば丁度だな。
566:561
05/01/19 10:15:04 sYVj0TcQ
>>564 >>565
フォロー&返答ありがとうございます。
ばっちり出来ました。
文字列は数字じゃないから数字の演算式記号は使えないって事で覚えててOKでしょうか?
アドバイスありがとうございました!
567:730
05/01/23 11:37:56
他スレから誘導されて来ました。
会員制掲示板のPerlCGIスクリプトです。普通の掲示板(KENTさんの書籍のスクリプトを参考に、過去ログ
作成機能と検索機能を削除した)に、IP制限とパス制を組み合わせ改造しました。
✓で特定のIP(@allow)だったら認証画面(&admin)を出し、パスが合ったら掲示板を表示させる(&bbs)。
IPおよびパスが合わなければエラーを返す、・・・つもりでした。しかし下記のスクリプトでは認証画面は
表示しますが、パスを入力しても認証画面、パスミスでも認証画面になるという状態で、
どうにも煮詰まってしまいました。どこがおかしいのかご教授下さい。これでもIP制限は動作しています。
スクリプトはここにアップしました。該当部分だけ。
URLリンク(up.isp.2ch.net)
568:730
05/01/23 12:14:51
ついでにお聞きします。
【スクリプト名】
Web拍手(公式HPから配布版DL。2004年10月。)
【CGIソース】
kaiseki.cgiだけ。
URLリンク(up.isp.2ch.net)
【改造した内容】
●過去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さん
05/01/23 13:17:49
>>567-568
アップ先が表示できません
570:567
05/01/23 16:52:48
ありゃ。失礼しました。申し訳ないです(大汗)
UPしなおしました。
>>567
URLリンク(yellow.ribbon.to)
>>568
URLリンク(yellow.ribbon.to)
571:555
05/01/23 22:33:51 a5mA126v
再びすみません
【. CGI名 .】 WwwSearch Ver3.15 - 検索フォーム
【配布先URL】 URLリンク(www.tohoho-web.com)
【ヘルプ内容】 検索結果を、「次へ」ボタンを押して、次の件をひょうじさせたいです
5件ごとや10件ごとの表示は最初だけは表示できるようになりました
「次へ」ボタンを押して、次の件をひょうじさせたいのですが
うまくいきません
この文を最後に追加しました
print "<form method=\"POST\" action=\"$script?page=$page&word=$word\">\n";
print "<input type=\"submit\" value=\"次へ\">";
print "</form>";
「次へ」ボタンを押しても検索結果が出てきません
何かたりないのでしょうか
かなり悩みましたが答えが見つかりません
ヒント、アドバイスお願いします
572:nobodyさん
05/01/23 22:37:48
書き忘れました
>571の文の前に
$page=$FORM{'page'};
$word=$FORM{'word'};
を実行しています
$scriptには自身のCGIファイルの名前が入ってます
573:nobodyさん
05/01/24 00:23:35
>>572
掲示板スクリプトを拾って読んでみたら応用できるんじゃない?
574:nobodyさん
05/01/24 00:33:32
>>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
05/01/24 01:12:24
>573
掲示板スクリプト眺めてるんですが
一向にらちがあかないのです;;
>574
ありがとうございます
試してみましたが、結果はやっぱり同じでした
「次へ」を表示するとこまではいいんですが
押しても、検索フォームだけ出て結果は出ないのです
ソースも晒したほうがいいでしょうか?
576:572
05/01/24 01:16:02
>574
うっかりしてました
この文の直前に
$nextpage = $FORM{'page'} + 1;
をしています
print "<input type=\"hidden\" name=\"page\" value=\"$nextpage\">\n";
にしても結果変わらずです
577:nobodyさん
05/01/24 01:33:30
そんな送信する側の記述を書かれたってわかるわけない。
page=$pageとword=$wordという値を受け取ってどういう処理をさせてる?
578:572
05/01/24 09:52:41
>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
05/01/24 10:03:39
(続き)
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
05/01/24 10:07:38
$pageは>576にも書いたのですが$nextpageにしてますので
今は使ってません
最初の一回目は5件表示されるのに
「次へ」を押すと検索フォームだけ出て、結果が出ないのがはがゆくてなりません
これで参考になりますでしょうか?
581:nobodyさん
05/01/24 10:18:02 f8wXJteD
>>580
Perlってデバッガ無いの?
PHPだとZend入れてればIEの右くりメニューからデバッガ起動するよ。
582:572
05/01/24 10:28:28
一番重要なトコ忘れてました
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 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さん
05/01/24 12:14:55
部分だけじゃなくてどっかに全部うpしろや。
585:nobodyさん
05/01/24 12:35:13
>>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
05/01/24 18:07:17
>584
うpしました
URLリンク(www.uploda.org)
受信パスは「cgi」です
よろしくお願いします
587:567
05/01/24 22:09:17
>>568解決しました。jcode.plのパスが違ってました。
わかってみれば、にんともかんとも(滅)
お騒がせしました。
>>566についてはまだです。
パス認証だけどうしてもうまくいきません(TT)
588:nobodyさん
05/01/25 04:15:56
URLリンク(www.net-easy.com)
のパスワード認証&自動発行スクリプト
URLリンク(cat.zero.ad.jp)
まず、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
05/01/25 04:31:03
付け足し
147行はメアドの書式をチェックする部分です。
590:nobodyさん
05/01/25 11:35:50
>>588
$mail_add = $in{'mail_add_a'} . $in{'mail_add_b'};
591:nobodyさん
05/01/25 21:21:27
>>590
解決しました。
vrytnx
592:572
05/01/27 21:43:23
忘れてました
# このスクリプトの名前
$script = "kensaku2.cgi";
(78〜79行目辺り)の部分をスクリプトの名前に変えてください
よろしくお願いします
593:572=586
05/01/28 22:52:33 wG0bpuZu
うpしなおしました
URLリンク(www.uploda.org)
デバッグしてみると
「次へ」ボタンが押された時、検索語が受け渡されていないようです
どこをいじればいいかわからなくなってきました
アドバイスお願いします
594:nobodyさん
05/01/29 16:02:16 BgaXde9b
【. CGI名 .】 Design BBS 1.80 【配布先URL】 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
05/01/29 16:03:22
# ホスト名取得
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さん
05/01/29 16:57:47
>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
05/01/29 21:54:11
>>596
if ($flag=!1) { &error("許可されていないアクセスです!") }
これだと500エラーになってしまいましたです。
で
if ($flag ne "1") にしてみましたが、こっちも500エラー。
if ($flag = "0")も500エラーでした。
>>594だったらちゃんと動作するんですけど・・・(><)
598:594
05/01/29 22:21:41
フラグを使わない方法を考えてみましたが・・・
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
05/01/30 01:16:06
たぶんできました。
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さん
05/01/30 05:18:46
つか、500エラーに対処できないのかね?
多分こいつは共有サーバでテストしながら改造している希ガス
601:594
05/01/30 11:57:38
なんかエラった(汗)
>>600
文法チェックの結果エラーがなく、
InternalServerErrorになる理由がわからないというだけの話です。
IPの判断に関してはローカルではテストできないので
確かに共有鯖にしましたけど、
ローカルでテストする方法あります?
602:nobodyさん
05/01/30 12:02:58
>>601
500エラーについて
CGI設置について質問 【Part2】
スレリンク(php板:2番)
603:nobodyさん
05/01/30 17:01:23
>>601
&get_host; をコメントアウトして代わりに
$host = 'ダミーのアドレス';を書けばいいだろ
604:nobodyさん
05/01/31 23:38:23
質問にあったスレが見当たらないのでお邪魔します
CGI配布場所 URLリンク(sugachan.dip.jp)
サンプル URLリンク(sugachan.dip.jp)
特定IP・串からのアクセス・DLを弾きたいのですが
特定IPの場合
$set{'deny_host'} = ' ';に何を入れればいいのでしょうか?
そして上にIPを入れた場合は直リンからのDLも防げるのでしょうか
検索してみたのですがわけがわからず途方にくれています
605:nobodyさん
05/01/31 23:52:38
>>604
ここは改造スレなのでスレ違い。
CGI設置について質問 【Part2】
スレリンク(php板)
606:nobodyさん
05/02/03 10:49:14
丸投げスレッドから来ました。
期限が近いのでどうぞよろしくお願いします
【. CGI名 .】 検索専用データベース Ver2.04
【配布先URL】 URLリンク(cgiroom.nu)
【. 置き場所 .】 URLリンク(hpcgi2.nifty.com)
【 依頼期限 】 出来れば1週間ほどで。
【. 依頼内容 】検索結果に画像を表示、新着情報等がわかるように。
の2点をしたいのですが、よくわかりません。
理想としては
URLリンク(rikunabi-next.yahoo.co.jp)
のような感じにしたいです。
どうぞよろしくお願いします。
607:nobodyさん
05/02/03 15:09:30
>>606
>丸投げスレッドから来ました。
>期限が近いのでどうぞよろしくお願いします
(゚Д゚)ハァ? スレ違いは帰れ
608:nobodyさん
05/02/04 00:30:42
>605
改造だと思っていたのですが、違っていたのですね
お礼が遅れてすいませんでした
ありがとうございます
609:606
05/02/04 10:07:39 x2xOcYLj
すみません、書き方がおかしかったです。
丸投ではなく、出来るだけ自分でどうにかしたいので
改造の方に来ました。という意味です。
>607様わかってもらえたでしょうか?
610:nobodyさん
05/02/04 11:25:07
>>609
要するにマルチって事だろ?
期限って何よ?
611:nobodyさん
05/02/04 13:47:30
>>610
期限は前スレッドで記入するところがあったので
そのまま流用してみました。
期限を決め、大体そのくらいで出来ればいいな。
という希望的観測も含まれています。
前スレッドに移動しますと言う旨を書いてるので
マルチではないかと思いますがどうでしょうか?
分かりにくくてすみません。
612:nobodyさん
05/02/05 09:23:59
omae no taido ga kiniiran
613:nobodyさん
05/02/05 18:32:34
態度が悪く申し訳ありません。
悪かった点がありましたら、謝りますので
どうにかしていただけないでしょうか?
614:nobodyさん
05/02/06 05:14:40
やっぱ人に依存しっぱなしのヤツってどっか抜けてるんだな。
漏れもperlの文法とかはさっぱりだけど、
最低限自分のしたいようにするためにhtmlの出力部分をいじったり
どの変数がどういう処理に回されてるかを必死ににらめっこして自分なりに判断して、
その上で具体的にどの部分をどうしたいかを明記するもんだと思うんだけどね。
質問があまりにも抽象的だったり漠然としすぎているから
正直誰も答えようがないし、答える気もしないんじゃないかな。
2chでは社交辞令的な事には誰も関心なくて、
用件をはっきり伝えて手短に済ませるってなスタイルが定着してると思うしね。
615:nobodyさん
05/02/07 02:06:50
「俺パソコンとかよくわかんねーからさぁ」って、開き直ってる人が多いッす。
大抵は少し経てばそういう気分は抜けて「そろそろ俺も中級者って感じィ♪」と思うんだけど、新しい分野に取り組むと
またお手上げ状態…みたいな。
身近にそういう人が何人かいるのでよくわかるッす。
まあ、なんでもかんでもそうですけど、わからなくてもとりあえずチャレンジすることって大切ッす。
いや勿論、責任の取れる範囲でのハナシッす。
>>14みたいな文は誘導のテンプレにしたいッす。
616:nobodyさん
05/02/07 12:32:17
社交辞令っつーかさ「ひとまず謝ってみた」って姿勢がな。
あと「ドーユーアンダスタン?」な返答って「アンタ馬鹿?」って言ってんのに等しいぞ。
教えを請う態度じゃないよね。やる気の問題。
丸投げスレじゃなくてさ、改造スレなんだから。
まずおまぃさんのスキルが不明、prog理解度が不明。
何をやってみてどうダメだったのかのかが不明。
ソース丸ごと表示して「○○行目に以下を追加して〜」
「□□を△△に書き直して〜」とか言って欲しいのか?
それは丸投げっていうんだぞ。
お前宿題って先生に答え聞いてノートに丸写しする事だと思ってなぃ?
617:nobodyさん
05/02/07 12:35:44
どっちにしろここでも丸投げでももう相手にされないから諦めるだろ
618:nobodyさん
05/02/07 18:10:45
どこがどう解らないかを提示できないってのは、
理解しようという意識が薄い顕れだからね。
1つ問題が解決できても、また同じような事で質問してくる確変パターンに繋がるのが
オチだし
619:nobodyさん
05/02/07 18:52:22
omae no taido ga kiniiran
620:nobodyさん
05/02/10 20:59:03
BBQ あらしお断りシステム
URLリンク(bbq.uso800.net)
URLリンク(bbq.uso800.net)
を掲示板に組み込みたいのですが、ソースをそのままコピペしてもできません。
どこを変えればいいか教えて頂けないでしょうか?
621:nobodyさん
05/02/11 01:05:32
>>620
エスパーキボンヌですか?
622:nobodyさん
05/02/11 03:01:13
既存のcgiに下のような環境変数のアクセスをはじく機能をつけたいのですが
どんな風に追加したらいいのでしょう?
'HTTP_VIA',
'HTTP_X_FORWARDED_FOR',
'VIA',
'HTTP_FORWARDED',
'FORWARDED',
'HTTP_X_BLUECOAT_VIA',
'HTTP_PROXY____',
'HTTP_PROXY___________',
'HTTP_PROXY_CONNECTION',
'HTTP_X_HOST',
'HTTP_X_REFERER',
'HTTP_X_SERVER_HOSTNAME',
'PROXY_HOST',
'PROXY_PORT',
'PROXY_REQUEST',
'HTTP_CLIENT_IP',
'HTTP_PRAGMA'
623:nobodyさん
05/02/11 04:27:14
「既存のcgi」って言われても、千差万別。何につけたいんだ?
624:622
05/02/11 11:59:46
bbsのcgiです。
例えばkentのとか。
URLリンク(www.kent-web.com)
625:nobodyさん
05/02/11 14:26:33 5gSqwCgm
はじめまして。自分の手ではどうしても改造しきれなかったのでここで質問させていただきます。
配布元:URLリンク(dream.lib.net)
スクリプト名:Power Search
登録式のサーチエンジンです。
マークサイトというものを複数登録する事ができるのですが、仕様では8個までしか登録できません。
これを22個登録できるように改造したいのですがうまくいきません。
ps_user.cgiの313〜324行目あたりの
☆マーク<br>
EOD
for (0 .. 7){
next if $marks[$_][1] eq "";
if ($data =~ /^\d*$_\d*</){
$buffer2.="<input type=\"checkbox\" name=\"sitemark\" value=$_ checked>$marks[$_][0]<br>\n";
}else{
$buffer2.="<input type=\"checkbox\" name=\"sitemark\" value=$_>$marks[$_][0]<br>\n";
}
}
$buffer2.="<br>";
$buffer3 = <<EOD;
を改造し、22個のマークが表示されるようにはなったのですが
チェックしていないチェックボックスにチェックが入ってしまうという不具合が起こりました。
よろしければ問題点を教えてください。
626:nobodyさん
05/02/11 17:27:38
W3C形式の日時を YYYY年 MM月 DD日 hh時 mm分 に変換したいです。
参考
Perlメモ/W3C形式の日時の解析
URLリンク(digit.que.ne.jp)
2005-02-10T14:54:18+09:00 を変換する場合、どう書けばいいのでしょうか?
627:nobodyさん
05/02/11 19:56:25
>>626
マッチや split
628:nobodyさん
05/02/12 05:57:07
>626
マルチすんな、ヴォケ。
スレリンク(php板:331番)
629:nobodyさん
05/02/12 14:58:20
cgiにこういうのを入れて、リストにあるIPを弾いています。
これを逆にリストにあるIPだけ許可できるように改造できないでしょうか?
お願いします。
&hostcheck;
sub hostcheck{
local($host_file,$remote_host,$line);
local(@lines);
$host_file = './host.dat';
$host=$ENV{'REMOTE_HOST'};
open(DB,"$host_file") || die "Cannot Open Log File $host_file: $!";
@lines = <DB>;
close(DB);
foreach $line (@lines) {
next if(length($line)<4);
chop $line;
if( $host=~/$line/ ){print "Status: 204\n\n";exit;}
}
}#hostcheck END
630:nobodyさん
05/02/12 15:56:04
>629
if( $host=~/$line/ ){print "Status: 204\n\n";exit;}
この{ }の中を許可したIP用の対応に書き換える↑
631:nobodyさん
05/02/12 16:22:03
>>629
$ENV{'REMOTE_HOST'};でホスト名を返さないサーバが多数。
ドツボにはまる予感がするぞ。
632:625
05/02/12 18:19:25
丸投げスレへ行きます。ありがとうございました
633:629
05/02/14 19:08:26
&hostcheck;
sub hostcheck{
local($host_file,$remote_host,$line);
local(@lines);
$host_file = './host.dat';
$jump = "./abc.html";
$host=$ENV{'REMOTE_HOST'};
open(DB,"$host_file") || die "Cannot Open Log File $host_file: $!";
@lines = <DB>;
close(DB);
foreach $line (@lines) {
next if(length($line)<4);
chop $line;
if( $host=~/$line/ ){print "Location: $jump\n\n";exit;}}
}#hostcheck END
こういう感じで特定のファイルにアクセスさせればいいのでしょうか・・
634:nobodyさん
05/02/14 23:47:48
■ 自分で改造する時にアドバイスが欲しい場合には
★三 【 スクリプト改造工房 PART 8 】 ★三
スレリンク(php板:79番)(テンプレ)
635:nobodyさん
05/02/15 12:28:07
はじめまして、少し質問させてください。
URLリンク(www.hot-dining.com)
で配布されています 「256palette」というカラーパレットのCGI(PHP)を、
URLリンク(useyan.pupu.jp)に組み込みたいのですが、
上手く動かず分からなくなったので伺ってみました。
上記「Twin」チャットの動作サンプルがコチラで、
URLリンク(useyan.pupu.jp)
コチラの「じぶんいろ」という文字にリンクを貼り、となりのテキストボックスで動作するように
256paletteを組み込みたいのですが、twin.cgiのheadタグ内に設置手順@を貼り付け、
446行目を
<form action="$script" method="get" target="_self">
↓
<form name="mae" action="$script" method="get" target="_self">
469・470行目を
<input type="text" name="irom" size=10 value="$cirom" class="text">
<font $fontm><b>じぶんいろ</b></font></font>
↓
<input type="text" name="iroa" size=10 value="$cirom" class="text">
<font $fontm><b>【<a href="javascript:wopen('256palette/palette.php?form=mae&name=iroa')">じぶんいろ</a.>】</b></font></font>
としましたが、スクリプトのエラーとウィンドウの下に出て動きません。
このCGI自体は説明どおりの階層に設置して動作を確認しております。
iromをiroaと変えたのは入室後も同じ名前のテキストボックスもあったからで、
この追加機能を入室後もつかえるようにしたいのですが。
宜しければお教えください、お願いします。M(_)m
636:nobodyさん
05/02/15 17:26:48
256paletteは捨てて他のを探したほうがいいと思う
637:zoooe
05/02/18 07:05:00
スレリンク(php板)l50 から来ました。
【 CGI名 】カラーBBS Ver.2.02
【配布先URL】URLリンク(www.cgi-down.com)
【設置サーバ】lolopop
【 質問内容 】“投稿者:[ あああ ] 投稿日:[ 2005年02月12日(土) 13時18分26秒 ]”
の部分を、例えば“wrote by: あああ 02/17/2005(thu) 13:18:26 ”
と英語に変えたいのですが、何度やっても500エラーになってしまします。
投稿者→wrote by だけでもエラーです。
どなたか解決法をご存知でしたらご指導いただけないでしょうか?
# 曜日を日本語化
@week = ('日','月','火','水','木','金','土');
$wday = $week[$wday];
local($date) = "$year年$mon月$mday日($wday) $hour時$min分$sec秒";
return ($date);
の部分を変えてもダメなのでしょうか?それともjcode.plの方をいじるんですか?
638:zoooe
05/02/18 07:06:08
続き
# 記事の表示
print "<hr size=0 color=$hr_color><BR><CENTER>\n";
for ($i = $end_page;$i<$end_list;$i++) {
local($main,$re) = split(/★/,$DATE[$i]);
chop($re);
local($number,$date,$name,$title,$mail,$hpurl,$com,$tc,$kc) = split(/☆/,$main);
$name =~ s/\0/☆/g;
$title =~ s/\0/☆/g;
$com =~ s/\0/☆/g;
print "<FORM ACTION=\"$cgifile\" METHOD=\"post\">\n";
print "<TABLE WIDTH=$kizi_wid BORDER=0 bgcolor=$main_tccolor cellpadding=0 cellspacing=0><TR><TD>\n";
print "<TABLE WIDTH=100% BORDER=0>\n";
print "<TR><TD BGCOLOR=$title_bgcolor WIDTH=95%>\n";
print "<FONT COLOR=$tc[$tc] SIZE=4><B>$title</B></FONT> [$number]</TD>\n";
print "<TD BGCOLOR=$title_bgcolor WIDTH=5%><INPUT TYPE=\"submit\" VALUE=\"RES\"></TD></TR>\n";
print "<TR><TD WIDTH=100%>投稿者:[ <B>$name</B> ]\n";
if ($mail ne '') { print "<A HREF=\"mailto:$mail\"><IMG SRC=\"$mail_gif\" WIDTH=40 HEIGHT=15 ALT=\"$name\" BORDER=0></A>\n"; }
if ($hpurl ne '') { print "<A HREF=\"$hpurl\"><IMG SRC=\"$home_gif\" WIDTH=40 HEIGHT=15 ALT=\"ホームページ\" BORDER=0></A>\n"; }
print " 投稿日:[ $date ]</TD></TR>\n";
print "<INPUT TYPE=\"hidden\" NAME=\"ac\" VALUE=\"return\">\n";
print "<INPUT TYPE=\"hidden\" NAME=\"res\" VALUE=\"$number\">\n";
print "<INPUT TYPE=\"hidden\" NAME=\"title\" VALUE=\"$title\">\n";
print "<TR><TD><BLOCKQUOTE>\n";
print "<P><FONT COLOR=$kc[$kc]>$com</FONT></P>\n";
print "</BLOCKQUOTE></TD></TR>\n\n";
ここを英語に変えたらエラーになります。よろしくお願い致します。
639:nobodyさん
05/02/18 09:03:36
そこ変えただけでエラーになるのは有り得ない気がする。
perl -c のチェックは通る?
それか、修正してセーブしたときに日本語文字コードがEUCからSJISに変わってるとかありそう。
640:nobodyさん
05/02/19 02:37:51 JY0g4Gmr
すいません、教えて下さい。
メールフォームで特定アドレスの受信拒否を行えるスクリプトを見つけたのですが、スクリプトを編集して禁止アドレスを登録しなければいけない為、随時更新する手間が大きく、
できれば別ファイルでそれの管理ができないものか、と悩んでおります。
元スクリプトは、KentWebさんのPostMail v2.41の改造バージョン、PostMail RDです。
URLリンク(planet.cside5.com)
@errmail = ('nomail@xxx.com','xxx@nomail.com');
(入力エラーとするメールアドレスです。シングルクォーテーションで囲みながらいくつでも指定することができます)
この部分なのですが、別ファイル(csvやtxt等)で管理する方法ありませんでしょうか?
タブや<>区切りでは、編集しにくいのでできればcsvがいいのですが・・・
641:zoooe
05/02/19 03:43:57
>>639 さん
大変ありがとうございました。
『そこ変えただけでエラーになるのは有り得ない気がする。』
と言うのを参考に、普通にメモ帳で編集してUPしたら、できました。
お礼が遅くなってしまってごめんなさい。
642:nobodyさん
05/02/21 14:41:10 xjZaU2mS
【. CGI名 .】 shiory diary Ver2.0
【配布先URL】 URLリンク(www.area-s.com)
【. 置き場所 .】 URLリンク(www.area-s.com)
【 依頼期限 】 今週中
【. 依頼内容 】
デフォルトの表示幅が400pxになっているのですが、これを344pxの画像枠に縮めたいです。
tableで400となった箇所を344に変えてみましたが、どうしても日記の記事がはみ出てしまいます。
どうかよろしくお願いします。
643:nobodyさん
05/02/21 15:20:55
>>642
別に記事はみ出なかったけど?
使ってるブラウザが悪いんじゃないの?
644:nobodyさん
05/02/21 15:22:29
CGIの改造じゃなくてHTML(CSS?)の問題ってことで
板違いだな
645:642
05/02/21 17:09:59
何度か再アップロードしたらちゃんと表示されました
なんだったんだ・・・
スレ汚しすみませんでした
646:nobodyさん
05/02/24 10:56:33 QVcBOm5y
はじめまして。宜しくお願いします。
自分で色々といじってたのですが、どうしても解決できないのでここで質問させてください。
(板違いでしたら指摘してください。)
【. CGI名 .】 SiteHistory ver1.01+3.00
【配布先URL】 URLリンク(www.lira.co.jp)
【改造中データ】 URLリンク(cgi.2chan.net)
【 依頼期限 】 2/25 (急ぎですみません)
【依頼内容】
項目を幾つか増やしてみました。
なぜか画像($image)を登録すると開催日($eventday)のデータがロストしてしまいます。
「sub edit1」「sub edit2」あたりを間違ってしまっていると思うのですが、原因を特定できません。
何か記述し忘れているのでしょうか?
お願いします。
647:646
05/02/25 14:21:12 tjf4sPQL
>>646です。
あぷろだに載せていたデータがなくなってしまったので、再度アップしました。
URLリンク(up.isp.2ch.net)
宜しくお願いします。
648:nobodyさん
05/02/25 15:41:05 QBQJZtMZ
KENTのe-PAD掲示板に荒らし対策としてなりすまし禁止ののトリップ機能か
携帯情報取得のBBQ機能追加って無理ですか?
それか管理人のみのアイコン表示とか・・・
649:nobodyさん
05/03/01 21:42:51 mUN1SLsJ
SPGM というアルバム用スクリプトなんですが、トップページ
URLリンク(spgm.sourceforge.net)
から各アルバムへ入って
サムネイルをクリックして表示された時に↓
URLリンク(spgm.sourceforge.net)
上のサムネイル一覧は消して、大きい画像だけを表示したいんです。
そんな改造をしてほしいです。
ソースはここにあります。よろしくお願いします。
URLリンク(earth.prohosting.com)
650:nobodyさん
05/03/01 22:04:31
>649
【 スクリプト改造依頼スレ 】(丸投げ) part3
スレリンク(php板)l50
651:nobodyさん
05/03/01 22:07:45
>>650
すみません、移動します。
652:nobodyさん
05/03/08 18:36:41
【. CGI名 .】 Joyful Note + YY-BOARD + alpha ver.1.0 Beta
【配布先URL】 URLリンク(webmin.bbzone.net)
【依頼内容】
このCGIを動かす鯖がwin2000の自宅鯖なのでsymlink関数が使えません
管理モードで設定を変更しようとするとadmin.cgiの979行目でエラーが起きます
979行目
while (!symlink(".", $lockfile)) {
同様に画像を投稿しようとするとjoiful.cgiの1485行目がエラーを起こします
1485行目
while (!symlink(".", $lockfile)) {
できればmkdir関数でファイルロックをしたいのですが
自分なりにやってみましたがうまくできません
日本語が少し変だと思いますが許してください
よろしくお願いします
653:nobodyさん
05/03/08 22:11:41
>>652
NetBSDに汁!
654:チョップ5/5
05/03/08 22:40:57
>>652
使い方は他で聞いてね〜☆
655:nobodyさん
05/03/10 13:47:16
>>652 ロックはinit.cgiで変えられるよ。あとロック用のフォルダを作っておかないといけないかも。
656:nobodyさん
05/03/11 12:34:38
【. CGI名 .】 Simple Olive Diary2 var2.0
【配布先URL】 URLリンク(www.olive-design.com)
【 依頼期限 】 3/14
【依頼内容】
現状では新しく書き込んだデータが一番上に来ます。
これを逆(先に書き込んだものが上に来る)としたいです。
イメージとしては、イベント開催情報のようなものでしょうか?
イベントが決まったら書き込みしますが、それはあとの方なので
先に書き込んだ今からあるものをトップに表示したいって感じですね。
ログを書き込むときに一番下に書き込むって事は出来るのでしょうか?
その場合、どうしたら良いですか?
もしくは別の方法をとったほうが良いのでしょうか?
お願いします。
657:nobodyさん
05/03/11 13:38:37
>>656
unshift (@log,"$newdata");
を
push (@log,"$newdata");
にすれば逆になる。
ただ2重投稿のチェックも変更が必要
658:656
05/03/11 19:02:16
>>657
すばやい返答ありがとうございます。
>2重投稿のチェックも変更が必要
と言うのは、以下の部分ですよね。
$top = $log[0];
($top_no,$jpg,$Wid,$Hei,$t_subject,$t_iday,$t_itime,$t_iplace,$top_comment,$top_time)= split(/<>/,$top);
if ($top_comment eq $comment ){ &error('エラー','二重投稿禁止')}
------------
$top = $log[0];ってのがログの一番上(0行目)を見るって事でOKですか?で、コメントが一緒じゃないかを
チェックするんですよね。
では、最終行をチェックってどうしたら?数値じゃ無理ですよね。
どうしたら良いんですか?お願いします。
659:nobodyさん
05/03/12 07:11:46 u7n1go0F
【. CGI名 .】updir.php[ver1.83]
【 配布先URL 】URLリンク(updir.net) → URLリンク(updir.net)
【 ソース 】URLリンク(tool-ya.ddo.jp)
【 依頼期限 】 3/19まで
【 依頼内容 】
フォームで画像を投稿する際に2つ程項目(出身地/好きな動物)を増やし表示させたいです。
【自分で試した事】
(1)583行目辺りに追加予定項目を追加(<input type=text name=inaka>と<input type=text name=animal>)
(2)2255行目辺りの「if($comi == 0){$html_text = "$comnum${tname2}${tcom} ${ttime}<br>";」に項目追加
→if($comi == 0){$html_text = "$comnum${tname2}${tcom}$inaka<br>$animal ${ttime}<br>";
この状態だとログに組み入れられない為、書き込むたびに全ての変数が変わってしまいます。
管理画面での操作等は必要としませんので、
追加項目に書き込み→一覧画面で表示の実現の助言をどうかお願い致します。
助けてください。切にお願いしますm(_ _)m
660:659
05/03/13 08:36:11
ウワァーン。どなたか助けてください。
661:nobodyさん
05/03/13 09:53:52
改造で金取るために無料で配布してるもんを勝手に改造したらまずいだろーよ
662:659
05/03/13 12:41:43
>>661
その辺の事が一切かかれていなかったので依頼しちゃいましたorz
それと>>659については自力でできちゃますた。
ご迷惑おかけしました。
663:nobodyさん
05/03/17 01:22:38
【. CGI名 .】 Joyful2ch-Me(MobileEdition)
【配布先URL】 URLリンク(www.supra.cx)
【. 置き場所 .】 URLリンク(www.supra.cx)
【. 依頼内容 】
当スクリプトはJoyful2chの携帯メール投稿可能版なのですが、
そのメールを処理するpost.cgiが付属していないので、
自分で何とかしたいんですが、ヒントくれませんか?
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
3999日前に更新/341 KB
担当:undef