LOGIN ID Password Auto Login Register Now! Lost Password?
Xoops Q&A

HD1.0.2 for XCL2.1 に update後GNAVIで投稿できなくなりました

  • ログインせずに、この質問カテゴリに投稿できません
  • Xoops Q&A ではゲスト投稿が禁止されています。登録はこちらからどうぞ
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 | 投稿日時 2008-8-20 23:25
gara  2nd Class 登録日: 2008-8-20   投稿数: 14
トラブルの管理画面が崩れる(XCL2.1.4->2.1.5アップデート後;一部ユーザ)と根が同じかと思いますが、GNAVIで投稿できなくなりました。
中央部より投稿ボタンが消え、メニューの投稿クリックで権限がありませんログインしてください画面になります。
もちろんログインしていますし、権限も付加しています。
他モジュールでは今のところ問題ありません。

環境は下記になります。
Apache 2.2.3
PHP 5.1.6
MySQL 5.0.45
UTF8で運用しています。

トラブルかここか投稿先に悩みましたが、とりあえずここに。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-8-21 10:38
yukinojou  3rd Class 登録日: 2007-3-23   投稿数: 1
わたしも同じ現象が発生しました。
いろいろ調べてみると、 http://xoops.iko-ze.net/modules/d3forum/index.php?topic_id=147 に行き当たりました。
これを見て「XANHTEユーティリティ」をアンインストールすると無事復旧しました。完全な解決策ではありませんが、とりあえず投稿ができなければ困る場合はお試し下さい。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008-8-21 17:06 | 最終変更
tohokuaiki  Lieutenant 登録日: 2006-5-16   投稿数: 415
gnaviってmyalbumベースなんですね。

多分、ここを直せば動くと思います。
/xoops_trust_path/modules/gnavi/include/common_prepend.inc.php
<?php

//include files
require_once dirname(dirname(__FILE__)).'/include/read_configs.php' ;
require_once dirname(dirname(__FILE__)).'/include/get_perms.php' ;
require_once dirname(dirname(__FILE__)).'/include/draw_functions.php' ;
require_once dirname(dirname(__FILE__)).'/include/common_functions.php' ;
require_once dirname(dirname(__FILE__)).'/include/common_javalang.inc.php' ;
require_once XOOPS_ROOT_PATH."/class/xoopstree.php" ;

<?php

//include files
require dirname(dirname(__FILE__)).'/include/read_configs.php' ;
require dirname(dirname(__FILE__)).'/include/get_perms.php' ;
require_once dirname(dirname(__FILE__)).'/include/draw_functions.php' ;
require_once dirname(dirname(__FILE__)).'/include/common_functions.php' ;
require_once dirname(dirname(__FILE__)).'/include/common_javalang.inc.php' ;
require_once XOOPS_ROOT_PATH."/class/xoopstree.php" ;
read_config.phpとget_perms.phpはmyalbumではincludeする時には_onceを入れてないハズです。requireで確実にincludeしないとダメなので。

Xanhteではxoops_version.phpを一回Readしてるので、バッティングしてしまいますね(gnaviのxoops_version.phpでinclude get_perm.phpしてる)。ここはXanhte側ではなくgnavi側を直すのが妥当かと。


あと、gnaviって<{$xoops_module_header}>をバリバリ上書きしてしまいますね。
投票数:4 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008-8-21 19:20
gara  2nd Class 登録日: 2008-8-20   投稿数: 14
>yukinojouさん
XANHTEユーティリティってほかのモジュールが使っていたようなと思いながらアンインストールしてみると、ホームページが真っ白に。

>tohokuaikiさん
/xoops_trust_path/modules/gnavi/include/common_prepend.inc.phpを書き換えたところ解決しました。
gnavi作者さんに報告しておきます。

ありがとうございました。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-8-24 0:35 | 最終変更
kentaro  2nd Class 登録日: 2007-4-9   投稿数: 10
garaさん、ご報告ありがとうございます。
tohokuaikiさん、解決策を示していただいてありがとうございました。

直ちに修正しようと思ったのですが、ちょっと教えてほしいです。
require_onceだと、確実にREADされないのでしょうか。
初回は確実にIncludeされるという認識でした。
同名ファイルがあるとだめなのでしょうか。
PHPマニュアルを見てもそのあたり詳しくのっていませんでしたので、
よろしければ今回の原因を教えていただきたいです。



また、当サイトにて大変不適切で失礼なコメントをしてしまい、
申し訳ありません。ごめんなさい。
http://xoops.iko-ze.net/modules/d3forum/index.php?topic_id=147
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008-8-24 10:44 | 最終変更
tohokuaiki  Lieutenant 登録日: 2006-5-16   投稿数: 415
引用:

kentaroさんは書きました:
require_onceだと、確実にREADされないのでしょうか。
初回は確実にIncludeされるという認識でした。
私も一時期は勘違いしてたのですが、include/requireはまさにコードのコピー&ペーストみたいな感じになります。何回やってもReadされます。

include_once/require_onceは、FunctionやClassやdefine文みたいな「一度定義したら書き直せない」コードを書いたファイルをReadする時に使います。

昔はPHPに*_once系が無かったので、functionの二重定義でFatalが出てしまうので、function自体を
if (!function_exists('Foo_func')){
    function Foo_func(){
    }
}
みたいにしてたそうです。

引用:

また、当サイトにて大変不適切で失礼なコメントをしてしまい、
申し訳ありません。ごめんなさい。
いえ、全然気にしていません。実際xanhteは色々と影響を及ぼしていることが多いので。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008-8-25 10:21
kentaro  2nd Class 登録日: 2007-4-9   投稿数: 10
tohokuaiki さん、
ご丁寧な回答ありがとうございます。

なるほど良く理解できました。

include_onceならいつでも大丈夫、
むしろinclude_onceを積極的に使うべきと勝手に勘違いしていました。

まだまだ勉強不足でした。
ありがとうございます。
投票数:2 平均点:10.00

  条件検索へ


Back to Page Top
MainMenu
Manuals
Search
XOOPS Official & Dev.
XOOPS Communities