「ようこそ○○さん」と表示させたい

[戻る]
ひでじろう [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 改