トップページ⇒php
705コメント334KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/03/32(土) 04:52:20ID:WJnup8Dd
#================================
# スレッドの説明
#================================

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

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

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

※答えてくれないからといって逆ギレする厨はお断り
0367nobodyさん2008/09/21(日) 01:27:40ID:???
>>366
配布元の制限を読むと、あなたが配布元に連絡していない場合、
今回のアップロードは「スクリプトの無断再配布」に当たり、
同サイトの提示するライセンスに抵触する可能性があります。
権利関係を再確認してください。
0368nobodyさん2008/09/26(金) 20:08:56ID:ze4UkUPR
【.  CGI名  .】toshinariスクリプト(Perl)
【配布先URL】http://www.toshinari.net/
【ヘルプ内容】
としなり掲示板にリモートホスト、IPを取得できるように改造してください。
できれば/BBSID/log/00000.cgi
みたいに掲示板IDディレクトリに新しくlogディレクトリを作成してcgiファイルで保存するようにして
それでレス削除画面にリモートホスト、IPを表示させるようにしてくれるといいです。
あと、ここからは希望ですが
リモートホスト(IP)規制機能と透明あぼーん機能をつけてください。
報酬はリモートホスト、IP取得が500P
リモートホスト(IP)規制機能、透明あぼーんまで追加してくださったら+500P払います
0369nobodyさん2008/09/26(金) 20:33:39ID:???
Pって何やねん
03703682008/09/26(金) 20:35:04ID:ze4UkUPR
>>368
すいません、書き忘れてました
ウェブマネーのことです。
03713682008/09/26(金) 20:36:50ID:ze4UkUPR
安価ミス・・・
>>368じゃなくて>>369
0372nobodyさん2008/09/26(金) 20:52:29ID:???
ケチくさいにもほどがあるな
0373nobodyさん2008/09/27(土) 00:18:26ID:???
>>368
「ここからは希望」ってあるがじゃあその前は何なんだ
0374nobodyさん2008/09/27(土) 04:01:31ID:???
ま、>>1嫁
03753682008/09/27(土) 07:15:06ID:DmLoG2K4
すいません。書き直します
ダウンロード場所:http://cgi.toshinari.net/wiki.cgi
スクリプト名:toshinariスクリプト
どんな風に改造するか:
としなり掲示板にリモートホスト、IPを取得できるように改造してください。
/BBSID/log/00000.cgiという感じにlogディレクトリにcgiファイルで保存するようにしてほしいです。
報酬はWM1000Pです。
これからは希望ですが
IP規制と透明あぼーんもつけてもらえれば幸いです。
0376nobodyさん2008/09/27(土) 07:49:04ID:???
>>375
で、どこまでやったのさ?
自分で全然やる気ないなら丸投げスレへ行け
03773682008/09/27(土) 16:52:29ID:DmLoG2K4
>>376
どこまでやったというと?
がんばってもできないから改造依頼したんですが・・・
あと、dat落ちしていない丸投げスレのURL教えてください。
0378nobodyさん2008/09/27(土) 16:53:18ID:???
これはひどい
03793682008/09/27(土) 19:14:47ID:DmLoG2K4
なんとか自分でできそうです
03803682008/09/27(土) 19:25:04ID:DmLoG2K4
なんとかできました
0381nobodyさん2008/09/29(月) 07:51:32ID:???
>>380
自分で出来んならくんなよ
0382nobodyさん2008/09/29(月) 08:50:14ID:???
関連スレ
【 スクリプト改造依頼スレ】(丸投げ) part7再々
http://pc11.2ch.net/test/read.cgi/php/1222645553/
0383nobodyさん2008/09/29(月) 09:02:12ID:???
丸投げスレがまた即死したので立てときました。
こっち(工房)にまとめようという意見もあるようですが、一種の隔離スレみたいな
意味合いもあると思うので、やっぱあった方がいいかと……
0384YwSCdaoYJixVIpCijR2008/10/03(金) 04:13:35ID:???
hi, you have super site.,
0385nobodyさん2008/10/04(土) 02:06:40ID:???
【.  CGI名  .】 ショッピングカート WebCart 2.3x
【配布先URL】 http://www.cgis.biz/script_web_cart/
【ヘルプ内容】 
サンプルを見ていただくとわかると思いますが、商品の並び順が新しい番号が
上にくるようになっています。
これをNO.1から表示するようにしたいのですが、どこを改造すればよいか
ご教授ください。

私が見た中で、ここかな?と思ったのは、view.phpの153〜154行目と思ってい
ますが、どうでしょうか。
0386nobodyさん2008/10/04(土) 02:07:50ID:???
じゃやれよ
0387nobodyさん2008/10/04(土) 02:16:49ID:???
>>386
じゃやれよって言われても…どう変えればいいのかわからないから聞いているの
ですが?
自分でできそうだったらすでにやってますが、場所が見当ついても、何を変えれ
ばいいのかわからず、作者さんもお忙しいとお聞きしましたので、ここで聞いて
みたのですが…。
0388nobodyさん2008/10/04(土) 02:24:39ID:???
分からないなりに当たりつけてやってみなよ
まさか100%何も見当付かないってことはあるめえ?
0389nobodyさん2008/10/04(土) 04:39:31ID:???
言語がわからんってことなら丸投げいけば?
03903852008/10/05(日) 11:16:52ID:???
丸投げスレにて教えてもらいました。
誘導ありがとうございましたm(_ _)m
0391nobodyさん2008/10/05(日) 18:39:28ID:???
回答もらってからこっちを終わらせるとかほんと悪質だなw
0392nobodyさん2008/10/07(火) 23:59:17ID:Zxtb1+eC
>>899
ありがとうございます
0393nobodyさん2008/10/27(月) 20:40:50ID:vjLKC+JQ
【CGI名】スレ天
【場所】http://cgipon.specters.net/tengoku/download.html
【ヘルプ】トリップつけれるようにしたい
ググったらそれらしいのはなんぼかみつかったけど
入れる場所とかわかりません。
ご教授よろしくおねがいします。

★ ワンポイント
2chのトリップ生成方法は以下のようになっています。
($name, $tripkey) = split(/\#(.+)/, $form{'name'});
if($tripkey){
$salt = substr($tripkey.'H.', 1, 2);
$salt =~ tr/\x3A-\x40\x5B-\x60\x00-\x2D\x7B-\xFF/A-Ga-f./;
$salt =~ s/[^\.\/0-9A-Za-z]/\./g;
$trip = '◆'. substr(crypt($tripkey, $salt), -10);
}
print "$name$trip";
0394nobodyさん2008/10/27(月) 20:42:05ID:vjLKC+JQ
書き込み処理直前、クッキー発行後
<ここから>
#トリップ機能
$in{'name'} =~ s/◆/◇/g;
$in{'name'} =~ s/\x23(.+)$/ "◆".trip($1)/e;
</ここまで>

#----------------#
# トリップ生成 #
#----------------#
sub trip {
my $key = shift;
$key =~ s/"/"/g;
$key =~ s/</</g;
$key =~ s/>/>/g;
my $salt = substr("${key}H.", 1, 2);
$salt =~ tr/\x00-\x2d\x7b-\xff/./;
$salt =~ tr/\x3a-\x40\x5b-\x60/A-Ga-f/;
return substr(crypt($key, $salt), -8);
0395nobodyさん2008/11/29(土) 15:46:24ID:kT4OjumG
【.  CGI名  .】 RNA pre2.0b2 (build 051225)
【配布先URL】 http://web.archive.org/web/20080207152240/http://foaf.jp/~msano/rnanightly_with_extlib.tar.gz (少し重いですが、DLできます。783kbです。)

【ドキュメント】http://web.archive.org/web/20070217110104/www.semblog.org/wiki/index.cgi?RNA%c0%e2%cc%c0%bd%f1(nightly%c8%c7)

【ヘルプ内容】
# スクリプト紹介
・RNA は、Webサーバ上で動作する、RSSアグリゲータの一種です。
 Perl/CGI で実装されています。
 Web上のいろいろなサイトの更新情報を収集するアンテナとしての機能が主です。
・http://www.semblog.org/wiki/?rnaで配布されてるスクリプトの開発版です。
・開発はストップしてます
・http://isnot.jp/?p=RNA%A5%E1%A5%E2 にも、スクリプトの処理の流れが書いてあります。
 (Perlがわかるかたにはスクリプトを見たほうが早いかもしれませんが)

# したいこと
・楽天ブログのRSS等、RSS内に入ってる広告を除去したいです
 具体的には、"PR:"で始まってるitemを除去したいです
03963952008/11/29(土) 15:48:00ID:???
# やってみたこと、考えたこと
・lib/RNA.pmの800行目付近、cacheしたサイトのデータをStoreして、sortする前あたりで
 除去したらいいのかなと思ってます

$self->__cache_sites($new_cache_data);
$self->{SiteList}->{RSSArray} = \@rss_array;
unless($config->{DateControl}->{AllowFutureEntries}) {
$self->remove_future_entries;
}

$self->remove_ads; # この辺り?
03973952008/11/29(土) 15:48:35ID:???
・lib/RNA/RSS.pmの remove_future_itemsを参考に見よう見まねで書いてみたりもしましたが、
 「titleが "PR:" で始まってるitemを除去する」という書き方がわかりませんでした

sub remove_ads
{
my $self = shift;
my %arg = @_;

my @new_items = ();
foreach my $item (@{$self->{items}}) {
if (index($item->{title}, "PR:") < 0) {
push(@new_items, $item);
}
}
$self->{items} = \@new_items;
}


・処理するタイミングも間違ってるかもしれません
・できれば今後のために、除去するitemの指定方法に汎用性を持たせていただけるとなお嬉しいです

以上よろしくお願いします
0398nobodyさん2008/12/12(金) 23:58:00ID:A0lF4mOo
【 スクリプト改造依頼スレ】(丸投げ)のほうで投稿したのですが、
投稿した後にこちらのスレで質問したほうがいいという書き込みを見つけたので
同じ内容のものを投稿します。

【 CGI&PHP名 】 CSS Yomi-Search(Yomi-Search改造版)
【 配布先URL 】 ttp://www.w-art.org/
【 依頼内容 】 マーク順設定で検索したとき、ログの並び順を更新日の新しい順にしたい

現在ログをマーク順で表示させています。
デフォルトではIDの新しい順で並ぶようになっていますが、
↓の方法で更新日の新しい順に並ぶようにしました。
http://web.archive.org/web/20041222074129/yomi.pekori.to/bbs2/wwwlng.cgi?print+200205/02050051.txt
しかし、検索した時にログの表示が変になってしまいます。
上記のアドレス先にも検索した時の表示の対処法が書いてあるのですが、
その通りにやってみると並び順はきちんとなるのですが、同じログが2つ表示されてしまいます。

よろしくお願いします。
0399nobodyさん2008/12/13(土) 00:13:50ID:???
で、向こうは書きっぱなしで放置逃亡ですか
ならマルチは死ねとしか
0400nobodyさん2008/12/13(土) 00:28:02ID:fT/e8zoW
398です。
すいません。
何度か書き込みをしたことはあるのですが、
削除はしたことがなかったのでその辺を何も考えてませんでした。
えと、削除依頼を出せばいいのかな・・ガイドライン読んできます。
0401nobodyさん2008/12/13(土) 04:59:44ID:???
>>400
削除依頼じゃなくてさ、このスレに移動しますって書けばおk
0402nobodyさん2008/12/13(土) 09:48:56ID:fT/e8zoW
>>401
教えて下さってありがとうございます。
向こうのスレに書き込んできました。
以後気をつけます。
0403nobodyさん2008/12/13(土) 20:10:29ID:???
>>402
で、このスレは丸投げじゃないんだから自分で出来るところまでやるってのが第一歩。
0404nobodyさん2009/01/30(金) 15:25:22ID:Mp+dTJwq
【.  CGI名  .】 phpexit ver.1.1.4
【配布先URL】 http://chibinowa.net/
【. 置き場所 .】 http://chibinowa.net/webapp/phpexit.html
【ヘルプ内容】

 項目の追加をお願いします。
 配布先にスクリーンショット画面がありますが、
 一覧部分の「webplog>perl」の部分(カテゴリの部分)の上部に、2件の項目を追加したく思っています。
 追加項目の内容は、1件はテキストエリア、2件目はコメント欄と同じくらいの文章です。

 個人で、テキストエリアの追加は出来たのですが、肝心の一覧にその部分が表示されず、行き詰っています。

 lib/cmd/edit.php、item.php などを弄ってあります。
色々修正してみたり、記述を変えてみましたが、増やした項目部分を登録すると増やしたコメント欄とテキストエリアが同じ内容になってしまったりします。

 1度自己解決したのですが、上記問題が出てしまいましたので、どうかご助言お願い致します。
0405nobodyさん2009/01/30(金) 23:11:27ID:???
コメント欄とテキストエリアで出力している変数を別にすればいいのでわ?
0406nobodyさん2009/02/04(水) 05:16:41ID:???
【.  CGI名  .】 0chスクリプト
【配布先URL】 http://0ch.mine.nu/public/scripts/ 0chのtest060227.zip
【ヘルプ内容】
0chのtest060227.zipを使用して掲示板を運営しています。
スレッド一覧( ./subback.html )にもmeta.txtの内容を書き込もうと思い
いろいろ弄ってなんとか形になりました。※meta.txtは掲示板を作って自分で書き込めます。
しかし、これでよいのかどうか自信がもてないため質問します。

varda.plの191
sub CreateSubback{ } 内に

require('./module/legolas.pl');
$Caption = new LEGOLAS;
META($this,$Index,$Caption);

151# HTMLヘッダの出力
$Caption->Print($Page,undef);

他に
sub META{
 my ($this,$Page,$Caption) = @_;
 my ($title,$link,$image,$code);
 $Caption->Load($this->{'SYS'},'META');
}


ミスはないでしょうか?
0407nobodyさん2009/02/04(水) 19:33:07ID:???
レンタル鯖にてメール送信CGIを設置したくPerlで継ぎはぎしてやってみたんですが、
メールは送信されるのですが、件名とメアドまで本文の方に来てしまって、
件名が(無題)で送信者がanonymousになってしまいます。
どうやったら件名とメアドを認識してくれるのでしょうか?
HTMLの入力フォームは、名前、メアド、件名、本文の4つだけです。
04084042009/02/04(水) 19:36:06ID:KFPddoVr
>>405
解答ありがとうございました。頑張ってみます!
0409nobodyさん2009/02/04(水) 19:36:17ID:???
ソースをさらせばいい
↓そのソースじゃねーYO!
0410nobodyさん2009/02/04(水) 20:04:10ID:???
>>409
ソースさらします。Perl知らないんでこれが限界っす・・・。
#!/usr/bin/perl
$mailprog = '/usr/sbin/sendmail';
require 'jcode.pl';
#Get the input
read (STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

#Split the name-value pairs
@pairs = split (/&/,$buffer);

foreach $pair(@pairs) {
($name, $value) = split(/=/, $pair);
#Un-Webify plus signs and %-encoding
$value=~tr/+/ /;
$value=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;

$FORM{$name} = $value;
if ( $name ne "to" ) {
push (@fields, $name) unless (grep(/^$name$/, @fields));
}
}
# set recipient address if form is blank
$to = $FORM{'to'};
0411nobodyさん2009/02/04(水) 20:04:56ID:???
続きです。

### 送信フォーマット
$mail_msg = "";
foreach $field (@fields) {
$mail_msg = "$mail_msg-----------------------------------------------\n";
$mail_msg = "$mail_msg($field) $FORM{$field}\n";
}
### ShiftJis to Jis
&jcode'convert(*mail_msg, 'jis');
open(MAIL,"| $mailprog $FORM{'to'}")|| die "Can't open $mailprog!\n";
print MAIL $mail_msg;
close(MAIL);
0412nobodyさん2009/02/04(水) 20:12:33ID:???
メールヘッダがないではないか?
0413nobodyさん2009/02/04(水) 23:10:20ID:???
>>410
まず、スクリプトの先頭に use strict; use warnings; と書いて。
0414nobodyさん2009/02/05(木) 15:06:41ID:0clwaODI
【. CGI名 .】美しい画像掲示板
【配布先URL】ttp://w1.nirai.ne.jp/freeze/appli/file06.html
【ヘルプ内容】
・ファイルサイズを800000にしたい
if($filesize <= 100000){
ここを変更するだけでは下記の行がエラーで上手く表示されません

$a_num = $size_w/($a_w+$b_w*$a_h/$b_h+$c_w*$a_h/$c_h+$d_w*$a_h/$d_h+$e_w*$a_h/$e_h);


・画像がない場合の表示
行に画像が1枠しかない場合、残り4枠に'image.jpg' の画像が
表示されるはずが1枠にしか表示されません


どうか力を貸して下さい
0415nobodyさん2009/02/05(木) 15:17:02ID:???
エラーでメッセージが出ずに行がそのまま出るの?
04164142009/02/05(木) 16:05:49ID:???
>>415
ファイル名 oo.jpg アップロード成功!
Warning: Division by zero in bbs.php on line 197

と出て、その行(表示させるテーブル)が凝縮されて画像は表示されません。
0417nobodyさん2009/02/06(金) 02:28:34ID:???
じゃもう問題分かったようなもんじゃん
04184142009/02/06(金) 22:45:19ID:???
>>417
if($filesize <= 100000)をif($filesize <= 800000)に変えるとなぜ
$a_num = $size_w/($a_w+$b_w*$a_h/$b_h+$c_w*$a_h/$c_h+$d_w*$a_h/$d_h+$e_w*$a_h/$e_h);
がエラーを起こすのか理解できていないので解決できません
0419nobodyさん2009/02/06(金) 22:45:51ID:???
いや検証して理解すれよ
0420nobodyさん2009/02/06(金) 23:33:26ID:???
糞スクリプト過ぎるな。
とりあえずその行の直前ででも関係する変数を適当に出力してみれ。
ゼロ除算なのだから、割る数のうちいずれかが0になっている。
値がおかしい変数が見つかったら、その変数に値を設定している部分を全部洗い出して、どういう風に値が変わっていくか調べろ。
04214202009/02/07(土) 01:08:19ID:???
配布CGIが糞なのは今に始まった事じゃないから諦めて整理しつつ読んだ。
問題はその変更じゃないな。変な画像が混ざってるんじゃねぇか?
データはそのままで改造前のスクリプトを設置したらちゃんと動くのか?
04224142009/02/07(土) 13:19:00ID:???
>>421
アップして表示するのに関しては正常に動きます

画像がない場合の表示はダメです

理想      現実
■□□□□   ■××××

■アップした画像
□画像がない場合に表示する画像
×イメージがない
0423nobodyさん2009/02/07(土) 13:42:18ID:???
表示してみなよ
$a_num = $size_w/($a_w+$b_w*$a_h/$b_h+$c_w*$a_h/$c_h+$d_w*$a_h/$d_h+$e_w*$a_h/$e_h);
の直前に
print "Content-type: text/plain\n\n$a_num = $size_w/($a_w+$b_w*$a_h/$b_h+$c_w*$a_h/$c_h+$d_w*$a_h/$d_h+$e_w*$a_h/$e_h);\n";
exit;
みたいに書いてさ・・
04244142009/02/07(土) 14:58:22ID:???
>>423
ありがとう。テーブルの幅を変えているからダメなんでしょうか?

何かやればやるほど色んな不具合が見つかり心が折れそうです
これは止めておいた方がいいスクリプトですかね( ^ω^)
0425nobodyさん2009/02/07(土) 17:41:10ID:???
いや言われたことやれよ・・・
0426nobodyさん2009/02/07(土) 18:01:23ID:???
まあ、問題の切り分けをしようとも考えない>414にはお似合いのレベルだけどな。
image.jpgがスクリプトと同じディレクトリに無いだけ、に一票。
どう見えるかなんざ枝葉末節の問題に過ぎないんだから、HTMLソースどうなってるのか確認しろよ。
0427nobodyさん2009/02/07(土) 18:40:53ID:???
設置することが最終目標の人たちに対して、
デバッグの仕方教えても仕方ないような気がしてきた。
0428nobodyさん2009/02/07(土) 18:44:15ID:???
じゃ改造スレじゃなくて丸投げスレ行けと
04294142009/02/07(土) 19:01:15ID:???
>>425
テーブル幅・ファイルサイズを変えて色々試しました

ファイルサイズが関係無い事はわかったのですが
何がいけないかわからなかったです

>>426
422の現実は下記の間違いでした
■□×××
0430nobodyさん2009/02/07(土) 19:47:38ID:???
>423
>表示してみなよ
>表示してみなよ
>表示してみなよ

>426
>HTMLソースどうなってるのか確認しろよ。
>HTMLソースどうなってるのか確認しろよ。
>HTMLソースどうなってるのか確認しろよ。

(日本語が分からないようなので3回言いました)
0431nobodyさん2009/02/07(土) 20:07:27ID:???
>>428
丸投げスレとかあるのかw
04324142009/02/07(土) 21:09:57ID:???
>>430
表示された式をレスすれば解決してくれるの?

ソースを確認と言われても414のサイトにあるソースの
ファイルサイズとテーブル幅以外は変更してないので
確認して貰えれば助かるのですが?
0433nobodyさん2009/02/07(土) 21:11:49ID:???
>>432
こちらのスレでどうぞ
http://pc11.2ch.net/test/read.cgi/php/1158647441/
0434nobodyさん2009/02/08(日) 07:11:28ID:???
$bosyu の値が1ならば、登録フォームを表示させる。
0ならば、登録フォームを表示させない。
1か0かは、管理人用ページから設定することができる。 という感じでPerlを組みたいのですが、
まだまだ初心者でよく分かりません。
一応、
<input type=radio name=bosyu value=1>表示する
<input type=radio name=bosyu value=0>表示しない
というフォームを作り、登録フォームの表示部分に、
if ( $bosyu == 1 ){
 #登録フォーム
}
else {}
というようにしました。
しかし、管理人画面から1にしようが0にしようが、登録フォームはどのみち消えてしまいました。
この場合、どうしたらよいのでしょう?

もしよろしければ、
http://www.77c.org/d.php?f=nk5918.lzh
に本体をアップロードしましたので、修正箇所など教えていただけますと助かります。
私自身が追加しましたのは、行381,行382,行678,行683,行684 になります。
0435nobodyさん2009/02/08(日) 07:13:19ID:???
ごめんなさい、忘れていました。

【.  CGI名  .】 Annevote Ver0.791
【配布先URL】 http://tackysroom.com/
【. 置き場所 .】 http://tackysroom.com/cgi_annevote.htm
【ヘルプ内容】
>>434
0436nobodyさん2009/02/08(日) 09:39:47ID:???
>>434
スクリプトを全部見る気はないんで間違っているかもしれんが

684行
    else {}
→不要

678行
    if ( bosyu == 1 ){
→if ( $FORM{'bosyu'} == 1 ){
04374362009/02/08(日) 10:47:01ID:???
あはw
>>436は間違ってるわw
設定を別ファイルとかに記録しておかないとダメ!! ゛o(≧◇≦*)oo(*≧◇≦)o″ダメ!!じゃんw


考え方としては
&decode ;の後に
$FORM{'bosyu'}の値が「表示しない」なら別ファイルとかに表示しないという記録をして
$FORM{'bosyu'}の値が「表示する」なら別ファイルとかに表示するという記録をする

678行目のif文では、別ファイルとかに表示するという記録があるかないかで分岐させればいい
0438nobodyさん2009/02/08(日) 11:47:45ID:???
>>437 さん
ありがとうございます。
大体構造は理解できました。
if文で変数に値を入力する為には、「記録する」という別の処理が必要なのですね。
まことにお恥ずかしい話ですが、記録させるソースの書き方が分かりません・・・
例として、記録させるためのソースを教えていただけませんか?
(プログラム内容に沿っていなくても構いません。全体的に「どんな感じ」で書けばいいのか掴めれば幸いです。)
0439nobodyさん2009/02/08(日) 15:15:31ID:???
>>438
考え方は排他制御を参考にすればいい
$FORM{'bosyu'}の値が「表示しない」ならロックファイルみたいなものを作成し、
$FORM{'bosyu'}の値が「表示する」ならロックファイルみたいなものを削除する
if文はロックファイルみたいなものが存在していなかったらブロックを実行すればよい

annevote.cgiにもロックファイルが使われているからソースをよく読んで自分考えれ
0440nobodyさん2009/02/12(木) 16:19:46ID:KnJ40Ap9
【.  CGI名  .】 favicon.cgi
【配布先URL】 http://blog.dtpwiki.jp/dtp/2009/02/favicon-api-api.html
【ヘルプ内容】 O_SHLOCKとO_EXLOCKが使えないサーバでロック処理をしたい

上記スクリプトをcoreserverに設置し、
http://MYDOMAIN.com/test/favicon.cgi/http://www.yahoo.co.jp/ などとして呼び出した結果、

Software error:
Your vendor has not defined Fcntl macro O_SHLOCK, used at /virtual/MYDOMAIN/public_html/test/favicon.cgi line 97.

とエラーが出ます。
O_SHLOCKを削除してテストを続行すると、次はO_EXLOCKが使えないとのエラー。
coreserverのOSがLinuxなので使えないようです。
http://www.coreserver.jp/help/index.php/spec/

エラーが出る部分を、Linuxで使えるロック処理にするにはどうすればいいのか、
どうぞご教示ください。
04414402009/02/13(金) 10:24:19ID:???
>>440の件、
flockでなんとか動きました。
ありがとうございました。
0442nobodyさん2009/04/02(木) 18:02:40ID:q5b3212c
【 CGI&PHP名 】 改造サムネイルカッターVer2.3 sam.php
【 配布先URL 】 http://siokara.que.jp/siokara_accessories.html
【 依頼期限 】 一週間くらい
【 依頼内容 】 1、サムネイル作成元($img_dir)フォルダーを、複数(7つくらい)指定できるようにしてほしい

どうぞよろしくお願いします<m(__)m>

【 スクリプト改造依頼スレ】(丸投げ) part7再々
http://pc11.2ch.net/test/read.cgi/php/1222645553/
こちらでも依頼しましたが反応がありませんでした
0443nobodyさん2009/04/02(木) 19:45:21ID:???
>>442
ここは丸投げスレじゃないんだよ。
自分で改造してわからないことを質問するスレなんだよ。
04444422009/04/02(木) 21:27:22ID:???
すいません(´;ω;`)ウッ…
0445nobodyさん2009/04/03(金) 23:39:45ID:oy8/1v1D
【.  CGI名  .】 もっと書き込み隊2
【配布先URL】 http://tackysroom.com/page_cgi2.htm
【ヘルプ内容】
外部のテンプレートファイルを読み込んで表示させたいのですが、うまくいきません。
772行目あたりの「ヘッダー上部書き出し」のところに
open (FT,"/navi.tmp"); #navi.tmpはテンプレートファイルです。
@navi = <FT>;
close (FT);
と書き、表示させたいところに
print @navi;
と書いてみたのですが、表示されません。
解決策ありましたらどうかご教示下さい。
0446nobodyさん2009/04/03(金) 23:50:12ID:???
テンプレートに書いてもしょうがないだろ
0447nobodyさん2009/04/29(水) 09:42:28ID:???
フリー配布のcgiの改造ヘルプってここでいいのかな…。
【.  CGI名  .】arseno-l-0.5
【配布先URL】 ttp://www.geocities.jp/fla774/arseno/
【ヘルプ内容】 単語の新規登録時に既に登録済みの単語(例えば雨があるのに雨はng。飴ならok)はエラーにする方法が知りたい

やってみたことはdl.cgiの中にあるregist_entryで
「新しい単語を配列に書き込む」って処理があったから、その直前に
新しい単語と配列の単語を比較して、一致したら既に登録済みってことでエラーにしようと思いました。

&catch_continuation( "index", $word, $Ip );
&lock_file;
&get_index_array( \@index ) or &error( 'open_index', __LINE__, 1 );
$newkey = 0;
(追加↓)
foreach( @index ){
&error( 'double_word', __LINE__ ) if @index[1] == $word;
}
(追加ここまで↑)

実際に試してみると、重複して登録できてしまいました。何が原因なんでしょうか。
0448nobodyさん2009/04/29(水) 09:58:24ID:???
foreach( @index ){
&error( 'double_word', __LINE__ ) if $_ eq $word;
}
04494472009/04/29(水) 10:29:59ID:???
ありがとうございます。
構文ミスってことでしょうか?

試してみましたが、やっぱり重複しても登録できてしまいました。
もしかして入れる場所間違ってるんでしょうか…。
0450nobodyさん2009/04/29(水) 10:48:19ID:???
&get_index_array内部処理では末尾の改行付いたままだからな
04514472009/04/29(水) 14:48:50ID:???
つまり
&get_index_arrayの単語と比較する前に「改行を除く」か
改行の手前までを比較対象にするようにすればいい、ってことですかね。
やってみます。
0452nobodyさん2009/04/29(水) 18:30:42ID:???
foreach( @index ){
&error( 'double_word', __LINE__ ) if $_ eq "$word\n";
}

ちと頭悪いがsjisじゃなければこれで良くね?
04534472009/04/29(水) 21:36:31ID:???
試行錯誤してますが、どうもうまくいかないです…。

foreach my $var ( @index ){
my $var == @index;
my $var =~ s/\n//;
&error( 'double_word', __LINE__ ) if my $var_ eq "$word\n";
}

変数作って一旦配列の単語をコピーし、\nを置換で削って比較、と思ったのですが
既存の単語が消えて、新しい単語に置き換わる、という結果になってしまいました。
(雨、宝物、てすと、の3つがあった時、新たにとんかちを追加すると直前のてすとがとんかちに変わる)

>>452
ありがとうございます。試してみましたが、やはり重複登録できてしまいました。
0454nobodyさん2009/04/29(水) 22:42:25ID:???
>>453
なんか構文が色々おかしいぞw

foreach my $var ( @index ){
chomp($var);
&error( 'double_word', __LINE__ ) if $var eq $word;
}
0455nobodyさん2009/04/29(水) 22:46:53ID:???
myの意味も知らんと色々やらかしちゃってるっぽいな
04564472009/04/29(水) 23:30:00ID:???
>>454-455
ローカル変数にはmyつけるってperlのサイトに出てましたが…違うんですかorz

>>454の方法を試すと
あめ、山、海の順で登録すると海を追加した後に山が消え、あめがあ行の前に移動して
海があ行先頭にきてしまいました。
どうもchomp命令で改行外すと、索引ファイルが改行なしになって表示が狂うようです。

>>454のmy $varをやめてchomp( @index)としても同様の結果に。
改行を外すのではなく見ないようにする方がいいんでしょうか。(末尾無視するとか)
0457nobodyさん2009/04/30(木) 00:25:58ID:???
>>456
うーん、思ったよりおまいさんのperl知識が乏し過ぎてちょと話がしにくいな。
判定方法は>>454のでいいはずだけど、他にもいじっちゃったでしょ。そこがたぶん全然合って無い。
頑張る気持ちは大切にしてあげたいけど、先にもう少しperlの勉強しないと厳しいかも。
急ぎなら丸投げおいで。
04584472009/04/30(木) 21:19:55ID:???
言うとおり、改造前に基本から勉強してきます。
付け焼刃の知識じゃどうにもなんないみたいだし…。
とはいえ自分で中身わかってないと、何かあっても対処できないし
急ぎでもないので丸投げ依頼も今はやめておきます。

ありがとうございます。
0459nobodyさん2009/05/11(月) 18:46:32ID:???
CGIゲームの中で、javaスクリプトをつかうには、何が必要ですか?
0460nobodyさん2009/05/11(月) 19:31:18ID:???
別に何も?
0461nobodyさん2009/05/11(月) 20:50:00ID:???
あえて言うならjavascriptが動作するブラウザ
0462nobodyさん2009/05/16(土) 15:01:23ID:???
あれ、そうなんですか?
なんで動かないのだろう・・・?
0463nobodyさん2009/05/21(木) 07:04:12ID:5BoMPyL5
【.  CGI名  .】 i-imageBBS v1.25
【配布先URL】 http://www.chama.ne.jp/index.htm
【. 置き場所 .】 http://www.chama.ne.jp/download/bbs/iimgbbs/index.htm
          
【ヘルプ内容】 強制ID表示 2ちゃんねると同じトリップ利用可

まだ勉強し始めの超初心者です
よろしくお願いします。
0464nobodyさん2009/05/21(木) 07:35:18ID:???
いや、そこで終わられると丸投げも同然なんだがw
どこまでやってどこでつっかえてるんだ?
04656432009/05/21(木) 20:45:43ID:???
初めからさっぱりです。
参考になるようなサイトを紹介してもらえればと思ったのですが、丸投げスレの方が妥当なのでそちらに行ってみます。
0466nobodyさん2009/05/26(火) 00:43:47ID:hNbwwEvZ
【  CGI名  】 アクセスカウンター(01)
【配布先URL】 ttp://plus-code.net/cgi-flash-counter/accesscounter01/
【ヘルプ内容】
このCGIは、flashでカウンターを表示しているのですが、
カウンターをクリックすると、配布URLのトップページに飛ぶようになっています。

flash(swf)自体にリンクが設定されているのですが、なんとかこれを無効にする
方法はないでしょうか?
リンクの無効が無理なら、リンクが同窓で開くため、最低限別窓で開くようにしたいです。

タグでa hrefのtargetを指定してもNGでした。
■ このスレッドは過去ログ倉庫に格納されています