「ようこそ○○さん」と表示させたい
[戻る]
ひでじろう
[E-Mail]
2010/02/16(火) 22:28:57
FM server ADV 10にて、PHP Site Assistantを使用しています。
アカウントとパスワードで認証し、検索その他を行うページを作りました。これはこれで、簡単で便利でした。
はきだされたカスタムWEBに、 home.php というのがあります。
このページに、ログインしたアカウントに対応するユーザー名をもってきたいのです。
FMでは「名前」というフィールドになっています。
他のページを参考にするのですが、データの取り出し方がいまいちわからず、苦労しています。
ひでじろう
[E-Mail]
2010/02/26(金) 18:31:13
さみしいのですが、解決の自己レスです(笑)。
自動生成された home.php を、以下のように書き変えました。
/**
* FileMaker PHP Site Assistant Generated File
*/
require_once 'fmview.php';
require_once 'FileMaker.php';
require_once 'error.php';
$cgi = new CGI();
$cgi->storeFile();
$databaseName = 'データベース';
$layoutName = 'レイアウト';
$userName = $cgi->get('userName');
$passWord = $cgi->get('passWord');
$fm = & new FileMaker();
$fm->setProperty('database', $databaseName);
$fm->setProperty('username', $userName);
$fm->setProperty('password', $passWord);
ExitOnError($fm);
$layoutList = $fm->listLayouts();
ExitOnError($layoutList);
$findCommand =& $fm->newFindCommand($layoutName);
$findCommand->addFindCriterion('ログインしたアカウント','=='.$userName);
$result = $findCommand->execute();
ExitOnError($result);
$name = "";
$records = $result->getRecords();
$record = $records[0];
$name = storeFieldNames('名前', 0, $record, true, 'EDITTEXT', 'number');
-----------ここまで
で、$nameを本文中で「ようこそ $name さん」として、うまくいきました。
ただ、これは検索のルーチンとして、なんか美しくない気がしてますので、ご意見いただければと思います。
具体的には、
1.$findCommand->addFindCriterionをわざわざ使う必要があるのか?ということ。
もうログイン処理は済んでいるのだから、既に該当するレコードの情報くらい持っているのではないか?
2.検索結果を、
$records = $result->getRecords();
として、配列にとってから、
$record = $records[0];
と結果に格納しているのですが、もっとスマートな方法があるのではないか?
と、以上の2点です。
追加発言
きっぷみー TwnLounge Ver2.07 改