★三 【 スクリプト改造工房 PART 9 】 ★三
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/03/32(土) 04:52:20ID:WJnup8Dd# スレッドの説明
#================================
「スクリプトを改造したいけどやりかたわかんないよー」という人がいましたら
ここで聞いてください。ひょっとしたらアドバイス出来るかもしれません。
質問するときは以下の点に注意して書いて下さい
(1) そのスクリプトの内容と置いてある場所を明記する (txtファイルでUPすればなお良い)
(2) どんな風に改造して欲しいのか? (完成イメージHTMLを用意すればなお良し)
(3) 出来るだけ詳しく書くこと。少しは自分で考えること。できれば御礼も言ったほうが良い
※答えてくれないからといって逆ギレする厨はお断り
0153nobodyさん
2006/11/26(日) 21:17:21ID:???0154150
2006/11/26(日) 21:53:46ID:tkb0DDKsそれってなにか違反になったりしませんよね?
0155nobodyさん
2006/11/27(月) 08:02:30ID:???0156150
2006/11/27(月) 16:00:15ID:kaXmljFh0157nobodyさん
2006/11/27(月) 16:14:05ID:???大人しく自分で処理を考えるべきだと思うよ。死ぬほど簡単だし。
実際に動作するサンプルだってそこら中にあるでしょ。
0158150
2006/11/27(月) 16:19:00ID:kaXmljFhどうもありがとうございます。
0159nobodyさん
2006/11/28(火) 16:35:21ID:???01601/2
2006/11/29(水) 22:10:10ID:???メッセージを送るためのフォームです。
これによって出力されるHTMLを改造したいのですが、
どのようにいじればよいものかと悩んでいます。
メッセージの送信ページでは2つの項目を用意していて、
<input type="text" name="com">
このようなinputで名前を送信し、
<textarea name="sub1">
このようなtextareaでメッセージを送信するしくみにしています。
デフォルトの設定では"com"の内容のみ送信され、
"sub1"はユーザがオプションで設置するようにマニュアルで書かれています。
メッセージを送信すると、
送信された内容が以下のように出力されるようになってほしいのですが、
<dl>
<dt>(ここに、<input type="text" name="com">で送ったメッセージが入る)</dt>
<dd>(ここに、<textarea name="sub1">で送ったメッセージが入る)</dd>
</dl>
01612/2
2006/11/29(水) 22:10:46ID:???<dl>
<dt>(ここに、<input type="text" name="com">で送ったメッセージが入る)
<dd>(ここに、<textarea name="sub1">で送ったメッセージが入る)</dd></dt>
</dl>
index.cgiを改造すれば解決できそうだということは予想がついていて、
70〜80行目あたりの「$QUERY{'com'}」や、
「$msg」あたりをいじれば解決できるだろうと思うのですが…。
なお、現在はそのへんを以下のように書いています。
$QUERY{'com'} .= "\n<dd>$QUERY{$wk}<\/dd>";
$msg = "<dl>\n<dt>$QUERY{'com'}<\/dt>\n<\/dl>";
CGIの知識はまったくないので、このへんをどのようにすればよいのかわかりません。
あと一歩でなんとかなりそうなので、
どなたかお力を貸していただけるとうれしいです。
0162nobodyさん
2006/11/29(水) 22:23:36ID:???2006/11/18 Ver3.2 です。
ついでに書いておきますと、
メッセージの送信ページのフォームは以下のように書いています。
<dl>
<dt>名前</dt>
<dd><input type="text" name="com" value="名前" size="40"></dd>
<dt>メッセージ</dt>
<dd><textarea name="sub2" cols="20" rows="4">メッセージ</textarea></dd>
<dt>返信不要ならばチェックしてください。</dt>
<dd><input type="checkbox" name="sub1" value="返信不要">返信不要</dd>
<dt>送信ボタン</dt>
<dd><input type="submit" name="submit" value="送る"></dd>
</dl>
0163nobodyさん
2006/11/29(水) 22:57:56ID:???$QUERY{'com'} .= "\n<dd>$QUERY{$wk}<\/dd>";
$msg = "<dl>\n<dt>$QUERY{'com'}<\/dt>\n<\/dl>";
を
$QUERY{'com'} .= "<\/dt>\n<dd>$QUERY{$wk}<\/dd>";
$msg = "<dl>\n<dt>$QUERY{'com'}\n<\/dl>";
にしてみそ。
0164160
2006/11/29(水) 23:43:59ID:???どうもありがとうございます。
最初に謝らなければなりません。
>161でname="com"とname="sub1"についてのことを書きましたが、
>162で書いた通り、「返信不要」のオプション(name="sub2")をつけております。
$QUERY{'com'} .= と $msg = を>161のように設定しているときは
name="sub1"とname="sub2"の送信内容に問題がなかったので、
以下のように例文を端折って書いたのですが…。
<dl>
<dt>(ここに、<input type="text" name="com">で送ったメッセージが入る)</dt>
<dd>(ここに、<textarea name="sub1">で送ったメッセージが入る)</dd>
</dl>
>163さんの設定だと
<dl>
<dt>(ここに、<input type="text" name="com">で送ったメッセージが入る)</dt>
<dd>(「返信不要」にチェックを入れた場合のみこの行が入る)</dd></dt>
<dd>(ここに、<textarea name="sub1">で送ったメッセージが入る)</dd>
</dl>
このように「</dt>」が余計になってしまいました。
なお、name="sub2"にチェックしなかったときは希望通りになりました。
せっかく考えていただいてたいへん申し訳ないのですが、
必要な情報をすべて書かなかった私の失敗です。申し訳ございません。
0165160
2006/11/29(水) 23:53:49ID:???「</dt>」が入らなければよいのですが、そのような方法はありますか?
name="com"の内容を「○○」、name="sub1"の内容を「○○」などと、
各nameごとにHTMLのタグを書ければ都合がよいのですが、
元のソースがそういう仕様ではないようなので惜しいです。
もし不可能であれば、「返信不要」のチェックを使用することはあきらめて、
>163さんが書いてくださったものをそのまま使用したいと思います。
あと、>164で『、「返信不要」のオプション(name="sub2")』と書いてしまいましたが、
正しくは、「返信不要」がname="sub1"で、メッセージがname="sub2"でした。
CGIの仕様で、もともとはメッセージをname="com"として送信するしくみになっているので、
そのへんの順番をいじったため、まぎらわしい文章になってしまいました。
0166nobodyさん
2006/11/30(木) 00:38:52ID:???$QUERY{'com'} .= "<dt>$QUERY{'com'}<\/dt>\n";
でループの中に
$QUERY{'com'} .= "<dd>$QUERY{$wk}<\/dd>\n";
でループの後に
$msg = "<dl>\n$QUERY{'com'}\n<\/dl>";
でどうよ。
0167160
2006/11/30(木) 01:25:36ID:???現在のソースもオリジナルと行番号が同じになっているので、
オリジナル版のソースの行番号を合わせて書きます。
>166
どうもありがとうございます。
「ループの前」というのは、
if($QUERY{$wk} ne ""){}(line69〜)の外側という意味ですよね?
「while($i <= $sub_su){」(line67)と「if($QUERY{$wk} ne ""){」の間に
$QUERY{'com'} .= "<dt>$QUERY{'com'}<\/dt>\n";(>166)を書いてみましたが、
<dt>〜</dt>が何度も出力されてしまいます。
$QUERY{'com'} .= "<dd>$QUERY{$wk}<\/dd>\n";(>166)はline73のそれに置き換え、
$msg = "<dl>\n$QUERY{'com'}\n<\/dl>";(>166)もline79のそれに置き換えてみましたが、
<dd>も同様に、何度も出力されてしまいました。
0168nobodyさん
2006/11/30(木) 01:48:17ID:???ループはそこのwhileだっての。
0169160
2006/12/01(金) 13:53:05ID:???どうもありがとうございます。助かりました。
Proxomitronでグローバル変数の使い方を習っていたので、
それを応用することでとりあえず解決しました。
if($bk_ck == 0){(line65)の中に
$QUERY{'total'} .= "<dt>$QUERY{'com'}<\/dt>"; を挿入し、
その後の$QUERY{'com'}をすべて$QUERY{'total'}に書き換えることで解決しました。
これで問題なければよいのですが…。
0170150
2006/12/03(日) 14:24:33ID:MG/kBdop【配布先URL】 http://www.cj-c.com/ (必須)
【. 置き場所 .】 http://www.cj-c.com/cgi_s/ibbs2001.htm (任意)
【ヘルプ内容】 連続投稿15秒規制機能をつけたいのですが
if(現在の時間 - 最終投稿時間 < 10秒)er{エラー10秒待ってください}
if ($date - $Date{$_} < 15){&er_("<br>連続投稿は禁止です。");}
このようにしたのですが
無理のようです。
わかるかたいたらアドバイスお願いします。
0171nobodyさん
2006/12/03(日) 15:16:25ID:???あとエラー出てるならエラー文書けや
0172170
2006/12/03(日) 18:22:28ID:Ga649VF2それはぼくにいってるんですかね?
10秒規制を付けたいんですが
いつ投稿しても「連続投稿は禁止です。」とでます。
0173nobodyさん
2006/12/03(日) 18:33:18ID:???そんな部分的な変更点(しかも文法がおかしい)だけ見せられてもな
おまえ自身よくわかってなさそうだし、現時点でのソースどこかにupして晒せ
0174170
2006/12/03(日) 19:23:11ID:Ga649VF2こんな感じです。
0175nobodyさん
2006/12/03(日) 19:54:33ID:???0176170
2006/12/03(日) 20:20:18ID:Ga649VF20177nobodyさん
2006/12/03(日) 21:31:55ID:???0178nobodyさん
2006/12/09(土) 20:08:53ID:???【. 置き場所 .】 http://wws.cside.com/cgi-plant/
【ヘルプ内容】
改造するのはkd_diary.cgiです。
1ページの表示と過去ログへの移行を、設定した件数ごとではなく
月ごとにしたい。
しかし・・・私の改造では、翌月の投稿をしても動作しませんでした。
※ちょうど年も変わりますしね。
やってみたのは、このCGI内の
##########################################
# ログデータ書きこみ
##########################################
の部分。
0179178
2006/12/09(土) 20:10:20ID:???if($LOGDATA >= $pagemax) {
$log_data = pop(@LOGDATA);
if($logmax >= 0) {
($l_date,$l_comment,$l_face,$l_weather,$l_color_1,$l_color_2,$l_title,$l_time,$l_min) = split(/<>/,$log_data);
$log_name = $logdir .'/'. substr($l_date,0,4) . substr($l_date,4,2) . '.log';
open(OLD,"$log_name");
@oldLOG = <OLD>;
close(OLD);
unshift(@oldLOG,"$log_data\n");
sort sorter1 @oldLOG;
open(OLD,">> $log_name")|| &error('過去ログファイル/ディレクトリ異常');
print OLD @oldLOG;
close(OLD);
}
}
if($logmax > 0) {
opendir(DIR,"$logdir") || &error('過去ログ格納ディレクトリがありません');
@dirent = grep(/[0-9]+\.log/,readdir(DIR));
@dirent_s = sort(@dirent);
@dirent = reverse(@dirent_s);
closedir(DIR) ;
if($dirent >= $logmax) {
unlink ("$logdir\/$dirent[$dirent]")|| &error("過去ログ($logdir\/$dirent[$dirent])が削除できませんでした");
}
}
0180178
2006/12/09(土) 20:45:46ID:???($l_date,$l_comment,$l_face,$l_weather,$l_color_1,$l_color_2,$l_title,$l_time,$l_min) = split(/<>/,$log_data);
#新規投稿データ↓
($n_date,$n_comment,$n_face,$n_weather,$n_color_1,$n_color_2,$n_title,$n_time,$n_min) = split(/<>/,$line);
#現在のログの月を取得
$olddate = substr($l_date,4,2);
#新規投稿データから月を取得
$newdate = substr($n_date,4,2);
#現在の月より、ログの方が大きかったら・・・。
if($olddate < $newdate){
$log_name = $logdir .'/'. substr($l_date,0,4) . substr($l_date,4,2) . '.log';
open(OLD,"$log_name");
@oldLOG = <OLD>;
close(OLD);
unshift(@oldLOG,"$log_data\n");
sort sorter1 @oldLOG;
open(OLD,">> $log_name")|| &error('過去ログファイル/ディレクトリ異常');
print OLD @oldLOG;
close(OLD);
}elsif($olddate eq '12' && $newdate eq '1'){
0181178
2006/12/09(土) 20:46:16ID:???$log_name = $logdir .'/'. substr($l_date,0,4) . substr($l_date,4,2) . '.log';
open(OLD,"$log_name");
@oldLOG = <OLD>;
close(OLD);
unshift(@oldLOG,"$log_data\n");
sort sorter1 @oldLOG;
open(OLD,">> $log_name")|| &error('過去ログファイル/ディレクトリ異常');
print OLD @oldLOG;
close(OLD);
}
#ここまで
0182178
2006/12/09(土) 20:49:38ID:???>>180+>>181に変えた、ということです。
エラーなどはないのですが、
月が変わったことによる現行ページの更新ができないまま
それまでのログにそのまま追加されてる感じです。
0183nobodyさん
2006/12/24(日) 04:13:24ID:9TMcOB7X【. 置き場所 .】 http://www.big.or.jp/~talk/t-club/soft/mini_r6/index.cgi
【ヘルプ内容】 掲示板への投稿が一定数以上なければ、閲覧することが
できない制限をつけたいのですが、わかりません。
(来訪者の割りに投稿者が少なく、DOMを減らしたいため)
Perlコーディング初心者質問スレ Part 53 ⇒改造スレへ誘導されました。
0184183
2006/12/24(日) 04:14:08ID:9TMcOB7X(書込みルーチンが長すぎて)
##### 投稿数をcookieに保存する #####
&read_cookie# cookie読込(imgboardルーチン)
$post_count = $COOKIE{'imgboard_post'}
$new_post_count = $post_count++;#投稿数を1つ加算する
# 有効期限を30日間に指定
($sec, $min, $hour, $mday, $mon, $year, $wday) = gmtime(time + 60*60*24*30);
@mons = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
$date = sprintf("%s, %02d\-%s\-%04d %02d:%02d:%02d GMT",
$week[$wday], $mday, $mons[$mon], $year+1900, $hour, $min, $sec);
print "Content-type: text/html\n";
print "Set-Cookie: imgboard_post =$new_post_count; expires=$date; \n";
-----------------------------------------------------------
##### 2回以上投稿があれば、掲示板の中身を表示する #####
&read_cookie# cookie読込(imgboardルーチン)
$post_count = $COOKIE{'imgboard_post'}
if ($post_count > 1) {# 2回以上投稿あるとき、
&top_html;# ヘッダ表示(imgboardルーチン)
&output_form_html;# 投稿画面を表示(imgboardルーチン)
&output_html("$file");# 掲示板を表示(imgboardルーチン)
} else {
&top_html;# ヘッダ表示(imgboardルーチン)
&output_form_html;# 投稿画面のみ表示(imgboardルーチン)
}
0185183
2006/12/26(火) 15:44:50ID:p3+/o5740186nobodyさん
2006/12/28(木) 17:03:53ID:6RqsItPR(ただし、Ver.2.27です。最新はVer.3.15)
【ヘルプ内容】 転送アドレスを利用した上でクッキーを有効にしたい。
無料の転送アドレスを取得し、本来のアドレスを隠していますが、
そうするとクッキーが利かなくなってしまいます。
クッキーがリファラを記憶し、照合しているため、転送アドと不一致となり、無効となっているようです。
以下がクッキー関連の処理部分です。
どうかお知恵をお貸しください。
sub get_cookie {
local($cookie_id) = @_;
local %all_cookies = ();
foreach (split(/; /, $ENV{'HTTP_COOKIE'})) {
local($key, $value) = split(/=/);
$all_cookies{"$key"} = $value;
}
foreach (split(/&/, $all_cookies{"$cookie_id"})) {
local ($key, $value) = split(/:/);
$value =~ s/&/&/g;
$value =~ s/</</g;
$value =~ s/>/>/g;
$value =~ s/"/"/g;
$cookie{&unescape($key)} = &unescape($value);
}
return %cookie;
}
0187186
2006/12/28(木) 17:05:58ID:6RqsItPRsub set_cookie {
local(*cookie, $cookie_id, $hold_days) = @_;
if (time() > $cookie{'refresh'} + 60 * 60 * 24 * 30) {
$cookie{'refresh'} = time();
}
local @pairs = ();
foreach (sort keys %cookie) {
push(@pairs, &escape($_) . ':' . &escape($cookie{"$_"}));
}
local $new_cookie = join('&', @pairs);
local $date = &gmt_date(time + 60 * 60 * 24 * $hold_days);
if ($new_cookie ne $all_cookies{"$cookie_id"}) {
print "Set-Cookie: $cookie_id=$new_cookie; expires=$date\n";
}
return;
}
0188nobodyさん
2006/12/29(金) 13:59:16ID:???クッキーは異なるドメインは参照できない。
それに本来のアドレスを隠すといっているが、ばればれ。
とくにフレーム転送とか。
0190nobodyさん
2007/01/03(水) 10:54:46ID:O8K3holw0191nobodyさん
2007/01/05(金) 12:33:37ID:???【配布先URL】 http://www.non-policy.com/customize-box/ansq/#question
元々の配布先 http://www7.big.or.jp/~jawa/
【ヘルプ内容】 Ans.Qの1.40をつかっていたのですが、
書き込みの時間を入れたくて、上記改造版を設置してみたのですが、
コメントがついてもその記事が一番上に移動しません。
どこをどうすればわからなくてこちらに来てしまいました。
元のサイトで配布されていたいた1.4バージョンは自動で移動していました。
よろしくお願いします。
0192nobodyさん
2007/01/06(土) 02:34:41ID:5JmlMvQ+【配布先URL】 http://cgi-lounge.eek.jp/msuboard.php
【ヘルプ内容】 このスクリプト自体がauだけにしか対応していないので、3キャリア
もしくはDoCoMoだけには対応してほしいです。よろしくお願いします。
0193nobodyさん
2007/01/06(土) 03:38:24ID:WO53R+Nq【配布先URL】 http://script.s16.xrea.com/index2.php
【ヘルプ内容】 画像掲示板なのですが、名前とコメントだけでも投稿できるため、
海外からの定期的なスパム投稿で困ってます。
新規投稿には画像添付が必須になるようにお願いします。
0194nobodyさん
2007/01/06(土) 22:49:45ID:lBOtCkKI【配布先URL】 http://www.kent-web.com/
【. 置き場所 .】 http://www.kent-web.com/
【ヘルプ内容】
・投稿する本文に半角カタカナがあったらエラーメッセージを出したい。
・しかし「・」など、カタカナ以外はエラーにならないようにしたい。
本文を一旦EUCにして半角カタカナの有無を判定させるのはググればコードがあったので
以下のように書いてOKでした。
が、「・」が半角の場合までエラーになってしまいます。
カタカナ以外を半角カタカナと認識させないというのは、できないものでしょうか?
&jcode'convert(*message, "euc");
if ($message =~ /\x8E/) {&error("ERROR<br>半角カタカナが含まれています");}
&jcode'convert(*message, "sjis");
0196nobodyさん
2007/01/08(月) 19:16:50ID:RAFN8Ic4【配布先URL】http://apps.cside.com/cgi/counter/txtcntdx/
【. 置き場所 .】http://apps.cside.com/cgi/counter/txtcntdx/
【ヘルプ内容】設定画面で直前のIPアドレスのカウント拒否はできるんですが、
直前ですので、リーロードがあるとまたカウントされたりしてしまいます。
できれば24時間以内に同一IPはカウントをしないなど改造できないでしょうか。
自分では非力でできませんした。
どうかよろしくお願いします。
0197nobodyさん
2007/01/09(火) 21:22:59ID:kjLanKuNここでスパム対策版を配布してる。
ttp://swanbay-web.hp.infoseek.co.jp/index.html
0198nobodyさん
2007/01/10(水) 05:55:31ID:???【配布先URL】http://www.chitta.com/nobu/download/
【. 置き場所 .】http://up.spawn.jp/file/up64354.txt.html
【ヘルプ内容】
<a href="hcnt4.cgi?カウンタ名@ファイルURL">ダウンロード</a>
のように呼び出してカウントさせるダウンロードカウンタです。
ログの閲覧(hcnt4.cgi?パスワード)ページには、カウンタ名とヒット数だけが載ります。
そのログの閲覧ページで、ファイルURLをカウンタ名にリンクさせる形で表示したいのですが、方法が分かりません。
カウンタ名は「$name」、ファイルURLは「$Url」、ヒット数は「$value」になっているみたいなので、単純に
<a href="$Url">$name</a>
としたのですが、設置ディレクトリがリンクされるだけで、ファイルURLをリンクさせる事ができませんでした。
どうすればファイルURLをリンクさせる事ができるのか、アドバイスを頂けないでしょうか。宜しくお願い致します。
※テスト環境ではパスワード($Password)は「1234」としています。
0199nobodyさん
2007/01/10(水) 06:40:46ID:ALgB1HLh0200196
2007/01/12(金) 15:49:54ID:Sg/zwaZY0201nobodyさん
2007/01/15(月) 00:23:08ID:ho2dYuVd【配布先URL】http://www.schwebdesigns.com/serverstatus/
【. 置き場所 .】http://cowboy.jf.land.to/test.html
【ヘルプ内容】
サーバーの状態確認PHPなのですが、現在サイトのトップページに使用しています。
このスクリプトを最終訪問者から10分後に来た訪問者が実行するようにしたいのです。
最終訪問者の時間記録>次の訪問者>時間確認>10分以内ならサーバーに問い合わせず、画像そのまま。
という形に出来ませんでしょうか?
いざ改造しようにも手も足も出ず書き込んだ次第です。宜しくお願いいたします。
0202nobodyさん
2007/01/15(月) 15:33:53ID:???0203201
2007/01/15(月) 18:14:43ID:???丸投げスレに依頼しましたのでそちらの方でお願い致します。
0204198
2007/01/19(金) 22:25:32ID:???0205nobodyさん
2007/01/20(土) 23:53:45ID:???hcnt4.datの中身見れば分かると思うけど、
そのスクリプトはカウンタ名とダウンロード回数しか記録していない。
集計モードではファイルの置き場所が分からないのでそれを表示なんて無理。
どうしてもこのカウンタにこだわるのなら
ダウンロード回数をカウントする際にダウンロード先のURLも合わせて記録するようにすれば
一応おまいのやりたかったことも実現できるけど、
おまいの腕なら改造するよりそういう機能を持った別のCGIを探した方が早いだろう。
0206198
2007/01/21(日) 02:04:43ID:???レスありがとうございます。
>ダウンロード回数をカウントする際にダウンロード先のURLも合わせて記録する
にチャレンジしていたのですが、自力では無理そうです。
私はこのCGIを気に入っていたのですが、変に改造して不具合が出ても困りますし、(今更ですが)別のものを探した方が早いと思うので、諦めて他に乗り換えます。
アドバイスありがとうございました。
0207nobodyさん
2007/01/23(火) 19:05:41ID:???【. CGI名 .】 Web Patio 3.06
【配布先URL】 http://www.kent-web.com/
【ヘルプ内容】
投稿フォームにプルダウン式の項目を追加し、その項目をスレッドタイトル横に表示させたいのですが
どのように改造すれば良いのでしょうか…
配布元のサポートの過去ログに「ラジオボタンで項目追加したい」と言う物があり、(http://www.kent-web.com/support/old/62/0281.html)
それを参考に見よう見真似でプルダウンに置き換えてみたのですが、
初心者な上に、バージョンも違うので何をどこに追加挿入していいかわからなくなってしまいます…
どなたかお力添えお願い致します。
0208nobodyさん
2007/01/23(火) 19:40:59ID:???そこでは何と言われたのかな?
0210nobodyさん
2007/01/23(火) 22:15:16ID:???やっぱり分かりませんでした」と言ったんだよね?
0211207
2007/01/23(火) 22:24:47ID:???また新にスレッドを作成して聞いてみたいと思います><
厳しいご対応ありがとうございました。
ご迷惑お掛けしてしまい申し訳ございませんでした。
0212nobodyさん
2007/01/23(火) 23:14:12ID:???質問の内容は続いてるのに、いちいちスレッド立てられたら禿しくウザイよ。
KENTのサポート板覗いたことないからどういう構造になってんのか知らんけどさ。
0213nobodyさん
2007/01/26(金) 08:18:44ID:FhPFkwLT【配布先URL】 http://www.skullysoft.com/ssc-board/
【ヘルプ内容】 携帯の固体識別番号を取得し、その取得の際通知を拒否した者をはじきたいのですがどうしたら良いでしょうか?ご伝授ください。
0214nobodyさん
2007/01/26(金) 10:47:43ID:???0215nobodyさん
2007/01/26(金) 14:08:16ID:???0216196
2007/01/27(土) 09:14:27ID:0yEfcEBm0217nobodyさん
2007/01/27(土) 15:15:20ID:???0218196
2007/02/02(金) 12:58:55ID:tLR7xhcUやる気だせばタグを追加すればいいだけで簡単でした。
死ね糞ども。
0219nobodyさん
2007/02/03(土) 11:40:42ID:???すが(1000くらい)。
普通に返信数の設定を1000に変えるだけで問題はありませんか?
それともSQLとかデータベースを使ったほうがいいですか?
0220nobodyさん
2007/02/03(土) 11:46:44ID:???まあマジレスするとたかだか1000件程度ならデータベースはいらんと思うけどな。
0221nobodyさん
2007/02/12(月) 19:46:19ID:???複数選択して表示できるようにしたいのですが
アドバイスいただけますでしょうか。
ラジオボタン式からチェックボックス式に変えてみましたが、
当然というか、それだけでは複数表示できませんでしたorz
以下、そのルーチン部分です。
sub icon_select {
unshift(@icon_image,"");
if($icon eq ""){ $icon = $icon_image[0]; }
$sel = "";
foreach $ico (@icon_image) {
if($ico ne ""){ $ico_img = "<img src=\"$icon_dir$ico\" align=\"absmiddle\">"; }else{ $ico_img = "なし"; }
if($ico eq $icon){ $sel .= "| <input type=\"radio\" name=\"icon\" value=\"$ico\" checked>$ico_img \n";}
else{ $sel .= "| <input type=\"radio\" name=\"icon\" value=\"$ico\">$ico_img \n";}
}
$sel .= " |\n";
return $sel;
}
0222nobodyさん
2007/02/12(月) 20:52:26ID:???同じnameで複数の値を送信する用に改造したい場合、
・値を受け取るところで、値を変数に入れている部分を複数の値を配列に入れる改造が必要である。
・アイコンを表示する部分では配列に入った分だけ表示されるように改造する必要がある。
0224nobodyさん
2007/02/21(水) 14:01:46ID:???【配布先URL】 http://blog.tirno.net/e212.html
【.動作サンプル .】 http://www.tirno.net/chat2/chat.cgi
【ヘルプ内容】
TEACHATにpup.cgiを追加したユーザーアップロード形式のアイコンチャットなのですが、
このアイコンが基本的に登録した順にセレクトボックス内に並ぶので、一人で複数とか登録すると
だんだんと探したり入室中に変えたりが遣りづらくなってしまいます。
また、登録時にパスを設けた専用アイコンは、また別に並ぶので、
「登録アイコン」「専用アイコン」それぞれを名前昇順で自動的にソートするようにしたいです。
0225nobodyさん
2007/02/21(水) 14:05:25ID:???関係部分はこんな感じです。(html.plの590〜672行あたり)
if(@iconu1){
$facemark = $facemark."<optgroup label=\"〜登録アイコン〜\">";
}
foreach (0 .. $#iconu1){
$icon_value = $icon_url . "\/" . $iconu1[$_];
if (!$icon) { $icon = $icon_value; }
if ($icon eq $icon_value) {
$iconch = " selected";
} else {
$iconch = "";
}
$facemark = $facemark."<option value=\"$icon_value\"$iconch>$iconv1[$_]\n";
}
if(@iconu1){
$facemark = $facemark."</optgroup>\n";
自分でも色々遣ってみたのですが配列が二重だからか、
ソート関数の使い方が今ひとつ要領を得なかったので此方で質問させていただきました。
宜しければどなたかご教授願えませんでしょうか?
0226nobodyさん
2007/03/02(金) 01:24:23ID:???このスクリプトで、ログファイルへのデータ追加時に
現在の年日時を取得して
2007/2/18 20:09
のような形式で行の末端に自動的に書き込むようにしたいのですが、
どの部分にどのような処理を加えれば良いでしょうか?
0227nobodyさん
2007/03/04(日) 21:22:44ID:???0228nobodyさん
2007/03/10(土) 17:08:20ID:???open(DATA,'| /usr/sbin/sendmail -t "[email protected]"');
これなら通るのですが
$mlto="[email protected]";
open(DATA , '| /usr/sbin/sendmail -t $mlto');
これだと通らないで困っています。
目的はログイン制CGI内部でメンバの特定人物指定によるメッセージ機能で
メッセージが入るとmsnメッセンジャーや携帯メールにお知らせするためのものです
サーバーは個人運営してるところでお借りしているのですがそちらに問い合わせる
前にこちらで相談してからと思いました。基礎を知らないものですみません。
アドバイスがあればよろしくお願いいたします。
0229nobodyさん
2007/03/10(土) 18:29:56ID:???0230228
2007/03/10(土) 22:32:41ID:???そうでした。忘れてました。ご指摘ありがとうざいます。
ダブルクォートで試してみましたがダメでした。
open(DATA , "|$mailer -t $mlto");も検索して見つけた次行
open(DATA , "|$mailer -t '$mlto'");もダメでした。
open(DATA , "|$mailer -t");print・・・; print DATA "To :$mlto";もダメでした。
一応一通り試してみたのですが自分では解決できそうにありません。
なにかアドバイスがあればよろしくお願いいたします。
0232228
2007/03/11(日) 00:10:26ID:???言われる前に一通り試したのですがダメだったので相談しにきたのですが
止めろと言われるなら素直に借りてるサーバの管理者に相談します。
ありがとうございました。
0233nobodyさん
2007/03/12(月) 19:01:30ID:D70wnXmo【配布先URL】 http://perl.toshinari.net/cgi/bbs/new2ch/index2.html
【ヘルプ内容】 PC版の場合、アドレスがttp://homepage/ID/(ttp://homepage/test/read.cgi/ID/)となるんですが
携帯のアドレスはttp://homepage/test/mread.cgi/ID/でしかアクセスできません
ttp://homepage/ID/i/でアクセスできる様にしたいのでお願いします
0234nobodyさん
2007/03/12(月) 21:45:30ID:???【配布先URL】http://www.kent-web.com/bbs/sunbbs.html
【ヘルプ内容】携帯には対応してはいませんが、文字サイズを小さくしたりして
一応携帯からも表示できるようにしました。
そこで、携帯から書き込みをした時に機種名を表示させたいのですが、
とりあえず時間取得の変数に混ぜて表示させてました。
日時のあとに DoCoMo/2.0 N903i(c100;TB;W24H12) このように表示されるのですが、
このN903iの部分だけ表示させるにはどうしたらよいでしょうか?
改造した部分も書いたほうがいいでしょうか?
0235nobodyさん
2007/03/13(火) 09:00:16ID:???そこまでできたならperl板行った方が…
正規表現で
^DoCoMo.* (.*)\(.+$
で\\1をとればいいんじゃないかな。
0236nobodyさん
2007/03/13(火) 13:23:35ID:???【配布先URL】 ttp://www.din.or.jp/~raelian/ReadMeNicky.html
【ヘルプ内容】
同日に記事を二つ以上作成すると、デフォルトでは後に作成したほうが上に来ます。
それを後に作成したほうを前に作成した記事の下に来るようにしたいです。
よろしくお願いします。
0237nobodyさん
2007/03/13(火) 17:28:48ID:???ありがとうございます。
web製作板から誘導されてきたもので。
箇所を書きます。できればここにその形で修正を施してくれればありがたいです。
0238nobodyさん
2007/03/13(火) 17:29:36ID:???# 時間取得
#-------------------------------------------------
sub get_time {
local($date,@week);
$ENV{'TZ'} = "JST-9";
local($min,$hour,$mday,$mon,$year,$wday) = (localtime(time))[1..6];
@week = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
# 日時のフォーマット
if ($whatsnew) {
$date = sprintf("%04d-%02d-%02d (%s)",
$year+1900,$mon+1,$mday,$week[$wday]);
} else {
$date = sprintf("%04d/%02d/%02d(%s) %02d:%02d",
$year+1900,$mon+1,$mday,$week[$wday],$hour,$min);
# UA記録
my $ua = $ENV{'HTTP_USER_AGENT'};
if ($ua =~ /^L-mode/) {
$ua = 'L-mode';
} elsif ($ua =~ /^Mozilla/){
$ua = 'PC';
}
$date .= " $ua";
# UA記録終了
}
$date;}
0239nobodyさん
2007/03/13(火) 17:31:08ID:???正直今までプログラミングやったことがないので、何度もコピペしたりテストしたりして
と、まるっきり初心者です。
何度も携帯機種表示は試したのですがまるっきり。
もしあれならばperl板に誘導していただければ。
0240nobodyさん
2007/03/14(水) 09:16:53ID:???if ($ua =~ /^L-mode/) {
$ua = 'L-mode';
} elsif ($ua =~ /^Mozilla/){
$ua = 'PC';
} elsif ($ua =~ /^DoCoMo.* (.*)\(.+$/) {
$ua = $1;
}
0242236
2007/03/16(金) 04:59:07ID:???0243nobodyさん
2007/03/21(水) 15:25:47ID:???http://www.groo-web.com/jewel.html
この掲示板に禁止ワード設定を組み込みたいんですが、
jewel(改)
http://xxxw007.s12.xrea.com/cgi/merutomo.htm
を見て、CGI本体の中に入れてもどうしてもエラーになってします。
あちこちの掲示板CGIを落として見て、jewelCGI本体の中に入れてもエラー。
どうカスタマイズしたら禁止ワード設定を組み込めるでしょうか?
初心者ですが、jeweはなんとか設置できました。.htaccecsもできた。
あーとーはー禁止ワードだーけー・・・orz
なんとか、教えて下さい。お願いします。
0244243
2007/03/21(水) 16:25:13ID:TD8dcTEz#例 ('死ね','淫乱','援助交際','docomo')
#新規登録時の名前 タイトル メッセージ ホストに適用。
@input_deny = ('死ね','','');
##--禁止ワードチェック--##
foreach (@input_deny) {
if ($in{'name'} =~ /$_/i) { &error("名前に禁止ワードが含まれています。"); }
if ($in{'title'} =~ /$_/i) { &error("タイトルに禁止ワードが含まれています。"); }
if ($in{'comment'} =~ /$_/i) { &error("メッセージに禁止ワードが含まれています。"); }
}
これを追加するとエラーになってしまうのです。
何か足りないのでしょうか?
0245243
2007/03/21(水) 16:30:54ID:TD8dcTEz# 設定した文字列が名前かメッセージに含まれる場合、投稿できません
# 必要ない場合は()
@deny_words = ("アダルト","エロ");
foreach $d_words (@deny_words) {if ($title =~ /$d_words/i) {&error("名前に投稿できない言葉が含まれています");} }
foreach $d_words (@deny_words) {if ($message =~ /$d_words/i) {&error("メッセージに投稿できない言葉が含まれています");} }
これは違うスクリプトですが、
これだけでもできますか??
0246nobodyさん
2007/03/21(水) 17:32:36ID:???マルチポストしてんじゃねーよ
市ねよクズ
http://pc11.2ch.net/test/read.cgi/hp/1166794984/455
http://pc11.2ch.net/test/read.cgi/php/1157787046/403
0247243
2007/03/21(水) 17:38:39ID:TD8dcTEz#####イタズラ投稿防止設定
# リモートホスト(またはIPアドレス)での投稿拒否
#ppp123.abc.or.jp などの場合は、数字の部分がアクセスのたびに異なるので
#数字の部分を .* (ピリオド+アスタリスク)に置き換えます。
#@deny = ('ppp.*.abc.or.jp','web.net'); #などと設定します。
@deny = ();
# 投稿記事内容にふさわしくない語句の禁止
# @word = ('セックス','エッチ','スカトロ','test', 'あああ','馬鹿');#などと設定。
@word = ();
#投稿拒否
sub deny {
foreach (@deny) {
if ( $host =~/$_/ ){ &error(1,"あなたの投稿は許可されてません。"); }
}
}
#禁止ワードチェック
sub wordcheck {
local($string) = $_[0];local($line);
foreach $line(@word) {
if (index($string,$line) >= 0) {
&error(1,"$line<BR>使用禁止の文字が使われているようです。");
}
}
これでは?
0248243
2007/03/21(水) 18:30:09ID:TD8dcTEzうー、ページがエラーにならず書き込みができたのは以下だけですが、
禁止設定が働かない。何が足りないのでしょうか??
#■投稿禁止ワード ""で囲って記入 複数設定する場合は『,』で区切ってください
# 設定した文字列が名前かメッセージに含まれる場合、投稿できません
# 必要ない場合は()
@deny_words = ("アダルト","エロ");
foreach $d_words (@deny_words) {if ($title =~ /$d_words/i) {&error("タイトル名前に投稿できない言葉が含まれています");} }
foreach $d_words (@deny_words) {if ($comment =~ /$d_words/i) {&error("メッセージに投稿できない言葉が含まれています");} }
もう寸前まで出来てる気がする・・・
0250243
2007/03/21(水) 19:30:00ID:TD8dcTEz鯖のログには何も。。掲示板のエラーログはありません。
やはり無理なのかな・・・orz
ランキング2つ、掲示板1つをムーバブル・タイプの中に設置、
ベーシック認証も設置できたのに、このカスタマイズで初挫折。
やはりカスタマイズは難しいですね。
ちなみに、CGIも巡り会って1週間の初心者です。
0252nobodyさん
2007/03/22(木) 17:29:14ID:ZUn5Ffec糞スレ終了だなwww
■ このスレッドは過去ログ倉庫に格納されています