がるの健忘録

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

思いっきり覚書

最近触ってるので、とりあえずせっかくなので覚書くらい、と思って。
で、…まぁぶっちゃけTipsです。
また、まじめにホゲったわけではないので、随所に「いい加減さ」が見え隠れしますので、自己責任の下に読んでください(いつものことですが)。


…で、ちょいと私信失礼します。
とりあえずこっちにいろいろ書いておくのでチェックしてください(笑 < 大将さん


大前提として。
おおむね「Webからたたくプログラム」は
install_dir/html/
配下にある*.php
で、テンプレートは、
install_dir/data/Smarty/template/
配下にある*.tpl
がとりあえず対応してます。


また、data/logs/ ディレクトリにエラーログちっくなものがあるので、見てみると面白いかも。


DBハンドルはとりあえず

$conn = new SC_DBConn();

でゲトります。
んでもって。
selectは最悪、自己責任でSQL作ってから(おいらはMWのsecurityクラス使ってるざます)

$res = $conn->getAll($sql);

こんな感じ。
$resには

入ってるっぽいです。
ほかにもいろいろあるですが最悪これだけ把握しとけばど〜にかなります。
2007/10/29 追記
レコードがない場合、array(0)が返ってくるみたいです。


後は、とりあえず

$conn->query($sql);

ひとつあればどうにかなるです。


で、もうちょいこゆいTips。
お題は「顧客情報」。
パスワードの文字列。んと………

$db用string = sha1(ぱすわぁどもぢれつ . ":" . AUTH_MAGIC);

こんな処理がなされています。


ついでに。何に使ってるかよくわからんのですが。secret_keyなるカラムがありまして。
Excelには「暗号化顧客ID」と書かれてるですが、実際には顧客IDをごにょごにょするわけではなく、

  do {
    $secret = sfGetUniqRandomId("r");
//print "$secret \n";
  } while( ($result = $conn->getOne("SELECT COUNT(*) FROM dtb_customer WHERE secret_key = ?", array($secret)) ) != 0);

という処理によってまかなわれています。
また、sfGetUniqRandomIdは
data/lib/slib.php
というファイルで

/* 一意かつ予測されにくいID */
function sfGetUniqRandomId($head = "") {
  // 予測されないようにランダム文字列を付与する。
  $random = gfMakePassword(8);
  // 同一ホスト内で一意なIDを生成
  $id = uniqid($head);
  return ($id . $random);
}

という風に宣言されています。


もひとつ。顧客情報まわりのプログラムを触る場合。
たとえば管理画面でユーザ情報を出力すると

<input type="password" name="password" value="UAhgGR3L" size="30" class="box30"  />

となることに留意しましょう。ここでvalueに設定されているのはdata/conf/conf.phpにあります

define("DEFAULT_PASSWORD", "UAhgGR3L");

という設定です。
また、たとえば html/admin/customer/edit.php などにおいて。

  //-- パスワードの更新がある場合は暗号化。(更新がない場合はUPDATE文を構成しない)
  if ($array["password"] != DEFAULT_PASSWORD) {
    $arrRegist["password"] = sha1($array["password"] . ":" . AUTH_MAGIC);
  } else {
    unset($arrRegist['password']);
  }

といった処理があるのもTipsです。


…って内容、書いとかないと確定で忘れる自信が山盛りにあるので、メモ。