トップページ⇒php
1001コメント461KB

【 スクリプト改造依頼スレ 】(丸投げ)

■ このスレッドは過去ログ倉庫に格納されています
0001104/02/15 16:59ID:???
 
#================================
# スレッドの説明
#================================

「スクリプトを改造したいけど、言語の知識ゼロなんでつ」という人がいましたら
ここで依頼してください。ひょっとしたら改造してくれる人がいるかもしれません。

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

(1) 作者に改造依頼したが答えてくれない場合このスレを利用する。
(2) スクリプトの内容と置いてある場所を明記する (txtファイルでUPすればなお良い)
(3) どんな風に改造して欲しいのか? (完成イメージHTMLを用意すればなお良し)
(4) 出来るだけ詳しく具体的に書くこと。(依頼は小出しにしない事)
(5) 御礼や動作報告は必須。

なお、多少なりとも自分でいじれる人は改造スレをご利用ください。(ここは改造丸投げスレです)

※答えてくれないからといって逆ギレする厨はお断り
0159nobodyさん04/03/06 01:42ID:m2i5HFPE
>>158様
本当にありがとうございます!!
めっちゃ希望通りでした!!
なのですがHTMLの時 他のページに移動(過去ログを見るときの)
だけが正常動作しなかったので、そこも修正お願いしたいですm(_)m
0160nobodyさん04/03/06 20:16ID:???
>>159
どこがおかしいのかわからんのだが…。
0161nobodyさん04/03/07 02:37ID:3i1qZ8Wj
>>160
頭
016213204/03/07 03:28ID:???
>>159
試しに置いてみたけど問題なく動いてる。真ん中の「移動する」の話だよね?
ansq.htmlを別ディレクトリに置いちゃったとかCGIとHTMLが別サーバのプロバイダとか。
$index_urlや$index_filenameの設定ミスとかかな。
http://marunage.web2.poporo.net/cgi/ansq/ansq.html
0163便乗すいません04/03/07 06:10ID:???
>>132さんが改造を依頼されたドリーム小説CGIに、
さらに感想(一行or複数行レス)を投稿する機能を
追加して頂きたいのですが…。
http://marunage.web2.poporo.net/joyful/joyful.cgi
よろしくお願いいたします。
0164nobodyさん04/03/07 14:33ID:???
>>163
これって、THEBBSの腐ったCGI製作設置板のなかにいる、わずかなまともな人が作った奴だよな。
THEのほうに作った人いるから、そちらに報告もするといいよ。 これをみてるかもしれんけどね
0165nobodyさん04/03/07 20:22ID:???
誘導されてきました。
http://www.akiyan.com/ の蓄々一行掲示板v2を改造していただけますか。
http://tdkz.s55.xrea.com/が完成イメージで、
日記のタイトルをクリックすると、感想を書き込むような風にしたいんです。
今はUnico diaryを使っています。Unico diaryにこの機能を付けるような事がしたいのですが……
よろしくお願いします。
0166nobodyさん04/03/07 21:23ID:???
>>165
u_diaryが http://******/u_diary/u_diary.cgi に設置されているとして

1:蓄々一行掲示板v2を設置する
  例 http://******/1linebbs/ に設置する場合。

# 設置するURL
  $conf{'return_url'} = 'http://******/u_diary/u_diary.cgi';
  # bbs.cgiのURL
  $conf{'cgi'} = 'http://******/1linebbs/bbs.cgi';

  その他の項目は好みで。

2:u_diary.cgiの215行目 $log{'date'} = &date($log{date}); の下あたりに以下を追加。

  $log{'title'} = "<a href=\"../1linebbs/bbs.cgi?mode=logview\">$log{'title'}</a>";
0167nobodyさん04/03/07 21:43ID:???
>>166
ありがとうございます。
すいません、私の説明不足でした。
動作はこれでいいのですが、ログファイルを一日ごとに保存しておきたいのです。
やはりこれは無理でしょうか……?
0168nobodyさん04/03/08 02:40ID:???
>>167
※ 行番号は上から順に追加・変更を行って下にずれた行番号

--- u_diary.cgi ---
・213行目あたりの if(!$log{'date'}){$log{date} = ・・・の下に以下を追加
my ($year, $mon, $mday, $hour, $min, $sec) = split(/,/,$log{'date'});
my $bbslog = sprintf("%04d%02d%02d%02d%02d", $year + 1900, $mon + 1, $mday, $hour, $min);

・そのちょっと下の>>166の $log{'title'} = "<a href=\"../ ・・・ を以下に変更
$log{'title'} = "<a href=\"../****/bbs.cgi?mode=logview&log=$bbslog\">$log{'title'}</a>";

--- 1行BBSのconf.cgi ---
・81行目あたりの<input type="hidden" name="mode" value="write">の下に以下を追加
<input type="hidden" name="log" value="LOGFILE">

・89・90行目あたりを以下に変更
<a href="{cgi}?mode=logview&log=LOGFILE">logview</a>
/ <a href="{cgi}?log=LOGFILE">admin</a>

・137行目あたりを以下に変更
<p style="margin:0"><a href="{cgi}?mode=logview&start={start}&log=LOGFILE">Next Page</a></p>

・169行目あたりを以下に変更
<p style="text-align:right"><a href="{cgi}?mode=logview&log=LOGFILE">logview</a>・・略・・
0169nobodyさん04/03/08 02:41ID:???
続き
--- 1行BBSのbbs.cgi ---
・71行目あたりの $LOG_FILENAME = './log.cgi';を以下の6行に変更
$LOG = $FORM{'log'};
$LOG_FILENAME = "./$LOG.cgi";
if (!-e "$LOG_FILENAME") {
  open(FILE, ">>$LOG_FILENAME");
  close (FILE);
  eval { chmod(0666, "$LOG_FILENAME"); }; # 鯖に合わせてパーミッションを指定すること
}

・204行目あたりの$contents{'navi'} = $conf{'html_navi'};の下に以下を追加
$contents{'navi'} =~ s/LOGFILE/$LOG/g;

・214行目あたりの$body{'body'} = $conf{'html_body'};の下に以下を追加
$body{'body'} =~ s/LOGFILE/$LOG/g;

・220行目あたりの$html .= $conf{'html_logview'};の下に以下を追加
$html =~ s/LOGFILE/$LOG/g;

・224行目あたりの$html .= $conf{'html_body'};の下に以下を追加
$html =~ s/LOGFILE/$LOG/g;

・279行目あたりの$html .= $conf{'html_write_finish'};の下に以下を追加
$html =~ s/LOGFILE/$LOG/g;

・299行目あたりの<input type="hidden" name="mode" value="admin">に続けて以下を追加
<input type="hidden" name="log" value="$LOG">
0170nobodyさん04/03/08 02:42ID:???
続き
・302行目あたりを以下に変更
<p style="text-align:right"><a href="$conf{'cgi'}?mode=logview&log=$LOG">logview</a>・・略・・

・351行目あたりの<p><input type="hidden" name="mode" value="admin">に続けて以下を追加
<input type="hidden" name="log" value="$LOG">

・374行目あたりの<input type="hidden" name="mode" value="write">の下に以下を追加
<input type="hidden" name="log" value="$LOG">

・378行目あたりの<input type="hidden" name="mode" value="admin">に続けて以下を追加
<input type="hidden" name="log" value="$LOG">

・381行目あたりの<input type="hidden" name="mode" value="admin">に続けて以下を追加
<input type="hidden" name="log" value="$LOG">

・385行目あたりを以下に変更
<p style="text-align:right"><a href="$conf{'cgi'}?mode=logview&log=$LOG">logview</a>・・略・・

※ conf.cgiの連続書き込み停止時間(単位:秒)$conf{'stoptime'} = 10; に注意
  連続書き込みはIPアドレスなどを見ずにログの更新からの経過時間だけで制限する仕様。
  日記を書くとログを作成するようにしたのでそこから上記の時間を経過しないと
  BBSの書き込みはできない。

※ BBSのログは日記を書いた時点でその日時と同じ"年月日時分.cgi"というファイル名で作成した。
  ログは増えつづけるので手動で適時削除すること。
  また書き込みがない場合は0バイトのファイルになる。
0171便乗すいません04/03/08 05:55ID:???
>>164さん
THEの方にも報告完了です。
改造の方もよろしくお願いします。
0172nobodyさん04/03/08 22:57ID:???
>>168
本当にありがとうございました。まさに希望していた通りの動きです。
ひとつだけ質問なんですが、SSIで書き込みを表示するときは
<!--#include virtual="./k/bbs.cgi?mode=lastest"-->でいいのですか?
これでは表示されないようなのですが……
017316804/03/08 23:36ID:???
>>172
<!--#include virtual="./k/bbs.cgi?mode=lastest&log=ログの数字12桁"-->
どこかでSSIから使うつもりもあるの?
017416804/03/09 17:45ID:???
>>172
>>170の一番下の説明が間違ってた。
bbsのログは日記を書くと作成じゃなく、ファイル名だけを決定して、
実際のログ作成は誰かが初めて日記タイトルのリンククリックなどから
bbsにアクセスした時点で作成される。

連続書き込みの解決策を思いついたから追加して。

--- 1行BBSのbbs.cgi ---
・258行目あたりからの4行をifで囲む
if (!-z $LOG_FILENAME) { # ←追加
 if ((time() - (stat($LOG_FILENAME))[9]) <= $conf{'stoptime'}) {
 &error($conf{'stoptime'} . '秒以内の連続書き込みは禁止されています。');
 exit;
 }
}   # ←追加

これで連続書き込み停止時間の設定値の影響を受けずにすぐ書けるようになる。
017516504/03/09 20:36ID:???
本当にありがとうございました。
SSIは、<!--include virtual="./k/bbs.cgi?mode=lastest&log=${date}"-->
のように、その日のレスを表示するような事をしたかったので……
それと、ログの12桁の数字とは何でしょうか?本当にすいません。
解決策もありがとうございました。
017616804/03/09 21:41ID:???
>>175
ログが"年月日時分.cgi"で年月日時分が12桁だからそのこと。

SSIで表示するってどこでの話?
たとえばTOPのhtmlにSSIで表示させるなら、日記を書いてタイトルが
リンクになった部分のlog=12桁に合わせて書けばいいし。
それとも日記の最新の分にだけ、その下に表示させるとか。

やりたいことがよくわからない。
017716504/03/09 22:21ID:???
すいません、日記の最新の分です。
それと、ログの年月日時分.cgiはUnico diaryの$log{date}の数字のことですよね。
私はそれを、DIARY_09のように変えて使っているのですが、その場合は、
<!--include virtual="./k/bbs.cgi?mode=lastest&log=DIARY_09"-->のような形になるんですよね?
日記の最新の分にだけ、その下に表示させたいんですが……
説明不足で申し訳ありません。
0178nobodyさん04/03/10 04:23ID:???
んん?
自分で改造してうまくいかない場合、このスレではスレ違いとなるので注意しる。
ま、>>168はこの板の住人にしては優しいやつだから答えてくれると思うが。

それと、DIARY_09 ってのをもっと詳しく説明しておいた方がいいんじゃ?
お前の脳内スクリプトは俺たちに見えないのだから。。。
017916804/03/10 07:22ID:???
>>177
bbsで日記のログを指定してどうするの。
bbsが読み書きするために"log=***"で指定するログはbbsのログ。
そのログのファイル名に日記を書いた日時を12桁で"年月日時分.cgi"にしたってこと。

日記タイトルのリンク部分を見ればわかるけど、04/03/09 22:21 に日記を書いたら
bbsのログファイル名は200403092221.cgiになるわけ。
一番古い日記以前の日時のbbsのログを削除するとき探しやすいでしょ。

ところで最新の日記に下に表示と言っても何日分も表示させているなら
日記CGIの中ではループで回してるからちょっとやっかいだな。
CGIが吐くHTMLにSSIを書いても動作しないし。
ちょっと考えてみる。

それとSSIのスペルとか間違ってた。
lastestじゃなくlatestね。
もうひとつ、virtualの場合はたいてい相対パスが使えないから絶対パス指定ね。
<!--include virtual="/****/k/bbs.cgi?mode=latest&log=************"-->
こんな感じ。
018016804/03/10 09:41ID:???
>>177
こういうのはどうだろう?

今は日記を http://*****/***/u_diary.cgi のようにアクセスして
たぶん数日分表示させていると思うんだけど、これを
http://*****/***/index.html かindex.shtmlにして
そこにSSIで日記の最新一日分とbbsを表示させる。
それより古い分は日記の下にある「OLD」のリンクで遡る。
すると前回までの改造した状態で最新の一つ前から数日分の表示になる。
0181初心者04/03/10 15:33ID:???
ココの人ってすごい人が多いですね。
0182nobodyさん04/03/10 15:47ID:bqGiGoNX
まるなげです。お願いいたします。
掲示板のCGIなんですが、普通の掲示板と違ってフォルダわけされた・・みたいな
ツリーのレスが見えない表示で、題名を押すとその記事が見れるやつです。
KENTのやつでいうと「web patio」とかいうやつです。(中身は違いますが)

http://www.geocities.jp/hoge2009/bbs.txt

にUPしたんですが、返信の記事が新しいものほど上に表示されるようにして
いただきたいんです。
よろしくお願いいたします。。
0183nobodyさん04/03/10 16:00ID:je8Sz+h9
>>182はスルーしれ
マルチでしかもこのスレの後に改造工房に書き込んでやがる
逆なら間違えたのかな、と好意的に解釈さえするものを。。。
こんな香具師は相手にする必要ない

http://pc2.2ch.net/test/read.cgi/php/1076831972/41
41 名前:nobodyさん[] 投稿日:04/03/10 15:49 ID:bqGiGoNX

晒しage
0184nobodyさん04/03/10 16:07ID:bqGiGoNX
ごめん。
確かに二箇所に書きこんだのは急ぎだったから。
でも、能無しの君もだまっといてくれる?
マル投げスレなんだから(σ・Д・)σYO
0185nobodyさん04/03/10 16:28ID:???
マルチで自己中な上に謝りもせず挙句開き直って逆ギレにつき却下。

↓次の依頼ドゾー。
0186nobodyさん04/03/10 16:36ID:???
物の頼み方も知らなくても他人を能無し呼ばわりか。
やっぱり本当の阿呆には周りが阿呆のようにしか見えないんだな。
018716504/03/10 23:04ID:???
>>178-180
いろいろとありがとうございました。
SSI等と喚き迷惑をかけましたが、結局使用しないことにしました。サーバーへの負担も大きいですし……
質問などもしてしまいすいませんでした。
168氏には、いろいろとご迷惑をかけましたが本当にありがとうございました。
0188nobodyさん04/03/11 00:47ID:???
すいません!このスクリプトの改造をお願いします。
http://www.vector.co.jp/soft/unix/net/se258112.html

1.アクセスできるサーバーを固定させる。
2.アクセスするとき入力するのはユーザー名とパスワードだけ
 その他はスクリプトで設定


018916804/03/11 01:34ID:???
>>187
アクセスの程度によっては負荷が問題になることはあるだろうな。
じゃあこれで今回のはおしまいと。
0190nobodyさん04/03/11 02:02ID:???
>>188
鯖に設置して動作の確認はできているのか?
それに改造っていうほどでもなくHTMLのフォームで解決できるレベルだろ
0191nobodyさん04/03/11 04:06ID:???
>>190
それすりゃできねーか、やる気がねーかだな。
0192nobodyさん04/03/11 11:04ID:???
スクリプト側で設定させるには改造が必要だと思うが。
漏れは動作確認できないのでやらないが…。
019318804/03/11 12:34ID:???
鯖にCGI設置しました。
>それに改造っていうほどでもなくHTMLのフォームで解決できるレベルだろ
どのようにフォームを改造すればいいのでしょうか、教えてください
0194nobodyさん04/03/11 19:37ID:???
>>193
804行目に鯖を入力するところがあるだろ。
<input type=text name=server size=60>

<input type=text name=server size=60 value="鯖">にするか
そのinputを削除して
<input type=hidden name=server value value="鯖">にすりゃいいだろ。
0195nobodyさん04/03/11 19:51ID:???
>>193
実際にはhiddenから受け取って変数に入れるわけだから
その変数に鯖を指定するように書けばいいわけだけど
perlがわからないならHTMLレベルで上記のようにぐらいは
できるだろってこと。

ところでこのCGIをどういう用途で使うんだ?
なんかおもしろい使い方ある?
0196nobodyさん04/03/11 20:00ID:???
どういう用途ってあなた、悪い事に使うに決まってるじゃないですか。
0197nobodyさん04/03/11 20:01ID:???
それを聞きたいんだよ(・∀・)ニヤニヤ
0198nobodyさん04/03/16 21:25ID:???
誘導されてきました・・・・。(´・ω・`)



仲間内でやってるサイトに日記を置きたいのですが、いろいろ見て周ってはいるものの、これだってCGIに巡り合えません。
要望としては、
●1つの日記に画像を複数枚(最低5枚)アップ可能。
●日記本文中に画像を張る位置をある程度指定できるもの。
●複数人で使う為、同じ日の日記が複数作成可能であること。
●ただし、書くことが可能なメンバーをパスワードで制限できること。
●フレーム内設置の為、無駄な装飾の無いもの。
●フレーム周りに同化させるために、色の変更などが設定出来るもの。
●フレーム内設置の為、大きな画像は自動的に縮小表示してくれるもの。
●月毎にログをまとめて、過去ログの読みやすいもの。
ってとこです。

CGIサイト等をいろいろ周って見た結果、、
http://www.nyats.com
こちらにある、『なんちてBLOG』が無駄な装飾も少なく、シンプルで要望に近い機能を持っていました。
このCGIに、
●画像アップ数増加
●画像の自動縮小表示
●可能な限りGoogle等の検索に引っかからないようなHTMLを生成する。
の3つの機能を付加したいのですが、プログラミング知識に乏しく難航しています。
画像アップ数増加はなんとか出来たのですが、設置時にフレーム内に表示させたい為に、画像縮小の機能を付加したいわけです。

例えば、HTML生成の時に画像の幅が450以上の場合は450に縮小表示して、クリックで元の画像サイズでも見れるようにしたいのです。

上記の機能を実現できるようなアドバイスを、どうかよろしくお願いします。
0199nobodyさん04/03/16 21:27ID:???
参考までに
●画像のアップ数増加(入力フォームの増加と、増加分のファイル名、変数生成)
●アップ時に生成されるファイル名に(秒)を拾って付加させることによって、同日の絵日記を複数作成しても、後からアップした画像で上書きされないようにした。
●余分なタイトル画像等の装飾を排除した。
ってところまでは、なんとか自力で出来ました。
0200nobodyさん04/03/16 22:49ID:???
だめもとで依頼します。

レスキューCGIで配布している「幹事!」
http://www.rescue.ne.jp/cgi/kanji/
を使って、サークルのオフ会を企画したいのですが、一度
登録した参加申込情報の修正ができるように改造してもらえ
ませんでしょうか?

イメージ的には申し込みページにある参加申込と申込取
消の間に修正の欄を加えるという感じです。
http://www.rescue.ne.jp/cgi/kanji/sample/kanji.cgi?test
最初は一度申込取消をしたあとに、新規で登録する方法を
考えていたのですが、識別ID重複のエラーがでてしまいました。
サークルなので、識別ID(会員番号)は変えたくないんです。

これに変わるCGIを探したのですが、結局みつからなかったので
こちらに依頼をだすことにしました。
お手数をかけますが、よろしくお願いいたします。
0201nobodyさん04/03/16 23:23ID:???
>>200
他にいくつもあるから制作板のCGI探しスレで聞け
0202nobodyさん04/03/16 23:55ID:???
>>200
kanji.cgi の 133〜160行を以下に書き換えてみてください
--ここから--
if ($ADD) { ### 申込み ###

if ($ENV{'REMOTE_USER'} ne "") { $USER = $ENV{'REMOTE_USER'}; } else {
if ($in{'user'} eq "") { &error("識別IDを…","入力してください。","パスワードと組み合わせて本人確認するものです。"); }
if ($in{'パスワード'} eq "" || $in{'パスワード'} ne $in{'パスワード2'}) { &error("パスワードを…","入力してください。","または、入力が間違っています。"); }
$USER = $in{'user'}; }

if ($KANJI{$USER} ne "") {
($NAME,$EMAIL,$TEL,$REM,$PASSWD) = split(/\t/,$KANJI{$USER},5);
if ($in{'パスワード'} ne $PASSWD) { &error("申\込み済み","'$USER'は既に申\込みがあります。"); }
if ($in{'名前'} eq "") { $in{'名前'} = $NAME; }
if ($in{'Eメール'} eq "") { $in{'Eメール'} = $EMAIL; }
if ($in{'連絡先'} eq "") { $in{'連絡先'} = $TEL; }
if ($in{'備考'} eq "") { $in{'備考'} = $REM; }
if ($in{'パスワード'} eq "") { $in{'パスワード'} = $PASSWD; }
if (open(ADD,"$base_dir/$target_id\.cgi")) {
@temp = <ADD>;close(ADD);
foreach (@temp) {
if (m/$NAME\t$EMAIL\t$TEL\t$REM\t$PASSWD/i) { $_ = "$USER\t$in{'名前'}\t$in{'Eメール'}\t$in{'連絡先'}\t$in{'備考'}\t$in{'パスワード'}\n"; }
}
open(ADD,">$base_dir/$target_id\.cgi") || &error($!,"記録が出来ませんでした。","設定が間違っています。"); print ADD @temp;
close(ADD); chmod(0666,"$base_dir/$target_id\.cgi");
}
else { &error($!,"記録が出来ませんでした。","設定が間違っています。"); }
$KANJI{$USER} = "$in{'名前'}\t$in{'Eメール'}\t$in{'連絡先'}\t$in{'備考'}\t$in{'パスワード'}";
$MESSAGE1 = "※修正を受け付けました。";
}
0203nobodyさん04/03/16 23:56ID:???
#続き
else {
if ($in{'名前'} eq "") { &error("名前を…","入力してください。"); }
if ($in{'Eメール'} !~ /\b[-\w.]+@[-\w.]+\.[-\w]+\b/) { &error("Eメールを…","入力してください。"); }

if (open(ADD,">> $base_dir/$target_id\.cgi")) {
print ADD "$USER\t$in{'名前'}\t$in{'Eメール'}\t$in{'連絡先'}\t$in{'備考'}\t$in{'パスワード'}\n";
close(ADD);
chmod(0666,"$base_dir/$target_id\.cgi");
}
else { &error($!,"記録が出来ませんでした。","設定が間違っています。"); }

$KANJI{$USER} = "$in{'名前'}\t$in{'Eメール'}\t$in{'連絡先'}\t$in{'備考'}\t$in{'パスワード'}";
$MESSAGE1 = "※申\込みを受け付けました。";
}
}
--ここまで--
020419804/03/17 04:01ID:???
>198
>199
ですが、
適当にやったら出来たので取り下げます。
お世話になりました。
0205nobodyさん04/03/17 04:05ID:???
>>199
自分で改造済みのスクリプトをUPしなさい。
020620504/03/17 04:06ID:???
あっ、そう。
020719804/03/17 04:32ID:???
アップしてチェックしてもらいたいのですが、晒して良い場所を持っていないです。
とりあえず、アップローダーでもいいんでしょうか?
020819804/03/17 04:39ID:???
とりあえず、目下修正かけたい部分だけピックアップしてみます。
画像の縮小表示の為に、下記の追加、修正をしてみました。

#######ファイル添付・$doc内の置換 ######

sub image {

if ($in{'upfile1'} || $in{'upfile2'} || $in{'upfile3'} || $in{'upfile4'} || $in{'upfile5'}) {
&upload;
$doc =~ s/($hereimg1)/<img src\=\"$cgidir$imgfna\" alt\=\"$alta\">/;
$doc =~ s/($hereimg2)/<img src\=\"$cgidir$imgfnb\" alt\=\"$altb\">/;
$doc =~ s/($hereimg3)/<img src\=\"$cgidir$imgfnc\" alt\=\"$altc\">/;
$doc =~ s/($hereimg4)/<img src\=\"$cgidir$imgfnd\" alt\=\"$altd\">/;
$doc =~ s/($hereimg5)/<img src\=\"$cgidir$imgfne\" alt\=\"$alte\">/;
}

}


↑これを
020919804/03/17 04:45ID:???
↓こうしてみました。

#######ファイル添付・$doc内の置換 ######

sub image {

if ($in{'upfile1'} || $in{'upfile2'} || $in{'upfile3'} || $in{'upfile4'} || $in{'upfile5'}) {
&upload;
&big_img;
$doc =~ s/($hereimg1)/$taga/;
$doc =~ s/($hereimg2)/$tagb/;
$doc =~ s/($hereimg3)/$tagc/;
$doc =~ s/($hereimg4)/$tagd/;
$doc =~ s/($hereimg5)/$tage/;
}

}

021019804/03/17 04:46ID:???
↓ソースの最後に下記を追加。

#----------------------#
# 画像サイズチェック #
#----------------------#
sub big_img {
if ($W<=450) {$taga="<img src\=\"$cgidir$imgfna\" alt\=\"$alta\">";
$tagb="<img src\=\"$cgidir$imgfnb\" alt\=\"$altb\">";
$tagc="<img src\=\"$cgidir$imgfnc\" alt\=\"$altc\">";
$tagd="<img src\=\"$cgidir$imgfnd\" alt\=\"$altd\">";
$tage="<img src\=\"$cgidir$imgfne\" alt\=\"$alte\">";
}

elsif ($W>450) {$taga="<A HREF\=\"$cgidir$imgfna\" TARGET\=\"_blank\"><img src\=\"$cgidir$imgfna\" alt\=\"$alta\" WIDTH\=450>";
$tagb="<A HREF\=\"$cgidir$imgfnb\" TARGET\=\"_blank\"><img src\=\"$cgidir$imgfnb\" alt\=\"$altb\" WIDTH\=450>";
$tagc="<A HREF\=\"$cgidir$imgfnc\" TARGET\=\"_blank\"><img src\=\"$cgidir$imgfnc\" alt\=\"$altc\" WIDTH\=450>";
$tagd="<A HREF\=\"$cgidir$imgfnd\" TARGET\=\"_blank\"><img src\=\"$cgidir$imgfnd\" alt\=\"$altd\" WIDTH\=450>";
$tage="<A HREF\=\"$cgidir$imgfne\" TARGET\=\"_blank\"><img src\=\"$cgidir$imgfne\" alt\=\"$alte\" WIDTH\=450>";
}
}


現在、この状態でアップ画像が1枚のときは問題ないが、複数アップすると縮小表示にならないといったトラブルが出ています。
原因はなんとなく解るのですが、どう修正すれば良いかで悩んでいます。
Googleで”Perl” ”入門”で引っかかったところ数箇所で勉強しながらやった、正に付け刃なものですから、修正すべき箇所のアドバイスいただけると幸いです。
021119804/03/17 04:49ID:TQ3Th6P9
朝方まで作業していますので、なにかアドバイスいただけるのなら、よろしくお願いします。
0212nobodyさん04/03/17 05:27ID:???
1枚ずつサイズを判定してWIDTHを与えなきゃしょうがないだろ。
450以下の画像は拡大になってしまう。
HEIGHTも抜けてるから縦横比も変わってしまうし。
高さは制限なしでいいのか?

縮小後の高さ = int (450 / 元画像の幅 * 元画像の高さ);
021319804/03/17 05:39ID:TQ3Th6P9
IEで見れれば良いってのと、元画像の縦横比がバラバラってのもあり、
幅の指定だけでIEだとちゃんと表示してくれてるので、幅しか指定してません。

複数画像をアップするときに、1枚毎の幅が$Wに入ってないから駄目なんですよね?
その回避策を勉強しながら探してるのですが、なかなか案が浮かばなくて・・・。
0214nobodyさん04/03/17 06:04ID:???
そんな適当でいいなら最初から全部を450に固定しちまえ

$doc =~ s/($hereimg1)/<img src\=\"$cgidir$imgfna\" widht=\"450\" alt\=\"$alta\">/;
$doc =~ s/($hereimg2)/<img src\=\"$cgidir$imgfnb\" widht=\"450\" alt\=\"$altb\">/;
$doc =~ s/($hereimg3)/<img src\=\"$cgidir$imgfnc\" widht=\"450\" alt\=\"$altc\">/;
$doc =~ s/($hereimg4)/<img src\=\"$cgidir$imgfnd\" widht=\"450\" alt\=\"$altd\">/;
$doc =~ s/($hereimg5)/<img src\=\"$cgidir$imgfne\" widht=\"450\" alt\=\"$alte\">/;
021519804/03/17 06:07ID:TQ3Th6P9
それだと小さい画像も拡大されるから意味ないですし。^^;
021619804/03/17 06:20ID:???
思考能力が低下しまくってるので、本日はとりあえず寝ます。
おつきあいくださり、ありがとうございました。
0217nobodyさん04/03/17 12:47ID:???
>198
頼むから配列使ってくれ、と言いたくなる・・・
動くかどうか知らないがとりあえず適当に無理矢理。

sub image {
if ($in{'upfile1'} || $in{'upfile2'} || $in{'upfile3'} || $in{'upfile4'} || $in{'upfile5'}) {
my @tekito = &upload;
my ($a,$i,$j,$tag,$imgfn,$alt,$hereimg);
for($i = 0;$i < 5;$i++){
$a = ("a","b","c","d","e")[$i];
$imgfn = ${"imgfn$a"};
$alt = ${"alt$a"};
if($tekito[$i*3+1]<=450){
$tag = "<img src\=\"$cgidir$imgfn\" alt\=\"$alt\">";
}else{
$tag = "<A HREF\=\"$cgidir$imgfn\" TARGET\=\"_blank\"><img src\=\"$cgidir$imgfn\" alt\=\"$alt\" WIDTH\=450>";
}
$j=$i+1;
$hereimg = ${"hereimg$j"};
$doc =~ s/($hereimg)/$tag/;
}
}

}
021819804/03/17 14:50ID:???
今日中に仕上げる約束してたので、ずっとがんばってましたが、
>217さんのソースを組み込んでみた結果、みごとに問題が解決いたしました。
少し問題があったのですが、<A>タグを閉じるだけでOKでした。

本当に助かりました。
残りの改造仕上げて、テストが通ったら、今回教えていただいた部分を勉強したいとおもいます。
本当に本当にありがとうございました。
0219JK04/03/17 17:11ID:Gzqqj+Vz
http://mamastar.jp/←ここのサイトの『http://mamastar.jp/news/』『http://mamastar.jp/baby/』『http://mamastar.jp/bbs/』『http://mamastar.jp/bbs/room.php』『http://mamastar.jp/bbs/idobata.php』
『http://mamastar.jp/bbs/urikai/』『http://mamastar.jp/hos/』『http://mamastar.jp/bbs/serch_form.php』
『http://mamastar.jp/bbs/topic.php?cate=checks』
です。
削除の機能とか別のところでしているみたいで、カテゴリーも別で管理人が自らできるようにしているみたいで・・・多分。
初歩的なことPHPさっぱりわからず・・・。
教えてください!!
0220nobodyさん04/03/17 17:17ID:???
何を言ってるのかさっぱりわからず・・・。
0221JK04/03/17 17:48ID:Gzqqj+Vz
ここの上記がどのように作られているか分からず、教えていただきたくて
すいません。訳わからず書いてしまって。
0222nobodyさん04/03/17 18:27ID:???
まず日本語の教科書を読むところから始めてください
0223nobodyさん04/03/17 19:12ID:???
>>221
ただ単にHTMLを書きなぐっているのでは?
022420004/03/17 20:51ID:???
>>202さん、レスありがとうございました。
ご指摘のとおり、書き直したものをアップしたのですが、
修正欄がでてこないし、一度削除して再度同じIDで登録すると
重複登録のエラーがでてきます・・・・・・
何かやり方がおかしいのでしょうか。ちなみにサーバーはロリポです。
0225JK04/03/17 22:31ID:Gzqqj+Vz
PHPを作成したいのですが、
http://mamastar.jp/←ここのサイトの。
『http://mamastar.jp/news/』『http://mamastar.jp/baby/』『http://mamastar.jp/bbs/』『http://mamastar.jp/bbs/room.php』『http://mamastar.jp/bbs/idobata.php』
『http://mamastar.jp/bbs/urikai/』『http://mamastar.jp/hos/』『http://mamastar.jp/bbs/serch_form.php』
『http://mamastar.jp/bbs/topic.php?cate=checks』を作りたいのです。作り方を教えてください。
0226nobodyさん04/03/17 23:54ID:???
>>225
いつまでもスレ違いUzeeeeeee!!!!
スレタイをよく読め!( ゚д゚)、ペッ
0227nobodyさん04/03/18 12:03ID:???
>>225
だからここは改造スレであって一から作るスレじゃねーんだよスレタイも読めないのか禿
0228nobodyさん04/03/18 12:37ID:H5623xHB
今ローカルでテストしてるんだが
OS:WinXP
ActivePerl 5.8.0
鯖はinfoseek予定


Tacky'sRoom(ttp://tackysroom.com/)で配布されていた
tottochan Ver0.51を使っていて、
質問なんだけど

今の状態だと、
「登録情報/結果・開催表示」の部分をクリックすると
自分の名前・パスワードを入力しても、自分の投稿が見れないで、
最新投稿者のが表示されるんだが
http://kaininn.hp.infoseek.co.jp/toto.txt

これを、自分の名前・パスワードで、自分の投稿が表示されるようにしたい。

0229nobodyさん04/03/18 12:42ID:???
確かに>>225は禿だけど、不可抗力の身体的欠陥を指摘するのはよくないと思うな。
0230nobodyさん04/03/18 14:19ID:???
>>229
禿同
0231nobodyさん04/03/18 16:21ID:???
>>229
禿げ同
0232nobodyさん04/03/18 20:01ID:???
imgboardにトリップ機能と半角カナ書き込み機能つけてん。よろ〜。
あ、サムネイルもついでにつけといてね。期限は3日あげちゃう(はぁと
0233nobodyさん04/03/18 20:15ID:???
ついてるよ
0234てぷる04/03/18 20:38ID:???
http://marunage.web2.poporo.net/joyful/joyful.cgi
にアップされている、176R様が製作された
「どりーむぽすと」に一行レス機能が欲しいのですが、
どのように改造したらいいのでしょうか?
作品No.ごとに、"$no.log"というファイルを作って、
それを読み込んで作品の下に表示…と考えたのですが、
技術が伴わないのでなんとか改造して頂けませんでしょうか?
よろしくお願い致します。
0235nobodyさん04/03/19 09:10ID:???
>>234
the掲示板にいって作者に頼め。
023623504/03/19 09:13ID:???
すでに投稿してあった
マルチポストかよ
0237nobodyさん04/03/19 10:28ID:???
ttp://www.aikis.or.jp/~s-suzuki/cgilabo/webcalender/

ここのカレンダーなんですが、入力できる項目を増やしたいのです。
具体的には
---------------------------------
項目 ○○○

詳細 ○○○
    ○○○

色  標準 赤 青 黄
    標準 太字

リンク先(省略可)○○○
---------------------------------
↑こんな感じの投稿画面にして、
---------------------------------
■タイトルタイトル      ←リンクしてある。
詳細詳細詳細        ←これは普通のテキスト
詳細詳細詳細
---------------------------------
↑こんな感じに出力したいのです。
htmlはわかるので投稿画面までは出来たのですが
それをどうやって、入力した文字を反映させるかがわかりません。

あと、これは住民様の粋な計らいでかまわないのですが
当日分のスケジュールだけi-mode用に出力できないものでしょうか。

以上宜しくお願いいたします!
0238nobodyさん04/03/19 15:19ID:???
また古いもの見つけてきたな。
どうしてもそれを改造して使いたいのか?
余分な機能もついてるが希望しているようなものはあるぞ。
例えば
ttp://www3.biwako.ne.jp/~nobuaki/webcal/index.html
0239nobodyさん04/03/19 19:16ID:???
>>238
実はそのスクリプトも考えたのですが、
確かに余計な機能が多すぎるんですよね。
仮にコレなら名前欄、電子メール欄、時間欄
種別欄とパスワード、返信欄はいらないので
タイトルをリンクにできるような感じで使いたいです。
出力は>>237で述べたとおり。

あと次から次へとスケジュールが増えていく
(投稿自由にしてある)ので
出来れば今使っているのを改造して使いたいです。
024016804/03/20 10:39ID:???
>>237
※行番号は上から順に追加・変更を行ってずれた番号

・ 428・440・452行目あたりをそれぞれ以下の2行に変更
※編集画面のTEXTAREAが1行なので複数行の予定はROWSを増やすように
  しただけ。依頼内容とは関係ないのでやらなくても支障はない。
print "<TEXTAREA NAME=\"$i\" ROWS=1 COLS=60>$comment</TEXTAREA>";
            ↓
$rows = $comment =~ s/<BR>/\n/ig + 1;
print "<TEXTAREA NAME=\"$i\" ROWS=$rows COLS=60>$comment</TEXTAREA>";

・ 580行目あたりにある項目の<TR>・・・</TR>の下に4行追加
print "<TR>\n";
print "  <TD>項目</TD>\n";
print "  <TD><INPUT TYPE=\"text\" NAME=\"title\" SIZE=30></TD>\n";
print "</TR>\n";
            ↓
print "<TR>\n";
print "  <TD>項目</TD>\n";
print "  <TD><INPUT TYPE=\"text\" NAME=\"title\" SIZE=30></TD>\n";
print "</TR>\n";

print "<TR>\n";
print "  <TD>詳細</TD>\n";
print "  <TD><TEXTAREA NAME=\"detail\" ROWS=5 COLS=30></TEXTAREA></TD>\n";
print "</TR>\n";
024124004/03/20 10:42ID:???
続き (´-`).。oO(名前変えるほうがいいな・・・)

・ 700行目あたりのchop($line); # 改行コードをカットの下をそれぞれ以下に追加・変更
if ( $FORM{'url'} ne "" ) {
 $temp2 = "$line <A HREF=\"$FORM{'url'}\">$FORM{'title'}</A>\n";
}
else {
 $temp2 = "$line $FORM{'title'}\n";
}
$flag = 1;
            ↓
if ( $FORM{'url'} ne "" ) {# 改造
 $temp2 = "$line <A HREF=\"$FORM{'url'}\">$FORM{'title'}</A>";
}
else {
 $temp2 = "$line $FORM{'title'}";
}
if ($FORM{'detail'} ne "" ) {
 $temp2 .= "<BR>$FORM{'detail'}";
}
$temp2 .= "\n";
$flag = 1;
024224004/03/20 10:43ID:???
続き

・ 上記の10行ぐらい下の似たような部分も以下に変更
if ( $FORM{'url'} ne "" ) {
 $temp2 = "$FORM{'day'}:<A HREF=\"$FORM{'url'}\">$FORM{'title'}</A>\n";
}
else {
 $temp2 = "$FORM{'day'}:$FORM{'title'}\n";
}
push( @data, $temp2 );
            ↓
if ( $FORM{'url'} ne "" ) {
 $temp2 = "$FORM{'day'}:<A HREF=\"$FORM{'url'}\">$FORM{'title'}</A>";
}
else {
 $temp2 = "$FORM{'day'}:$FORM{'title'}";
}
if ($FORM{'detail'} ne "" ) {
 $temp2 .= "<BR>$FORM{'detail'}";
}
$temp2 .= "\n";
push( @data, $temp2 );
024324004/03/20 10:44ID:???
以上までが詳細対応の分。以下、携帯対応の分。

続き

・ 42行目あたりに以下を追加
#===============================================================================
# 携帯用の初期設定
#-------------------------------------------------------------------------------
$i_title = "今日の予\定"; # タイトル文字列
$i_title_col = '#000090'; # タイトルの色
$i_bg_color = '#FFFFFF'; # 背景色
$i_text_color = '#000000'; # テキスト色
$i_link_color = '#2222ff'; # リンク色
$i_alink_color = '#ff0000'; # リンク中の色
$i_vlink_color = '#aa22aa'; # 既リンク色
$i_holiday = '#FF0000'; # 日付の文字色(休日)
$i_sunday = '#FF0000'; # 日付の文字色(日曜日)
$i_saturday = '#0000FF'; # 日付の文字色(土曜日)
$i_weekday = '#000000'; # 日付の文字色(平日)
$i_index = '../'; # 戻り先(URL)

・ 86行目あたりの&calender;の下に以下を追加
if ( $FORM{'view'} eq 'i' ) {
 &i_html;
}
024424004/03/20 10:47ID:???
続き (このsubは行数が多いので2レスに分割)

・一番下のsub errの上あたりに以下を追加
#----------------------------------------------------------
# 携帯用今日の予定画面の表示
#----------------------------------------------------------
sub i_html{

 print "Content-type: text/html\n\n";
 print "<HTML>\n<HEAD>\n<TITLE>$i_title</TITLE>\n</HEAD>\n\n";
 print "<BODY BGCOLOR=\"$i_bg_color\" TEXT=\"$i_text_color\" LINK=\"$i_link_color\" ALINK=\"$i_alink_color\" VLINK=\"$i_vlink_color\">\n\n";

 print "<FONT COLOR=\"$i_title_col\">$i_title</FONT><br>";

 if( $wday == 0 ) { # 日曜日
  $i_date_color = $i_sunday;
 }
 elsif( $wday == 6 ) { # 土曜日
  $i_date_color = $i_saturday;
 }
 else {
  $i_date_color = $i_weekday;
 }
 if( $HOLIDAY{$mday} eq "=" ) {
  $i_date_color = $i_holiday;
 }
024524004/03/20 10:49ID:???
上のsubの続き

 print "<FONT COLOR=\"$i_date_color\">$year年$month月$mday($youbi)</FONT>\n";
 print "<HR>\n";

 if( $DATA{$mday} ne "" ) {
  $comment = $DATA{$mday};
 }
 else {
  $comment = "予\定はありません";
 }
 print "$comment\n";

 print "<HR>\n";
 print "<A HREF=\"$i_index\">戻る</A>\n<BR>\n";
 print "</BODY>\n</HTML>\n";
 exit;
}

以上

※ 携帯からのアクセス(本日分を表示)
http://*******/webcalen.cgi?view=i
0246nobodyさん04/03/20 13:22ID:iCBIVaD5
>>240
うpろーだー使えよw
024723704/03/20 14:53ID:???
>>240-245

おぉ。神様!有難うございます!
携帯にまで対応してもらって…ほんとに感謝です。
便利になりました。
最初に自分でやってたやり方と見比べたりして
「なるほど、そうか…」などと関心しつつ
色々勉強にもなりました。
024824004/03/20 15:04ID:???
ロダに上げるのはなんとなく改造版の再配布みたいでなぁ・・・
それに親切でやってあげてるわけじゃなく、自分が作ってるものが
ちょっと行き詰まった時の気分転換だし。
今のところ、落として解凍してすぐ使えますまでやってやろうとは思わないな。
有料なら別だけど・・・ってか?w
0249nobodyさん04/03/20 19:11ID:iCBIVaD5
>>240-245のとこだけ
txtにしてUPすればイイんじゃねーの
0250nobodyさん04/03/20 20:40ID:QQ01kqz9
改造工房スレから失礼します。

ttp://tackysroom.com/sample/smp_annecho.cgi

ここのスケジュールCGIの表示形式を、一番最初に開いた時に
当月(今なら3月)でなく他の月(5月とか)にしたいんですが、
何処を弄ればいいのでしょうか。
スクリプトはこれです。

ttp://hy-t.hp.infoseek.co.jp/sc.txt

ご教授よろしくお願いいたします。
0251nobodyさん04/03/20 20:53ID:???
>>249
禿同
2ちゃんの資源の無駄遣い
せっかく>>132がうp炉だ提供してくれてるんだし。
0252nobodyさん04/03/20 21:06ID:???
>>250
一番最初に開いた時に表示したい月をいつどこで誰が決めるんだ?
025325004/03/20 21:10ID:QQ01kqz9
$cyear = 1989;
$cday = 365;
($sec,$min,$hour,$day,$mon,$year,$wday)= localtime;
if( $FORM{'action'} eq 'move' || $FORM{'action'} eq 'download'){#表示対象年月が変更された場合
$year = $FORM{'year'};
$mon = $FORM{'month'};
}else{
$year = $syear;
$mon = $smonth;

ここのlocaltime辺りを変更すればいいとかかなぁ、と思うのですが…
違います?
025425204/03/20 21:20ID:???
いや、もう少し上の
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);

このtimeにご希望のエポックを入れればよし。
例えば2003年09月21日なら、
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(1064070000);
025525004/03/20 21:27ID:QQ01kqz9
252さんご回答ありがとうです!

しかし何で2003年09月21日が1064070000になるのか分からない…(若葉

コレスケジュール表に使いたいので、今年の5月を標準表示に
したいのですが、その場合はどういう数字を入れればよろしいので?
025625204/03/20 21:35ID:???
>>255
エポック秒で検索汁

と思ったらここは丸投げスレか
じゃ、しょうがないな。
1083337200
025725004/03/20 21:39ID:QQ01kqz9
でーきーまーしーたー!!(感動)
252さん貴方は神だ!!!
ありがとうございましたーー(*´∀`*)
0258nanasi04/03/21 05:34ID:???
スクリプト等は
http://marunage.web2.poporo.net/joyful/joyful.cgi
の『c-board改造依頼』にあります。

改造点
 ・auの携帯でダウンロードできるようにして欲しい。

お礼は2890万ヘドロでお願いします。
■ このスレッドは過去ログ倉庫に格納されています