【 スクリプト改造工房 PART 7 】
■ このスレッドは過去ログ倉庫に格納されています
0001sage
03/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:???http://pc2.2ch.net/test/read.cgi/hosting/986986227/
まだ書けるぞw
0004nobodyさん
03/09/18 01:52ID:ixewk0aN0005nobodyさん
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の知識は全くないので、構造が全然わからないのです(´∀`;)
00065
03/09/18 08:15ID:???追加です。
できれば、画像をアップした時にプレビュー画像がでるようにしてくださると幸いです。
ややこしいこと言って申し訳ないです。
0007nobodyさん
03/09/18 10:43ID:???0008nobodyさん
03/09/18 10:52ID:???0009すみません、長くなります。
03/09/18 12:00ID:ixewk0aNprint "<!--\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-10
03/09/18 12:00ID:ixewk0aNprint "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ファイルなら正常に動作しました。
*のラインを削除すればまた別の場所にガタが来てしまい、にっちもさっちも行きません。
何が原因なのでしょうか?
0014nobodyさん
03/09/18 12:58ID:YoW283GX0015nobodyさん
03/09/18 13:00ID:YoW283GX0016nobodyさん
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を
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を表示したいって事か?
0022nobodyさん
03/09/19 15:53ID:???0023nobodyさん
03/09/19 18:19ID:???暗闇の中にいたはずが急に薄ぼんやりだけど明るくなって来た。
ハッシュとファイルの開け閉めがわかったとたんのことだった。
ようやく初心者段階にたどり着いたよ。
わかるかなぁ、この感動。
0024nobodyさん
03/09/19 20:05ID:???> 手助けよろしくお願いします。
うん、手助けしてあげる。
そのかわり、できる所まで自分で改造しる!
本を1冊やったんなら、そこそこできると思うし…
同じ作者のスクリプトだから移植性はいいと思うぞ。
(スクリプト見てないけど…)
0025nobodyさん
03/09/19 20:43ID:???例えば1つのレスだけ表示する場合に、
http://pc2.2ch.net/test/read.cgi/php/1063780103/25n
~~~
↑
このn
を取るにはどうすればいいですか?
0026nobodyさん
03/09/19 20:45ID:???ありがとうございます。
しかし、この本、ほんとに初心者用で、すごく簡単なタイプのゲストブック程度を作るぐらいのレベルまでしか載っていないんです。
それにスクリプトはCGI Cafeさんがデザイン改造されただけで、もとの作者はBBSの方がTackyさんでアプロダの方はKentさんなんですよ(´・ω・)
私にできるのはせいざいアップに関係のありそうなスカラーをコピペするぐらいでしょうか。。
0028nobodyさん
03/09/19 20:59ID:IKKn6B4Vopen(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>を入れて改行させたいのですが
その方法はおろか可能かどうかもわからなくて不安でして・・・。
002926
03/09/19 21:02ID:???というよりDat落ちしてるのでその記事が読めないんですが、もしかして全く同じ注文なんですか?
0030nobodyさん
03/09/19 21:57ID:???#ログ全部
foreach my $count (0 .. $#lines) {
local($name,$email,$url,$msr) = split(/<>/,$lines[$count]);
print ($count%10 == 9) ? '</tr>' : '<br>' ;
}
みたいな?
003128
03/09/20 02:56ID:???>>30
ありがとうございます。
試してみたんですがエラーになってしまいました。
perl <tr> $count
などでググり、出てきた情報を頼りにあちこちイジってみましたが駄目でした。
ttp://www.kari.to/upload/source/d/1884.txt
こちらにスクリプトを上げておきました。(最初からこうすべきだった・・・。)
よろしくお願いします。
003328 1/2
03/09/20 03:44ID:???>>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/2
03/09/20 03:48ID:???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]);
以上です。
■ このスレッドは過去ログ倉庫に格納されています