トップページ⇒php
982コメント439KB

【 スクリプト改造工房 PART 7 】

■ このスレッドは過去ログ倉庫に格納されています
0001sage03/09/17 15:28ID:ZcvVdw5C
 
#================================
# スレッドの説明
#================================

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

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

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

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

過去ログ>>2
0002nobodyさん03/09/17 15:29ID:???
 
#================================
# 過去のスレッド
#================================

【PART1】行方不明
【PART2】行方不明
【PART3】http://pc.2ch.net/php/kako/988/988808396.html
【PART4】http://pc.2ch.net/php/kako/1012/10128/1012839651.html
【PART5】http://pc2.2ch.net/php/kako/1028/10281/1028193595.html
【PART6】http://pc2.2ch.net/test/read.cgi/php/1047806915/
0003nobodyさん03/09/17 15:41ID:???
もしかして行方不明のPart2ってこれか?
http://pc2.2ch.net/test/read.cgi/hosting/986986227/

まだ書けるぞw
0004nobodyさん03/09/18 01:52ID:ixewk0aN
おつかれぃ
0005nobodyさん03/09/18 07:44ID:???
早速ですが…
ttp://proxy.ymdb.yahoofs.jp/users/e2fdabc/bc/%a5%de%a5%a4%a5%c9%a5%ad%a5%e5%a5%e1%a5%f3%a5%c8/mkakikomitai.txt?bco2Uu_Ax0ZrFQaa
こちらのもっと書き込み隊というBBSにファイルアップロード機能をつけていただけませんか?
私は、プログラミングは高校でBASICを少し触った程度で、Perlの知識は全くないので、構造が全然わからないのです(´∀`;)
0006503/09/18 08:15ID:???
ごめんなさい。
追加です。
できれば、画像をアップした時にプレビュー画像がでるようにしてくださると幸いです。
ややこしいこと言って申し訳ないです。
0007nobodyさん03/09/18 10:43ID:???
んなURL踏むかよ
0008nobodyさん03/09/18 10:52ID:???
まったく知識がないなら初めから画像掲示板を使え
0009すみません、長くなります。03/09/18 12:00ID:ixewk0aN
print "<SCRIPT language=\"JavaScript\">\n";
print "<!--\n";
print "// _dom : 0=other, 1=Mozilla, 2=NN4, 3=IE4/5\n";
print "_dom=(document.all?3:(document.getElementById?1:(document.layers?2:0)));\n";
print "function getDiv(nm){\n";
print " if(_dom==1) return document.getElementById(nm);\n";
print " if(_dom==2){\n";
print " var s='';\n";
print " for(var i=1; i<arguments.length; i++)\n";
print " s+='document.layers.'+arguments[i]+'.';\n";
print " return eval(s+'document.layers.'+nm);\n";
print " }\n";
print " if(_dom==3) return document.all(nm);\n";
print " return null;\n";
print "}\n";
print "function showLAYER(div){\n";
print " if(_dom==2)div.visibility='show'\n";
print " if(_dom==1 || _dom==3){div.style.visibility='visible'}\n";
print "}\n";
print "function hideLAYER(div){\n";
print " if(_dom==2)div.visibility='hide'\n";
print " if(_dom==1 || _dom==3){div.style.visibility='hidden'}\n";
print "}\n";
print "function setBGCOLOR(div,color){ \n";
print " if(_dom==2){div.bgColor=color ; return;}\n";
* print " if(_dom==1 || _dom==3){div.style.backgroundColor=color; return;}\n";
0010>>9-1003/09/18 12:00ID:ixewk0aN
print "}\n";
print "window.onload=BGC\n";
print "function BGC(){\n";
print " setBGCOLOR(getDiv('test0'),'#FFFFbb')\n";
print "} \n";
print "-->\n";
print "</SCRIPT>\n";


DHTMLやJavaScriptを用いて、ポップアップウィンドウを取り付けようとしてるんですが
*のついてるラインに「オブジェクトがありません」というエラーが出てきて動作してくれないんです。
Perl文法チェックもクリアし、また、HTMLファイルなら正常に動作しました。
*のラインを削除すればまた別の場所にガタが来てしまい、にっちもさっちも行きません。
何が原因なのでしょうか?
0011nobodyさん03/09/18 12:01ID:???
すみません、失敗しました。

>>9-10
です。
0012nobodyさん03/09/18 12:13ID:???
>>11
そりゃJavaScriptのエラーだ。板が違う
エラーそのものは、div が null だから。
00131103/09/18 12:16ID:???
>>12
ありがとうございます。
板違いすみませんでした。
別の板で訊いてみます。
0014nobodyさん03/09/18 12:58ID:YoW283GX
(´・∀・`)ヘー
0015nobodyさん03/09/18 13:00ID:YoW283GX
( ・∀・)つ〃
0016nobodyさん03/09/18 22:31ID:???
上の方で似たような言われていて、煽られているのでこの注文をするのは恐縮なのですが、
CGICafeさんのもっと書き込み隊改造スクリプトLight Bbs(http://saya.kiy.jp/test_cgi/lbbs/lbbs.cgi)
に、同じくCGICafeさんのReference Book(http://saya.kiy.jp/test_cgi/rbook/rbook.cgi)にあるファイルアップロード機能を移植してほしいのです。

※CGICafeさんの鯖は不安定なようで、たまに503エラーがでますが、リロードしていただけると直ります。

スクリプトファイルはテキストにして、アップさせていただきました。
http://webplus.snow.ble.org.uk/lbbs.txt こちらがLight BBSのスクリプト
http://webplus.snow.ble.org.uk/rbook.txt こちらがReference Bookのスクリプトです。

Perlの知識は、紙谷 歌寿彦さんという方の「はじめての人のためのかんたんPerl/CGI入門」という本を全部やったぐらいです。
難しいことはわからないかも知れませんが、基本的なことならわかると思います。
手助けよろしくお願いします。
0017nobodyさん03/09/19 10:05ID:???
機能をひとつ追加するのって大変なんよ…
0018nobodyさん03/09/19 10:16ID:???
注文かぁ・・・
0019nobody ◆2chGAUCATE 03/09/19 14:23ID:vq53tWeh
URLジャンプを作りたいんですけど、
まず書き込まれたURLを
s/([^=^\"]|^)(http|ftp)(\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%]+)/$1<a href=\"jamp.cgi?site=$2$3\" target=\"_target\">$2$3<\/a>
にしてsite=[$2$3]の部分を取り出して、ジャンプするURLをひょうじしたいんだが、
どうやってやるか・・・・・・・・
0020nobodyさん03/09/19 14:28ID:???
ワケワカラン。

http://example.com/jamp.cgi?site=http://example.jp/hogehoge

ってURLにアクセスしたときにhttp://example.jp/hogehogeを表示したいって事か?
0021nobody ◆2chGAUCATE 03/09/19 15:44ID:???
>>20そう
わけ分からなくてスマソ
0022nobodyさん03/09/19 15:53ID:???
広告でも貼りまくろうってのか?
0023nobodyさん03/09/19 18:19ID:???
俺、つい三日くらい前に目からうろこが落ちたよ。
暗闇の中にいたはずが急に薄ぼんやりだけど明るくなって来た。
ハッシュとファイルの開け閉めがわかったとたんのことだった。
ようやく初心者段階にたどり着いたよ。
わかるかなぁ、この感動。
0024nobodyさん03/09/19 20:05ID:???
>>16
> 手助けよろしくお願いします。
うん、手助けしてあげる。
そのかわり、できる所まで自分で改造しる!
本を1冊やったんなら、そこそこできると思うし…
同じ作者のスクリプトだから移植性はいいと思うぞ。
(スクリプト見てないけど…)
0025nobodyさん03/09/19 20:43ID:???
2ch互換スクリプトでPATHINFO仕様にしているんですが、
例えば1つのレスだけ表示する場合に、
http://pc2.2ch.net/test/read.cgi/php/1063780103/25n
                                 ~~~
                                  ↑
                            このn
を取るにはどうすればいいですか?
0026nobodyさん03/09/19 20:45ID:???
>>24
ありがとうございます。
しかし、この本、ほんとに初心者用で、すごく簡単なタイプのゲストブック程度を作るぐらいのレベルまでしか載っていないんです。
それにスクリプトはCGI Cafeさんがデザイン改造されただけで、もとの作者はBBSの方がTackyさんでアプロダの方はKentさんなんですよ(´・ω・)
私にできるのはせいざいアップに関係のありそうなスカラーをコピペするぐらいでしょうか。。
0027nobodyさん03/09/19 20:50ID:???
>>26
おまい前スレの590か?
0028nobodyさん03/09/19 20:59ID:IKKn6B4V
#ログ読込
open(IN,"$file") || &error("Can't open $file");
@lines = <IN>;
close(IN);
#$count初期化
$count = 0;

#ログ全部
foreach $line (@lines) {
local($name,$email,$url,$msr) = split(/<>/,$line);
#カウント処理
$count = $count + 1;
&output;
}

IE6とNN7とOperaを使ってます。

掲示板で、書き込みがあるカウント数に達する毎に<br>や</tr>等で
改行させるようにする事は可能でしょうか?

今のところ$countを使うことで書き込み1つ1つにカウント数を割り当てる事は出来ました。
ここから、例えば10カウント毎に</tr>を入れて改行させたいのですが
その方法はおろか可能かどうかもわからなくて不安でして・・・。

00292603/09/19 21:02ID:???
2ちゃんねるに書き込むのは1年ぐらい前にPCが起動しなくなった時Window板に書き込んだ時以来ですので違いますよ。
というよりDat落ちしてるのでその記事が読めないんですが、もしかして全く同じ注文なんですか?
0030nobodyさん03/09/19 21:57ID:???
>>28
#ログ全部
foreach my $count (0 .. $#lines) {
local($name,$email,$url,$msr) = split(/<>/,$lines[$count]);
print ($count%10 == 9) ? '</tr>' : '<br>' ;
}

みたいな?
00312803/09/20 02:56ID:???
すみません、レス遅くなりました。

>>30
ありがとうございます。
試してみたんですがエラーになってしまいました。
perl <tr> $count
などでググり、出てきた情報を頼りにあちこちイジってみましたが駄目でした。

ttp://www.kari.to/upload/source/d/1884.txt

こちらにスクリプトを上げておきました。(最初からこうすべきだった・・・。)
よろしくお願いします。
0032nobodyさん03/09/20 03:10ID:???
>>30をどう試して、どういうエラーが出たのか書いてくれんと。
003328 1/203/09/20 03:44ID:???
>>32
>>30のスクリプトをそのまま
#ログ全部
foreach $line (@lines) {
local($name,$email,$url,$msr) = split(/<>/,$line);
と入れ替えるとサーバエラーになりました。
文法をチェックしてみると
print (...) interpreted as function at tmp.pl line 116.
Useless use of a constant in void context at tmp.pl line 119.
Useless use of a constant in void context at tmp.pl line 119.
Unmatched right bracket at tmp.pl line 126, at end of line
syntax error at tmp.pl line 126, near "}"
tmp.pl had compilation errors.
↓エキサイト翻訳
tmp.pl 116行で機能として解釈された印刷(...)。tmp.pl 119行に無効の情況中の定数の役立たない使用。
tmp.pl 119行に無効の情況中の定数の役立たない使用。
tmp.pl 126行に無比の右ブラケットはライン・シンタックス・エラーの終わりに、
tmp.pl 126行で「}」tmp.plの近くで編集エラーを持っていました。

116行目はprint ($count%10 == 9) ? '</tr>' : '<br>' ;
119行目は$count = $count + 1;
126行目は }
です。

↓もう少し続きます。
003428 2/203/09/20 03:48ID:???
foreach my $count (0 .. $#lines) {
local($name,$email,$url,$msr) = split(/<>/,$lines[$count]);
print ($count%10 == 9) ? '</tr>' : '<br>' ;
}
の一番最後の}を外すとサーバエラーにはなりませんが
「オブジェクトがありません」のエラーに。(これは記述ミスが原因のようです)
チェックすると

tmp.pl 116行で機能として解釈された印刷(...)。
tmp.pl 116行に無効の情況中の定数の役立たない使用。
tmp.pl 116行に無効の情況中の定数の役立たない使用。
一度だけ使用される名前「main::s2」:tmp.pl 77行に可能な誤植。
一度だけ使用される名前「main::s3」:tmp.pl 77行に可能な誤植。
一度だけ使用される名前「main::email」:tmp.pl 115行に可能な誤植。
一度だけ使用される名前「main::count」:tmp.pl 111行に可能な誤植。
一度だけ使用される名前「main::url」:tmp.pl 115行に可能な誤植。
一度だけ使用される名前「main::msr」:tmp.pl 115行に可能な誤植。
tmp.plシンタックスOK

116行目は print ($count%10 == 9) ? '</tr>' : '<br>' ;
77行目はlocal($s1,$s2,$s3,$s4) = split(/<>/,$line);
0115: local($name,$email,$url,$msr) = split(/<>/,$lines[$count]);

以上です。
■ このスレッドは過去ログ倉庫に格納されています