アバター表示


投稿ツリー


前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2011/9/30 13:05
ホーリー 

こんにちは、御世話になります。

下記のような環境下でXOOPS自体ではアバター表示できていますが、d3diaryではパスが途中で切れてアバターが表示されないと言う障害が発生しています。何を確認し、どのような対処を行なえば良いのかアドバイスをお願い致します。

【環境】
XC Legacyバージョン : XOOPS Cube Legacy 2.2.1 Beta1
使用言語 : japanese
オペレーティングシステム : Windows
サーバー : Apache/2.2.20 (Win32) PHP/5.2.17
PHPバージョン : 5.2.17
MySQLのバージョン : 5.0.27-community-nt

xsns 1.11 (アカウント情報ページをマイページに置き換える)
d3diary 0.22a

【現象】
d3diaryの画像パス
  http:// www.XXXXXXXXXXXXX/uploads/cavtXXXXXX
正しくは
  http:// www.XXXXXXXXXXXXX/uploads/cavtXXXXXXXXXXXXX.png

以上、宜しくお願い致します。 m(__)m

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2011/9/30 14:29 | 最終変更
なーお  長老   投稿数: 1784

ホーリーさん、こんにちは。

d3diaryだけアバターが表示されないとのこと。ご報告ありがとうございます。

d3diaryではリスト表示時の速度低下を防ぐために、「users」テーブルに直接SQLを発行して複数メンバーのアバターファイル名を一度に取得しており、他のモジュール等とは表示が変わってしまう可能性もあるかもしれません。 :roll:

で、確認方法ですが、以下の手順でお願いできますか。

  1. phpMyadminなどで、
    • 「users」テーブルの「user_avatar」フィールドのファイル名と、
    • 「avatar」テーブルの「avatar_file」フィールドのファイル名と
      を比較してください。
  2. 上記で2つのファイル名が異なる場合、サイトを閉鎖し、XSNSによるプロフィールページのオーバーライドを無効にし、XOOPS CUBE標準のアバターアップロード機能でアバターをアップロードしてみて変化があるかどうかチェックする。
  3. (trust側) class/func.class.php の 「function get_user_avatar($uids)」 内の 112行目あたりに、
    112
    
        $user_avatar = htmlspecialchars($dbdat['user_avatar'], ENT_QUOTES);
    という行がありますので、この行の後に、
    113
    114
    
    var_dump($dbdat['user_avatar']); echo "<br />";
    var_dump($user_avatar); echo "<br />";
    と追記してみて、(同様に)サイト閉鎖しFTPでアップロードし、表示されるダンプ結果を見てください。
  4. XCL2.2では、アバターアップロード周りが変更されていますので、betaバージョンをお使いであるというのは、何らかの不具合に遭遇する可能性もありますね。当方のXCL2.2.0で試してみましたが、同様の現象は確認できません。

以上、よろしくお願いします。

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011/10/3 15:11
ホーリー 

こんにちは、御世話になります。
(1つ前の記事が投稿失敗したので、再度書き込みます。1つ前の記事は消して頂けると助かります)

1、2の確認結果は特に問題箇所が見つかりませんでした。
3に関しては、ダンプ結果が出力されず確認できませんでした。

ダンプが出力されないため、その下の117行目のパス生成を修正して確認しましたが、修正内容がパスに反映されませんでした。
違う箇所を通っているのでしょうか?

出力されたHTMLソースを確認した結果、下記のように一定の文字数で画像ファイル名が切られていました。[code]ユーザー1

	<img src="http://www.XXXXXXXXX.com/uploads/cavt25b5bb" alt="cavt25b5bb" />
投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011/10/3 15:13
ホーリー 

こんいちは、御世話になります。

やはり、投稿に失敗するので、切れてしまった残りを書きます。

これを見る限りでは、どこかの文字数制限で切り詰められているように見えますが・・・

引用:
なーおさんは書きました:
  1. XCL2.2では、アバターアップロード周りが変更されていますので、betaバージョンをお使いであるというのは、何らかの不具合に遭遇する可能性もありますね。当方のXCL2.2.0で試してみましたが、同様の現象は確認できません。

先程、d3diaryへの画像アップを試みましたが、画像がアップされませんでした。アバターの件と画像アップの件と言い、何が原因なのでしょうか・・・ :-(

今の状況は下記の通りです  ・日記の詳細ページでは、アバターが表示される  ・最新の日記一覧では、アバターの画像ファイルパスが上記のように一定の文字数で切られ、パスエラーにより画像が表示されない。  ・記事投稿で、画像をアップする時、「プレビュー」なら画像が表示されるが、「送信する」では画像が表示されない。

以上、イロイロとあり、御迷惑をお掛けしますが、解決に向け御協力をお願い致します。

メニュー下にPHPデバック情報が表示されていますよ・・・ f(^^; プレビューを押すと、真っ白画面になります。 orz

投票数:0 平均点:0.00
返信する
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011/10/3 15:54 | 最終変更
なーお  長老   投稿数: 1784

ホーリーさん、こんにちは。

1,2,で異常無かったとのことなので、d3diary側で問題が出ていますね。

ああ、diarylist.phpのほうですね。 (trust側)main/diarylist.php だけ、ソースが違っていました。
その284行目付近

285
$_user_avatar = htmlspecialchars($dbdat['user_avatar'], ENT_QUOTES);

となってますので、

284
285
var_dump($dbdat['user_avatar']); echo "<br />";
var_dump($_user_avatar); echo "<br />";

としてみてください。

なお、外部ブログをご使用の場合は、365行目付近にも同様のソースがあるのでその部分にも追記してください。 diarylist.php以外は正常に表示されているようなので、以後の追及は速そうです。

それから、もしやとも思うのですが、ver0.08以前のテンプレートではアバター表示がなかったので、当時もし何か別のsmartyプラグインなどで表示していた場合など、テンプレートへの修正漏れなどがないか、ご確認ください。(編集した覚えが無い場合でも、最新のテンプレートがきちんと反映されてるかどうかも含めて・・)

以上、よろしくです。

PS: phpデバグは、さっき入れて戻し忘れてました。ありがとうございます。 また、ゲスト投稿で何らかのURLを2つ書くとスパムとしてはね付けるようになってます。 この件が長引きそうならできれば当サイトにご登録いただければ、もう少し書きやすくなるかも。。(但しxpWikiレンダラーが効いてることには変わりないんですが・・)

投票数:0 平均点:0.00
返信する

なし Re: アバター表示

msg# 1.2.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011/10/3 22:11
ホーリー 

こんばんは、御世話になります。

ダンプではうまく出力できませんでしたので、直接URLに値をセットして確認しました。

その結果、
$dbdat['user_avatar']の時点でcavt2268afと言う結果でした。

243行目のSQL文をMySQL Query Browserで実行した結果、user_avatarの値は正常なファイル名でした。

mySQL4のデーターをmySQL5.0に移行するのが失敗しているようです。

御迷惑をお掛けします。 m(__)m

どこが失敗しているのかわかりませんが、画像アップ関係が全て失敗する事がわかりました。アバターもその関係だと思います。

どうやって、直せばいいんだ~ (TへT)

投票数:0 平均点:0.00
返信する
なーお

なし Re: アバター表示

msg# 1.2.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011/10/3 23:32
なーお  長老   投稿数: 1784

ホーリーさん

少し話がわからなくなってきたので、以後は出来る限り正確を期して書いてください。

引用:
ダンプではうまく出力できませんでしたので、直接URLに値をセットして確認しました。

その結果、
$dbdat['user_avatar']の時点でcavt2268afと言う結果でした。

これの意味ですが、

$user_avatar = htmlspecialchars($dbdat['user_avatar'], ENT_QUOTES);
↓
$user_avatar = $dbdat['user_avatar'];

としてみた、ということでしょうか?? :roll:
知りたいのは、テンプレート側はそのままだったとすると、ここで何をやっても同じ結果になりはしないかな、と思ったので。

$user_avatar = '1234.jpg';

とか直書きしてみたらその通りのHTMLソースになりますよね? もしそうならないとしたら、先のコメントで書いたとおり、テンプレートの問題です。

243行目のSQL文をMySQL Query Browserで実行した結果、user_avatarの値は正常なファイル名でした。

これも真意がわからないです。ここで正常な値が取得できているとしたら、前々コメントの1,2が問題なかったことから、データベースは正常と考えるのが普通だと思うのですが、いかがでしょう。

mySQL4のデーターをmySQL5.0に移行するのが失敗しているようです。

diarylist以外では正常に表示されていることと、1,2で問題なかったことからも、DBは正常だと思うのです。

何はともあれ、Altsysで有効になっているd3diaryのテンプレート「diarylist.html」がどうなっているか、確認してください。

投票数:0 平均点:0.00
返信する

なし Re: アバター表示

msg# 1.2.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011/10/4 14:39
ホーリー 

御世話になります。

すみません、書いている途中で状況に進展があり、へんな書き方になってしまいました。

$user_avatar = $dbdat['user_avatar'];
上記の書き方を行なった結果、ファイル名の後ろが切れている事を確認致しました。(例:1234.jpgなら12と言う感じ)

そのため、243行目のSQL文をMySQL Query Browserで実行してみました。結果、user_avatarの値は正常なファイル名でした。
(上記例なら234.jpgと値が返ってきました。)

この段階では、SQLを実行して$dbdat['user_avatar'];に格納するまでの間で問題が出ている可能性が高いと思いましたが、他の障害報告があり、状況が急変しました。

他の障害とは、「アバターのアップでDB更新失敗となる」と言うものです。(xsnsをインストールした場合、しない場合でも同じ)
2の確認時にはアップできていたのですが・・・

m(__)m すみません、確認が甘かったようです。

そこで、同じモジュールの入ったXCLサイト(DBのみ新規作成)を立ち上げて動作確認を行ないました。その結果、新規DBを利用した場合にはアバター表示もアバターアップも正常に機能しました。
mySQL間のデーター移行を行なったDBを使用する場合にはNGで、新規に作成したDBでは正常に動くと言う結果から、mySQL間のデーター移行が失敗し、なんらかの問題を引き起こしているのではないかと今は考えています。

御迷惑をお掛けし、申し訳ございません。 m(__)m

投票数:0 平均点:0.00
返信する

なし Re: アバター表示

msg# 1.2.1.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2011/10/5 19:42
ホーリー 

御世話になります。

旧mySQL4のデーターを全てProtectorから抽出し、phpMyAdminから1つ1つ確認しながら新mySQL5にinsertして動作確認した結果、アバター表示、アバターアップ共に正常に動作するようになりました。

「ユーザーモジュールの投稿数ランキングのアバター表示ができているにも関わらずdiarylistでアバターが表示されない。」とか「アバターアップ時にDB更新失敗」になった根本原因を特定できませんでしたが、正常に動くようになって助かりました。

イロイロと御迷惑をお掛けし、申し訳ございません。

投票数:0 平均点:0.00
返信する

このトピックに投稿する

題名
ゲスト名
投稿本文
  条件検索へ