メイン
   XOOPS2バグ
     userinfo.php がループ

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
sakimura
投稿日時: 2004/2/5 19:19
長老
登録日: 2002/7/14
居住地: 東京
投稿: 292
userinfo.php がループ

ユーザーメニューのアカウント情報をクリックすると、「このエリアへのアクセスは許可されていません。
ページが自動的に更新されない場合はここをクリックしてください」と表示され、そのページをリロードします。当然同じことになって、ループします。

他のサイトではそのようなことは起きていません。
たぶん、私があほな設定をしているんだと思いますが、教えていただけないでしょうか?ソースは見たんですが、疲れているせいか、追いきれませんでした…。

minahito
投稿日時: 2004/2/6 14:07
長老
登録日: 2003/9/7
居住地: ALL-IN!
投稿: 1608
Re: userinfo.php がループ

 これ、相当おかしなことになってませんか?

 userinfo.php は独自に権限の有無をチェックしていないので、「権限がありません」というエラーはコアシステムのほうで発生しているはず何ですが、userinfo.php 自体は、ヘッダとフッタをインクルードする独自設置のHTMLファイルと同じ位置づけではなかったでしょうか。
 モジュールディレクトリなどに所属していないので、gperm_modid=1 の並びだったと思いましたが、よしんばそこへの権限がなくても、sakimura さんのようなエラーは発生しないのではないでしょうか?

 試しにうちのサイトで、ゲストの groupperm を全部とばしてみましたが、userinfo.php は問題なく表示可能でした。(user.php も同じく)
 何らかの原因で groupperm がおかしくなっていたとしても、影響はないように見えます。
(とはいえ、groupperm で蹴飛ばされているとしか思えない)

 その状況は、
(1)ゲストでも起こせる
 のでしょうか。
 その場合、
(2)group_permission テーブル gperm_groupid=3 で該当する行の状況ってどうなのでしょうか?

# sakimura さんなら追い切れるはず !!

Tom_G3X
投稿日時: 2004/2/6 17:08
長老
登録日: 2002/11/10
居住地: 愛知県春日井市
投稿: 973
Re: userinfo.php がループ

実はね、ウチのサイト、特にHackとか、テンプレートを変更した覚えもないんですが、
ゲストが、ユーザーのアカウント情報を見に行くと、ログイン画面に飛ばされて、見えないんですよ。
不思議なんですけどね・・・・。
http://malaika.s31.xrea.com/

ユーザー同士なら、正常にアカウント情報が見れますので、
まぁ〜、それはいいとして、

でも、このサイトは、ちょっとヘンなんですよね。
http://www.modules.xoops2.com/

ゲストがアカウント情報を見に行くと、ログイン画面に飛ばされます。
で、ログインして、ユーザーが他人のアカウント情報を見に行くと、
ループしちゃうんですよ。
たぶん、sakimuraさんの言われてる事と同じ現象かと思うんですが・・・。

sakimura
投稿日時: 2004/2/6 18:01
長老
登録日: 2002/7/14
居住地: 東京
投稿: 292
Re: userinfo.php がループ

これ、まさに同じ現象ですね。

私がこの問題に突き当たったサイトは http://www.vrenpo.com/ です。これ、ほとんど、インストールしただけのサイトなんですが…。他に4つほど Xoops のサイトを作っていますが、他では起きていないんですよねぇ。

minahito
投稿日時: 2004/2/7 0:41
長老
登録日: 2003/9/7
居住地: ALL-IN!
投稿: 1608
Re: userinfo.php がループ

 実際に見させて頂きましたが、リロードループ画面はけっこうインパクトありますね……
 これはちょっと、仕留めておいたほうがよいトラブルのような気がします。

 Tom さんのところで、ゲストが見られないが会員なら見られる、という現象が起きているってことは、やはりあそこは何らかの権限にぶらさがっているということですか…… ;;

 しかし、block_read はブロックの読む権限みたいですし、module_read は全部消してみたが再現取れなかったし……

 ひょっとして、
 groupperm じゃない部分でチェックされているのか??

# Tomさんとsakimuraさんところっていうのが凄い……

# ケアレスの類ではなさそうですね

sakimura
投稿日時: 2004/2/10 21:12
長老
登録日: 2002/7/14
居住地: 東京
投稿: 292
Re: userinfo.php がループ

なんだか良くわからないけれども、userinfo.php の終わりの部分の foreach loop をコメントアウトすると正常稼動するようになります。ここのことです:なんでしょね?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
foreach ($mids as $mid) {
        $module =& $module_handler->get($mid);
        $results =& $module->search('', '', 5, 0, $thisUser->getVar('uid'));
        $count = count($results);
        if (is_array($results) && $count > 0) {
                for ($i = 0; $i < $count; $i++) {
                        if (isset($results[$i]['image']) && $results[$i]['image'] != '') {
                                $results[$i]['image'] = 'modules/'.$module->getVar('dirname').'/'.$
results[$i]['image'];
                        } else {
                                $results[$i]['image'] = 'images/icons/posticon2.gif';
                        }
                        $results[$i]['link'] = 'modules/'.$module->getVar('dirname').'/'.$results[$
i]['link'];
                        $results[$i]['title'] = $myts->makeTboxData4Show($results[$i]['title']);
                        $results[$i]['time'] = $results[$i]['time'] ? formatTimestamp($results[$i][
'time']) : '';
                }
                if ($count == 5) {
                        $showall_link = '<a href="search.php?action=showallbyuser&amp;mid='.$mid.'&
amp;uid='.$thisUser->getVar('uid').'">'._US_SHOWALL.'</a>';
                } else {
                        $showall_link = '';
                }
                $xoopsTpl->append('modules', array('name' => $module->getVar('name'), 'results' =>
$results, 'showall_link' => $showall_link));
        }
        unset($module);
}
Tom_G3X
投稿日時: 2004/2/10 22:05
長老
登録日: 2002/11/10
居住地: 愛知県春日井市
投稿: 973
Re: userinfo.php がループ
引用:
Tom_G3Xさんは書きました:
実はね、ウチのサイト、特にHackとか、テンプレートを変更した覚えもないんですが、
ゲストが、ユーザーのアカウント情報を見に行くと、ログイン画面に飛ばされて、見えないんですよ。
不思議なんですけどね・・・・。
http://malaika.s31.xrea.com/

ユーザー同士なら、正常にアカウント情報が見れますので、
まぁ〜、それはいいとして、

訂正します。
管理者権限でチェックしてましたので気が付かなかったですが、
ウチのサイトでも、普通のユーザーが別のユーザーのアカウント情報を見ようとすると、
ループになってしまいます。 :-?

あぁ〜困った・・・・。なんでだろう〜〜、なんでだろう〜。 :-D

minahito
投稿日時: 2004/2/10 22:21
長老
登録日: 2003/9/7
居住地: ALL-IN!
投稿: 1608
Re: userinfo.php がループ

 分かった!!
 これ検索で蹴飛ばされているんですね。
 問題の foreach 文は、ユーザープロフィール画面で下部に表示される「最近の投稿」に関するコード部です。

 インストールされているモジュールのどれかの search.inc.php に問題があって、そこの権限チェックでエラーを起こしているんじゃないですか。
 それはその search.inc.php の書き方が悪いということになると思います。

 そこのループは、アクセス権限がないモジュールは見に行かないようになっていると思ったんですが、そうじゃないのかな?
 search.inc.php でモジュールの設定情報を引っ張り出そうとして、コアシステムから蹴られたのかな。

 いずれにしても、 search.inc.php のほうでコアシステムに問い合わせを飛ばしていて、コアシステムのほうではコールバック関数のほうでエラーが起きたなんていうのは把握してないから、その場でエラー画面を出してしまっている。それで、そのようなループ現象を生んでいるんじゃないかと思います。

 あとはその問題のモジュールを突き止めれば……

Tom_G3X
投稿日時: 2004/2/10 22:24
長老
登録日: 2002/11/10
居住地: 愛知県春日井市
投稿: 973
Re: userinfo.php がループ
引用:
sakimuraさんは書きました:
なんだか良くわからないけれども、userinfo.php の終わりの部分の foreach loop をコメントアウトすると正常稼動するようになります。ここのことです:なんでしょね?

これって、検索の部分ですよね・・・・

今、いろいろ試してるんですけど、
「mantis」を一時的に「非アクティブ」にしたら、ループしなくなりました。
どうも、「mantis」が臭そうだなぁ〜〜〜
sakimuraさんところも、もしかして「mantis」入れてたりしますか?

「mantis」のsearch.inc.phpあたりが、お行儀の悪い事してるんだろうか・・・・要調査です。

minahito
投稿日時: 2004/2/10 22:31
長老
登録日: 2003/9/7
居住地: ALL-IN!
投稿: 1608
Re: userinfo.php がループ
引用:
「mantis」のsearch.inc.phpあたりが、お行儀の悪い事してるんだろうか・・・・要調査です。

 秋頃に、Mantis の話題としてそんな話が出てませんでしたっけ?
 このフォーラムのなかで具体的にコードを出しながら話をしていたスレッドがあったような……
 さくっと探したぶんには、

http://jp.xoops.org/modules/newbb/viewtopic.php?viewmode=flat&topic_id=2379&forum=11

 しか見つからなかったのですが……

 しかし、mantis が search.inc.php のなかで権限を見ているとも思えないが……

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

 
To Top