ホーム > フォーラム > 質問箱 > TinyDでユーザーIDを利用するには

TinyDでユーザーIDを利用するには
投稿者: yosukep | 投稿日時: 2005/10/2 23:02 | 閲覧: 12641回
yosukep
TinyDに登録したPHPコードで、ユーザーID(xoops_userのuidと同じ値)を使いたいと考えいます。

ネット上で検索をしてみましたが、あまりマッチする内容がありません。

どなたか、ご教授いただけませんでしょうか。

具体的にやりたいこととしては、xoops上で
ユーザーごとに交通費の管理ができるようなアプリを
作りたいと思っています。
フォームで管理するDBに書き込む際に、uidも登録できればと。

コメント(7)

Re: TinyDでユーザーIDを利用するには 
投稿者: gyo | 投稿日時: 2005/10/3 11:17
gyo
Re: TinyDでユーザーIDを利用するには 
投稿者: yosukep | 投稿日時: 2005/10/5 9:08
yosukep
ご回答ありがとうございます。

しかし、残念ながらうまく動作しませんでした。

$my_uid = $xoopsUser->uid();
echo $my_uid.

と入力してみましたが、エラーが出ます。

エラーメッセージは
Fatal error: Call to a member function on a non-object in /home/yosuke/public_html/xoops/html/modules/tinyd0/include/render_function.inc.php(67) : eval()'d code on line 1
となっています。

もう少し、自分自身で調べてみます。
Re: TinyDでユーザーIDを利用するには 
投稿者: suin | 投稿日時: 2005/10/5 10:45
suin
yosukepさん,こんにちは。

global $xoopsUser;

$uid = $xoopsUser->getVar('uid');

echo $uid;


と,してみてはいかがですか?

ちなみに,これは現在アクセスしているユーザーのUIDになりますから,ゲストが閲覧する可能性がある場合は,また別にチェックを加えないと,エラーになる可能性があります。
Re: TinyDでユーザーIDを利用するには 
投稿者: lob | 投稿日時: 2005/10/5 17:06
lob
yosukepさんすいませんが少し割込みさせてください。
全然関係ないかもしれませんがuidからnameやunameを引く場合
何かXOOPS側で関数が用意されていたりするのでしょうか?
それとも自前でsqlを発行する必要があるのでしょうか?
最近結構悩んでいていろいろ探したのですが結論が見つから
なかったもので一番近そうなスレッドにお邪魔しました。
ちなみに私の環境でもsuinさんのお勧めするやり方でアクセス
しているユーザの情報をとれています。

引用:

suinさんは書きました:
yosukepさん,こんにちは。

global $xoopsUser;

$uid = $xoopsUser->getVar('uid');

echo $uid;


と,してみてはいかがですか?

ちなみに,これは現在アクセスしているユーザーのUIDになりますから,ゲストが閲覧する可能性がある場合は,また別にチェックを加えないと,エラーになる可能性があります。
Re: TinyDでユーザーIDを利用するには 
投稿者: suin | 投稿日時: 2005/10/5 21:07
suin
lobさん、こんにちは。

引用:
lobさんは書きました:

全然関係ないかもしれませんがuidからnameやunameを引く場合
何かXOOPS側で関数が用意されていたりするのでしょうか?
それとも自前でsqlを発行する必要があるのでしょうか?


私もよく理解しているわけではないので、適切な表現ではないかも知れませんが、XOOPSではSQLクリエーを出して取得する方法、▲ラスを利用して取得する方法の2つがあります。

▲ラスを利用する場合は下記がその一例ですし、
global $xoopsUser;
$uid = $xoopsUser->getVar('uid');
echo $uid;


SQLを使えば、例えばこのような記述になります。
global $xoopsDB;
$sql = 'SELECT uname FROM '.$xoopsDB->prefix('users').' WHERE uid = 1';
$result = $xoopsDB->query($sql);
list($uname) = $xoopsDB->fetchRow($result);
echo $uname;


私の感覚としては、クラスを使った方が、オブジェクト指向の理にかなっているかは知りませんが、ソースがすっきりしますから、そちらのほうをよく使います。
もちろん、SQLが全くダメというわけではなく、場合によってはSQLクリエーを直接書いた方が、明瞭であったり、便利であったりする場合があります。
もしかしたら、他により明確な意義が有るのかも知れません。

ちなみに、,鉢△任蓮異なる動作をしますから、結果は違ってきます。
Re: TinyDでユーザーIDを利用するには 
投稿者: yosukep | 投稿日時: 2005/10/6 8:58
yosukep
suinさん

色々とご返答ありがとうございます。

おかげさまで解決しました。

>lobさん
割り込み全然かまいません。
さらにいろいろ知ることができたので、
ちょうど良かったです。
Re: TinyDでユーザーIDを利用するには 
投稿者: lob | 投稿日時: 2005/10/6 23:37
lob
suinさん

lobです。
とりあえず当面はsql直書きで対処することにしました。
コード的にはsuinさんに教えていただいた,汎韻犬發
を使ってます。

yosukepさん

割込み快諾していただきありがとうございました。

    投票(0)

    新しいものから | 古いものから | RSS feed
     
    To Top