カテゴリ: PHP, CakePHP

ページ: << 1 2 3 4 5 6 7 8 9 10 >>

AuthComponent のパスワードハッシュ化メモ

パーマリンク 2010/01/19 15:20:40 著者: kumaold メール
カテゴリ: 仕事, プログラミング, PHP, CakePHP

CakePHP の AuthComponent でパスワードのハッシュ化をしたいときに、稼働中のシステムに手を加えるのも嫌なので、それ用のコントローラを作ってみた。

別にフォームを作るほどじゃないので。

以下、個人的メモ書き程度ですが、どうぞ勝手にお使いください。

<?php
/**
 * AuthComponent ハッシュ化パスワード表示ツール
 *
 * /password/hash/[パスワード]/
 */
class PasswordController extends AppController
{
    var $uses = null;
    var $components = array('Auth');
    
    function beforeFilter()
    {
        parent::beforeFilter();
        // ログイン処理をパス
        $this->Auth->allow('hash');
    }
    
    function hash($password = null)
    {
        echo $this->Auth->password($password);
        exit;
    }
}

 

CakePHP1.2ガイドブックCakePHP1.2ガイドブック
毎日コミュニケーションズ 2009-06-27
売り上げランキング : 201865
おすすめ平均

PEAR::Cache_Liteを使ってみる

パーマリンク 2009/11/11 23:22:13 著者: kumaold メール
カテゴリ: プログラミング, PHP

CakePHPだと標準のキャッシュ機能が便利でよく使っていますが、CakePHPの使えない環境で簡単に似たようなことができないか調べてみました。

PEARのライブラリにCache_Liteというのがあり、これで安全でお手軽なデータキャッシュが実装できます。


使い方も非常に簡単です。サンプルコードを置いときます。

// PEAR::Cache_Lite
require_once 'Cache_Lite.php';
$option = array(
    'cacheDir' => './cache/',  // キャッシュの保存場所(パーミッション707以上)
    'lifeTime' => 60 * 60,     // キャッシュの生存期間[秒]
);
$cache = new Cache_Lite($option); 

$cache_id = $url;
// キャッシュにデータがあれば利用
if ($data = $cache->get($cache_id, 'group')) {
    $html = $data;
// なかったのでデータを取得し、キャッシュする
} else {
    $tmp = file_get_contents($url);
    $cache->save($tmp, $cache_id, 'group');
    $html = $tmp; 
}

echo $html;

Cache_Lite::get ($id, 'group') 指定IDのキャッシュを返す
Cache_Lite::save ($data, $id, 'group') データを指定IDでキャッシュ

'group'でキャッシュのグループ化をすることで、同一ディレクトリに複数アプリからのデータをキャッシュをする場合での名前衝突を防ぎます。


ドキュメントには"高トラフィックな Web サイト向けに最適化されていますので、本当に高速でかつ安全です"とあるので、汎用的に使えそうです。

PEAR入門 PHP標準ライブラリを極める!PEAR入門 PHP標準ライブラリを極める!
翔泳社 2005-09-09
売り上げランキング : 121398
おすすめ平均

type="text/javascript">
type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">

DB なし Model で FormHelper を使う方法

パーマリンク 2009/11/06 11:38:35 著者: kumaold メール
カテゴリ: プログラミング, PHP, CakePHP

CakePHPはDBを使用する環境で使うのがほとんどですが、そうでない場合もあります。そんなときは Model でこんな風にすればいいのはご存知かと思います。

class Example extends AppModel {
    var $useTable = false; // DBを使用しない
}

ところが、これを設定した場合でも View で FormHelper を使おうとすると、どういうわけか DB に接続しにいってしまいます。

たとえば、DB を使用しないメールフォームを作ろうとした場合などなど。
かといって便利なバリデーション機能を使わないのはもったいないです。

そこで、こんなコードを Model に設定すればいいようです。

var $_schema = array('id' => array('type' => 'integer'));

これでとりあえず FormHelper でのエラーは出なくなりました。
・・・が、今度はバリデーションのところでまた DB に接続しようとするエラー。

仕方ないので、 database.php にダミーの DB を設定したら何も出なくなりました。
根本的な解決策があったら教えてください。

参考記事
  formヘルパーをテーブルなしモデルで使用するとエラーの回避方法

type="text/javascript">
type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">

<< 1 2 3 4 5 6 7 8 9 10 >>

一六社で働くITエンジニアのブログ。

普段はWeb系システム開発と地元のPCサポートをやってます。いつの間にやら会社に8年目。
技術ネタ中心に日々の仕事と生活と趣味やらを気が向いたら書いてます。

2017年3月
 << <   > >>
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

検索

XMLフィード

16ブログ     powered by b2evolution free blog software