CGIなどのの質問を受付ます。
現在SPAM対策の為、一部ホストアドレスを規制中。
▼スレッド
│
└◇236:Re[2]:日記SPの画像アップについて 2 [ささみ] 04/20 16:30
└◇239:Re[3]:日記SPの画像アップについて 2 [moon(管] 04/21
└◇240:Re[4]:日記SPの画像アップについて 2 [ささみ] 04/28
└◇241:Re[5]:日記SPの画像アップについて 2 [moon(管] 04/29 <
お忙しい中、早々のご回答、誠にありがとうございました。スレッド一覧
「無事表示されました」と、報告できるよう頑張ってはみたのですが
残念ながら、いまだ画像の表示はちゃんとされないままです。
まず、お教え頂いたように
rib.plの57行目付近のファイルアップロードディレクトリを
$file_dir = '../../homepage/diaryimg/';
$file_dir2 = 'http://homepage?.nifty.com/******/diaryimg/';
338行目辺りの
$ImgFile[$_] = "$file_dir$img_f_n" .'_' ."$_$tail[$_]";
を
$ImgFile2[$_] = "$file_dir$img_f_n" .'_' ."$_$tail[$_]";
$ImgFile[$_] = "$img_f_n" .'_' ."$_$tail[$_]";
とし、すぐ下の部分を
open(OUT,"> $ImgFile2[$_]") || &error("アップロード失敗");
binmode(OUT);
binmode(STDOUT);
print OUT $upfile[$_];
close(OUT);
chmod (0666,$ImgFile2[$_]);
に変更しました。
また、nik.cgiの中の
1597行目辺りから1617行目辺りの
if (-e $_[6]) { unlink($_[6]); }
に該当する部分を
if (-e "$file_dir$_[6]") { unlink("$file_dir$_[6]"); }
に変更(数字はそれぞれ14、19、24、29としました)
そして、426行目付近のifの条件式の後ろに
$ImgFile[$_] = $file_dir2 .$ImgFile[$_];
を入れてみたのですが
実際に画像をアップロードし表示させてみると
HTMLのソース部分に反映されておらず
a href=200504190000_1.gif
img src=200504190000_1.gif
と、画像名のみとなっておりました。
logの方には指定通り、画像ファイル名のみ記録されていましたし、
ブラウザで
http://homepage?.nifty.com/******/diaryimg/200504190000_1.gif
とアドレスを指定してやると画像の表示はされましたので
画像のアップの方は問題なく、あとは表示の問題のみのようです。
430行目辺りから441行目辺りが
画像がある場合の画像位置別の表示の指定かなと見当を付けて
その辺りの
<a href="$ImgFile[$_]" target="_blank">
<img src="$ImgFile[$_]" border="0"$sz>
に該当するそれぞれの部分を
<a href="http://homepage?.nifty.com/******/diaryimg/$ImgFile[$_]" target="_blank">
<img src="http://homepage?.nifty.com/******/diaryimg/$ImgFile[$_]" border="0"$sz>
としてみたり、
$ImgFile[$_] = $file_dir2 .$ImgFile[$_];
を入れる位置を423行目から430行目辺りまで色々変えてみたり
シングルクォートやダブルクォートで囲んで
$ImgFile[$_] = '$file_dir2' .'$ImgFile[$_]';
$ImgFile[$_] ="$file_dir2 . $ImgFile[$_]";
にしてみたりと、色々やってみたのですが
いずれも結果は同じで、ソース内に指定されているのは画像名のみでした。
ちなみに、アイコンの方はlogファイル内を
http://homepage?.nifty.com/******/diaryicon/00000.gif アイコン名
と書き換えたところ、表示されました。
何かこういう状態になるような心当たりや、当方の記述ミスが有りましたら
お時間のある時、いつでも構いませんので、
ご指摘頂けませんでしょうか?
度々お手数をおかけいたしまして申し訳ございませんがよろしくお願いいたします。
> そして、426行目付近のifの条件式の後ろにスレッド一覧
> $ImgFile[$_] = $file_dir2 .$ImgFile[$_];
前に入れてみてください。
for (1 .. $file_m) {
$ImgFile[$_] = $file_dir2 .$ImgFile[$_];
if ($ImgFile[$_]) {
undef($sz);
$sz .= " width=\"$W[$_]\"" if $W[$_];
$sz .= " height=\"$H[$_]\"" if $H[$_];
if ($in{"gaz$_"} == 1) {
print qq|<div align="center"><a href="$ImgFile[$_]" target="_blank"><img src="$ImgFile[$_]" border="0"$sz></a></div>\n|;
print qq|$in{"comment$_"}|;
print qq|<br>\n|;
} elsif ($in{"gaz$_"} == 2) {
print qq|<a href="$ImgFile[$_]" target="_blank"><a href="$ImgFile[$_]" target="_blank"><img src="$ImgFile[$_]" border="0"$sz></a><br>\n|;
print qq|$in{"comment$_"}|;
print qq|<br>\n|;
} else {
print qq|<a href="$ImgFile[$_]" target="_blank"><img src="$ImgFile[$_]" border="0"$sz></a>\n|;
print qq|$in{"comment$_"}|;
print qq|<br clear="all">|;
}
} else {
print qq|$in{"comment$_"}|;
}
}
ご回答ありがとうございました。スレッド一覧
前の部分に入れて
for (1 .. $file_m) {
$ImgFile[$_] = $file_dir2 .$ImgFile[$_];
if ($ImgFile[$_]) {
undef($sz);
としてみたのですが、画像は表示されず、ソースの方も
a href=200504190000_1.gif
img src=200504190000_1.gif
と、画像名のみでした。
その後、ソースとにらめっこしながら色々と試してみた所、
716行目辺りから821行目辺りまでの
<a href="$_[6]" target="_blank"><img src="$_[6]" border="0"$sz>
に該当する部分を
<a href="http://homepage?.nifty.com/******/diaryimg/$_[6]" target="_blank">
<img src="http://homepage?.nifty.com/******/diaryimg/$_[6]" border="0"$sz>
にしてみた所、PC上で無事画像が表示されるようになりました。
画像を複数アップしても大丈夫でした。
過去の分のLOGがないので、
過去LOGで表示させた場合はどのようになるかの
確認はとれていないのですが。
もし大丈夫なようならこのまま使わせて頂こうと思っているのですが
この部分を書き換えた事により考えられる不具合は何か有りますでしょうか?
また、もしこの部分がこのままでも大丈夫な場合、
これと同じような表記が1955行目辺りから2062行目辺りまでに有ると思うのですが
この部分も同じように書き換えた方が良いのでしょうか?
それから、同日に複数の日記を別々に書いて画像をアップした場合
(時間の表示をさせない設定です)
同じ画像が表示されてしまうのですが
(例えば画像が6種類有って一つ目の日記に画像1〜3、
二つ目の日記に4〜6をアップすると
同日であった場合、4〜6の方も1〜3が表示されていうという状態です)
おそらく画像名を年月日時分で入れているため
時間表示させずに同日に別々に複数の画像をアップ
もしくは分まで同じで別々にアップすると
画像名がダブってしまうためだと思うのですが。
回避させる方法はやはり時間表示をさせることでしょうか?
毎回質問ばかりで申し訳ございませんがよろしくお願いいたします。
> 前の部分に入れてスレッド一覧
> for (1 .. $file_m) {
> $ImgFile[$_] = $file_dir2 .$ImgFile[$_];
> if ($ImgFile[$_]) {
> undef($sz);
> としてみたのですが、画像は表示されず、ソースの方も
> a href=200504190000_1.gif
> img src=200504190000_1.gif
> と、画像名のみでした。
>
> その後、ソースとにらめっこしながら色々と試してみた所、
> 716行目辺りから821行目辺りまでの
> <a href="$_[6]" target="_blank"><img src="$_[6]" border="0"$sz>
> に該当する部分を
> <a href="http://homepage?.nifty.com/******/diaryimg/$_[6]" target="_blank">
> <img src="http://homepage?.nifty.com/******/diaryimg/$_[6]" border="0"$sz>
> にしてみた所、PC上で無事画像が表示されるようになりました。
> 画像を複数アップしても大丈夫でした。
多分 $file_dir2 の設定がないのが原因だと思います。(多分)
$file_dir2 = 'URL';
というように設定すれば大丈夫だと思います。
> 過去の分のLOGがないので、
> 過去LOGで表示させた場合はどのようになるかの
> 確認はとれていないのですが。
私も確認していません。
というより、テストしてません。時間が取れないので
(今仕事中に返信してたりします^^;)
> もし大丈夫なようならこのまま使わせて頂こうと思っているのですが
> この部分を書き換えた事により考えられる不具合は何か有りますでしょうか?
多分大丈夫な気が。
> また、もしこの部分がこのままでも大丈夫な場合、
> これと同じような表記が1955行目辺りから2062行目辺りまでに有ると思うのですが
> この部分も同じように書き換えた方が良いのでしょうか?
変えておかないと修正とか削除とかに不具合がおきる可能性があります。
> それから、同日に複数の日記を別々に書いて画像をアップした場合
> (時間の表示をさせない設定です)
> 同じ画像が表示されてしまうのですが
> (例えば画像が6種類有って一つ目の日記に画像1〜3、
> 二つ目の日記に4〜6をアップすると
> 同日であった場合、4〜6の方も1〜3が表示されていうという状態です)
> おそらく画像名を年月日時分で入れているため
> 時間表示させずに同日に別々に複数の画像をアップ
> もしくは分まで同じで別々にアップすると
> 画像名がダブってしまうためだと思うのですが。
> 回避させる方法はやはり時間表示をさせることでしょうか?
>
ちゃんとは見てないのですが、バグな気がします。
原因はおっしゃるとおり、同日で同じファイル名になるから(だと思う)
回避は・・・日記の改造になってしまうので・・・
わかる人なら自己責任で・・・
すいません。
日記SPのほうは昔の日記通常版の改造品なので、
そのころのバグが残ったままなのです。
時間が取れてやる気が出たら今の日記から複数の画像をアップロードできるようにすれば解決されるのですが・・・
ちょっと難しい(時間がかかる)ので対応は未定です。ごめんなさい。