PEAK XOOPS - [minihaku] 新規登録とアカウント編集画面に表示されない in englishin japanese

[minihaku] 新規登録とアカウント編集画面に表示されない

  • You cannot open a new topic into this forum
  • Guests cannot post into this forum
Previous post - Next post | Parent - Children.1 | Posted on 2007/1/16 2:41
ratchet  二等兵 From: Tokyo  Posts: 8
すばらしいモジュールを提供していただきありがとうございます。

アカウント情報に性別と生年月日を追加するという、
「ミニ白扇の使い方」に紹介されている方法そのままを
試してみましたが、うまく反映されません。

DBの方はALTER TABLEをし、アカウント情報のページには
表示されるようになったので、正しく動作はしているようなのですが、
新規登録とアカウント編集画面には追加した項目が表示されません。

minihaku_register.htmlとminihaku_edituser.htmlの変更は
テンプレートマネージャー上で行っています。

Xoops-2.0.16a-JP
minihaku-1.08
FreeBSD 4.10-RELEASE
Apache 1.3.37
PHP 4.4.4
mysql 4.1.21

サーバはレンタルサーバです。

何か注意した方がよい点などがありましたら、どうぞお教え下さい。
よろしくお願いいたします。
Votes:2 Average:10.00
Previous post - Next post | Parent - Children.1 | Posted on 2007/1/16 3:34
GIJOE  先任軍曹   Posts: 4110
単に、mainfile.php の書き換えを忘れているんじゃないでしょうか。
Votes:1 Average:10.00
Previous post - Next post | Parent - Children.1 | Posted on 2007/1/16 8:51
ratchet  二等兵 From: Tokyo  Posts: 8
素早いご回答ありがとうございます!!

mainfile.phpについてですが、
include XOOPS_ROOT_PATH.'/modules/minihaku/include/mainfilehook.php' ;

と一番最後の } の前の行に追加してあります。
またFTPでファイルをサーバにアップ後、パーミッションは 444 にしてあります。
もしくは書き換えたあとになにか作業が必要なのでしょうか。

初歩的な質問をしてしまい申し訳ありませんが、
よろしくお願いいたします。
Votes:3 Average:10.00
Previous post - Next post | Parent - Children.1 | Posted on 2007/1/16 9:18
GIJOE  先任軍曹   Posts: 4110
であれば、単純にテンプレートの書き換えに失敗しているんじゃないでしょうか。
テンプレートマネージャで操作、と書いている時点で、基本的な勘違いをしている可能性が大です。
テンプレートを編集するなら、altsysは必須ですよ。
Votes:1 Average:10.00
Previous post - Next post | Parent - Children.1 | Posted on 2007/1/16 11:07
ratchet  二等兵 From: Tokyo  Posts: 8
Quote:

GIJOE wrotes:
テンプレートを編集するなら、altsysは必須ですよ。

ご回答ありがとうございます。altsysは確かに入れていませんでした。先ほどダウンロードしaltsysをインストールしてみました。
ちょっと使い方が分かっていないので、まだ何とも言えませんが、
もう少し過去の書き込みなども見ながら自分のサイトを検証したいと思います。

現時点でaltsysを入れて少しいじってみただけでは、表示が変わりませんでした。

ありがとうございます。
Votes:3 Average:6.67
Previous post - Next post | Parent - Children.1 | Posted on 2007/1/16 12:18
GIJOE  先任軍曹   Posts: 4110
どこで詰まっているのかが判らないので、現時点ではなんとも言えないですね。

Quote:
DBの方はALTER TABLEをし、アカウント情報のページには
表示されるようになったので、正しく動作はしているようなのですが、
新規登録とアカウント編集画面には追加した項目が表示されません。

minihaku_register.htmlとminihaku_edituser.htmlの変更は
テンプレートマネージャー上で行っています。
これは、テンプレートの編集結果が一切、反映されていない、ってことですか?

altsysの高度なテンプレート操作で、div枠で囲んで、どのテンプレートが有効になっているかを確認すべきでしょう。
Votes:2 Average:5.00
Previous post - Next post | Parent - Children.1 | Posted on 2007/1/16 12:29
ratchet  二等兵 From: Tokyo  Posts: 8
Quote:
altsysの高度なテンプレート操作で、div枠で囲んで、どのテンプレートが有効になっているかを確認すべきでしょう。

この方法で確認をしましたところ、他の画面ではdiv枠とEdit:DB:~というファイルネームが見えましたが、新規登録と、アカウント編集の画面ではその表示が出ませんでした。

altsysでテンプレートを修正すると、templates_cディレクトリにある%%~minihaku_resister.html.phpと%%~minihaku_edituser.html.phpは書き換わっているようです。

何か私の方で大きな見落としをしている気がします。もう一度アタマから確認してみます。

色々とお手数をおかけしてしまい、すいません。。。
Votes:2 Average:5.00
Previous post - Next post | Parent - Children.1 | Posted on 2007/1/16 13:41 | Last modified
GIJOE  先任軍曹   Posts: 4110
Quote:

ratchet wrotes:
この方法で確認をしましたところ、他の画面ではdiv枠とEdit:DB:~というファイルネームが見えましたが、新規登録と、アカウント編集の画面ではその表示が出ませんでした。

altsysでテンプレートを修正すると、templates_cディレクトリにある%%~minihaku_resister.html.phpと%%~minihaku_edituser.html.phpは書き換わっているようです。
やっぱりフックに失敗してますね。
テンプレートを利用しない、オリジナルが描画しちゃってますから。

本当にmainfile.phpが書き換わっているか、確認してみたらどうでしょう?
パーミッションを444とか無意味なことはしなくていいですから。
Votes:3 Average:10.00
Previous post - Next post | Parent - Children.1 | Posted on 2007/1/16 14:32
ratchet  二等兵 From: Tokyo  Posts: 8
Quote:

本当にmainfile.phpが書き換わっているか、確認してみたらどうでしょう?
パーミッションを444とか無意味なことはしなくていいですから。

素早いご返答、本当に頭の下がる思いです。

サーバ上のmaifile.phpを一旦ダウンロードしてきてみたところ、
最後の行の1つ手前に、
include XOOPS_ROOT_PATH.'/modules/minihaku/include/mainfilehook.php' ;

その数行上に
define('XOOPS_TRUST_PATH', '(xxxxx)/xoops_trust_path');
の2行を追加した状態になっています。

mainfile.phpはXoopsをインストールしたディレクトリにあります。

他に確認をする箇所などは有りますでしょうか。
Votes:1 Average:10.00
Previous post - Next post | Parent - Children.1 | Posted on 2007/1/16 16:58
jidaikobo  上等兵   Posts: 26
こういうハマりで、意外によくあるのは、minihaku のアップのし直しとかでなおっちゃうとか……。
あるいは、一般設定の「themes/ ディレクトリからの自動アップデートを有効にする」がオフだとか、テンプレートをただしく選んでないとか……?(あてずっぽうのゴミレスで失礼。適当にスルーしてください。)
Votes:1 Average:10.00
Previous post - Next post | Parent - Children.1 | Posted on 2007/1/16 23:08
ratchet  二等兵 From: Tokyo  Posts: 8
jidaikoboさん、ありがとうございます。
一応再度入れ直したりもしてみましたが、うまくはいきませんでした。

レンタルサーバ(共用サーバ)の方に問い合わせたところ、どうもPHPのバージョンが古いらしく、標準モジュール以外は動いたり動かなかったり、そんな感じのようです。
その辺もあんまりメンテナンスされていないようです。

お手数を取らせてしまい申し訳ありませんでした。
あまり参考にならない決着になってしまい、すいません。
Votes:1 Average:10.00
Previous post - Next post | Parent - Children.1 | Posted on 2007/1/17 3:34 | Last modified
GIJOE  先任軍曹   Posts: 4110
そんなサポート担当者の逃げ口上で納得できるようなら最初から質問しない方がいいですよ。

少なくとも私のモジュールはPHPバージョンが多少古くても動くように作ってありますし、「標準モジュール」なんぞより、よほど多くの環境に対応してます。

とりあえず確認ですが、PHPデバッグはONにしてみましたか?
なんらかの理由でincludeに失敗してて、warningが出ている、なんて可能性もありますよ。
----
(追加)
あと、$_SERVER['SCRIPT_FILENAME'] がない、なんて可能性はありますね。

mainfilehook.php
<?php

if( ! in_array( $_SERVER['SCRIPT_FILENAME'] , array( XOOPS_ROOT_PATH.'/register.php' , XOOPS_ROOT_PATH.'/userinfo.php' , XOOPS_ROOT_PATH.'/edituser.php' ) ) ) return ;

switch( strrchr( $_SERVER['SCRIPT_FILENAME'] , '/' ) ) {
	case '/register.php' :
		include dirname(__FILE__).'/registerhook.php' ;
		break ;
	case '/userinfo.php' :
		include dirname(__FILE__).'/userinfohook.php' ;
		break ;
	case '/edituser.php' :
		include dirname(__FILE__).'/edituserhook.php' ;
		break ;
}
?>
の、$_SERVER['SCRIPT_FILENAME'] (2箇所)を、$_SERVER['PHP_SELF']に置き換えてみる、とか。

最終手段としては、ルートコントローラのregister.php、userinfo.php、edituser.php の各ファイルのmainfile.php 読込直後に、それぞれ、

include XOOPS_ROOT_PATH.'/modules/minihaku/include/registerhook.php' ;
include XOOPS_ROOT_PATH.'/modules/minihaku/include/userinfohook.php' ;
include XOOPS_ROOT_PATH.'/modules/minihaku/include/edituserhook.php' ;

を入れてやる、なんて手もあります。
(この場合、コアのバージョンアップで上書きされてしまう可能性はありますが)
Votes:3 Average:3.33
Previous post - Next post | Parent - Children.1 | Posted on 2007/1/17 6:18
ratchet  二等兵 From: Tokyo  Posts: 8
GIJOEさん、本当にありがとうございます。

結果ですが「最終手段」でうまくいくことが出来ました。
コアのバージョンアップをする際には注意したいと思います。

PHPデバグモードにしたときには、warning等は表示されませんでした。
またmainfilehook.phpの中の、$_SERVER['SCRIPT_FILENAME'] を、$_SERVER['PHP_SELF']もうまくいきませんでした。

今回は本当にまだまだ勉強不足であることを思い知らされました。
ありがとうございました。
Votes:1 Average:10.00
Previous post - Next post | Parent - Children.1 | Posted on 2007/1/17 9:55 | Last modified
GIJOE  先任軍曹   Posts: 4110
Quote:

ratchet wrotes:
またmainfilehook.phpの中の、$_SERVER['SCRIPT_FILENAME'] を、$_SERVER['PHP_SELF']もうまくいきませんでした。
ああ、何となく判りました。
PHPのバージョンが4.0.6とかそのあたりなんでしょう。
まさかそこまで古いとは思いませんでした。

$HTTP_SERVER_VARS['PHP_SELF'] で動くようならビンゴです。

すでに、XOOPSの動作環境は、PHP4.1.0以上が必須です。
(4.3.11以上推奨)
あちこちで質問する前に、今のホスティングサービスから乗り換えるべきでしょう。
------------
おっと、環境として、
Quote:
PHP 4.4.4
って書いてありますね。
これ、自分で確認しましたか?
単に実行バイナリとしてインストールしてあるPHPが4.4.4なだけで、httpdにぶら下がっているのは4.0.6だったり、とか。

本当に4.4.4であるとすれば、ビルド時になんらかのHackをしてスーパーグローバル変数を潰している?
Votes:1 Average:10.00
Previous post - Next post | Parent - Children.1 | Posted on 2007/1/18 0:36
ratchet  二等兵 From: Tokyo  Posts: 8
GIJOE様ありがとうございます。

Quote:

あちこちで質問する前に、今のホスティングサービスから乗り換えるべきでしょう。
お恥ずかしい限りです。私もその通りだと思います。ちょっと今回のサーバは失敗しました。
Xoopsを使わないのであれば十分だったのですが。

PHPのバージョンについてはphpinfo()で出た表示から読み取ったのでですが、細かい事までは分かりません。

もう少しいろいろな勉強が必要だと感じました、ありがとうございました。
Votes:1 Average:10.00
Previous post - Next post | Parent - Children.1 | Posted on 2007/1/20 3:37
GIJOE  先任軍曹   Posts: 4110
phpinfo() で確認したのであれば、バージョンが4.0.6ってことはないでしょうね。
おそらく、PHPをほとんど使ってない人が構成したCGI版なんでしょう。
同じCGI版でも、「さくら」あたりであればちゃんとこのあたりのスーパーグローバル変数は使えると聞いてます。
Votes:1 Average:10.00
Previous post - Next post | Parent - Children.1 | Posted on 2007/1/23 23:22 | Last modified
nezumiya  二等兵   Posts: 3
割り込みですみません。
実は私も全く同じ症状でした。

userinfoは大丈夫なもののincludeができておらず、テンプレートの変更が反映されない状態。

試行錯誤をした要点だけ、お役に立てば、ということで。

・mainfile.phpとmainfilehook.phpの要所にprint文を挿入し当該箇所をプログラムが通っているかを確認。通っているならいくつかの変数をprintしてみて確認。

・結論としては以下のように値が異なっていました(ブラウザでhttp://ドメイン/edituser.phpを開いたときに)。

$_SERVER['SCRIPT_FILENAME']  ・・・  /home/xxxx/ドメイン/edituser.php
XOOPS_ROOT_PATH.'/edituser.php'  ・・・  /usr/home/xxxx/ドメイン/edituser.php

phpなどサーバーサイドで動くプログラミングはほぼ初心者なので、これでmainfilehookのひとつめのifではじかれてreturnされているところまでは分かったのですが、はたと対処法に困りましたが、何気なしにmainfile.phpのXOOPS_ROOT_PATHの定義を変更して/userを外してみました。で、あっけなく解決です。

サーバの実装に詳しくないのでここで/userを外してほかの動作に影響が出ないかどうかについてはあまり自信がないですが、ざっと見たところ正常に動いているようです。

コアハックはやはり最小限にとどめたいのでこのような対応をしました。レンタルサーバで共用だったりするとマウント関連でこういうことが起きたりするものなんでしょうか。

原因が違う場合は大外しですが、よかったらお試しになってはいかがでしょうか。>ratchet様

もし状況がお分かりになる方がいらっしゃれば補足していただけるとうれしいです。>皆様
Votes:2 Average:5.00
Previous post - Next post | Parent - Children.1 .2 | Posted on 2007/1/24 3:27
GIJOE  先任軍曹   Posts: 4110
Quote:

nezumiya wrotes:
$_SERVER['SCRIPT_FILENAME']  ・・・  /home/xxxx/ドメイン/edituser.php
XOOPS_ROOT_PATH.'/edituser.php'  ・・・  /usr/home/xxxx/ドメイン/edituser.php
なるほど。
サーバ設定の関係で、ここが不一致、ということもあるんですね。

XOOPSのインストーラのコードを見たら、XOOPS_ROOT_PATHの初期値は getcwd() から求めてますので、シンボリックリンクではない、絶対パスが返ってきた。
$_SERVER['SCRIPT_FILENAME'] は、PHP関連の設定パスで返ってきた。

Quote:
レンタルサーバで共用だったりするとマウント関連でこういうことが起きたりするものなんでしょうか。
上にも書きましたが、単なるシンボリックリンクだと思います。
/home -> /usr/home

ただこれ、素直に読めば、サーバ設定ミスに見えますね。
suPHPか何かの設定で、/usr を書き忘れたか。
Votes:1 Average:10.00
Previous post - Next post | Parent - No child | Posted on 2007/1/26 2:22
nezumiya  二等兵   Posts: 3
シンボリックリンクやそれぞれのアプリケーションの設定など、レンタルサーバでは管理者であっても手の届かないところが多いのでさまざまな(広義の)モジュールに依存するものを運用するのが大変なわけですね。

勉強になりました。

ratchetさんもコアハックなしで解決するといいのですが。。。

ROMが多いと思いますが、これからもこちらのサイトで勉強させてください。
よろしくおねがいします。
Votes:2 Average:5.00
Previous post - Next post | Parent - Children.1 | Posted on 2007/1/26 2:22 | Last modified
nezumiya  二等兵   Posts: 3
すみません。
さくっとsubmitダブルクリックしちゃいました。
削除しちゃってください。
お手数かけます。。。
Votes:1 Average:10.00
Previous post - Next post | Parent - No child | Posted on 2007/1/26 3:39
GIJOE  先任軍曹   Posts: 4110
Quote:

nezumiya wrotes:
すみません。
さくっとsubmitダブルクリックしちゃいました。
削除しちゃってください。
お手数かけます。。。
削除して、というメッセージをいじっちゃってもうしわけないのですが

submitダブルクリックで2重投稿になります?
ああ、そうか。
フォーラム投稿にはチケット入れてないことを忘れてました。
そういうミスを防ぐ、という意味もあるし、チケット入れた方がいいかなあ。

とりあえず、投稿した直後に気づいて消したい、ということは多そうなので、投稿後5分間だけ、削除できるようにしておきました。
(ただし対象投稿は、5分以上経過してますし、レスがついちゃったので削除できません
Votes:1 Average:10.00

  Advanced search


Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!