カテゴリ: コントローラー

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

Cookieの使い方

パーマリンク 2008/08/21 17:13:56 著者: cakephp メール
カテゴリ: コンポーネント, コントローラー

CakePHP1.2 RC2

Cookieの使い方です。

サイト全体で行う時は、app/app_controller.php に処理を入れます。

class AppController extends Controller
{
    var $components = array('Cookie');

    function beforeFilter()
    {
        $value = 'sample';
        // 書き込み
        $this->Cookie->write('cooking', $value);
    }
}


write のパラメータについての補足。

$this->Cookie->write('cooking', $value, false);

クッキー情報が暗号化されません。

$this->Cookie->write('cooking', $value, false, '10 Days');

クッキー保持期間を10日間に設定できます。


また、クッキーの名称は上記の例では、
CakeCookie[cooking]
となり、"CakeCookie"の部分を変更するには、beforeFilter 内で

$this->Cookie->name = 'Cookie';

とすることで変更できます。



CakePHP1.1

1.2 の Cookie コンポーネントをコピーして利用することができます。
ただし、内部で 1.2 の設定である Security.salt を呼び出している箇所があるので、その付近を修正する必要があります(暗号化が必要な場合)。
暗号化が必要でない場合は、1.2 の時と同様に第3引数に false を与えることで、そのまま利用することができます。

ファイルの存在確認

パーマリンク 2008/08/20 16:12:00 著者: cakephp メール
カテゴリ: コントローラー

CakePHP1.2 RC2

ファイルに関する色々な処理(存在確認、読み書きなど)、Fileオブジェクトを利用すると簡単にできます。
cake/libs/file.php に色々と用意されています。

DocumentRoot 配下に sample/hoge.php ファイルがあるかどうかをチェックするには、

$path = WWW_ROOT . 'sample' . DS . 'hoge.php';
$file = new File($path);
if ($file->exists()) {
    e('あるよ!');
} else {
    e('ない?');
}

登録したデータを1処理内でもう一度取得する

パーマリンク 2008/08/12 13:36:00 著者: cakephp メール
カテゴリ: コントローラー

登録・更新したデータを1つの Action の処理内でデータを取得しようとすると、CakePHP1.1 ではクエリーがキャッシュされるので、取得できません。
取得するには、

CakePHP1.1

$this->Sample->cacheQueries = false; 

Sample モデルに対するキャッシュを保存したくなければ、コントローラでこのように指定することで対応できます。


CakePHP1.2 RC2

1.1 とは違い、デフォルトの設定が保存しないになりましたので、逆に保存したい場合は、下記のように記載します。

$this->Sample->cacheQueries = true; 

特定のURLのみSSL接続を必須にする方法

パーマリンク 2008/08/08 15:27:55 著者: cakephp メール
カテゴリ: コンポーネント, コントローラー

CakePHP1.2 RC2

SSL接続を必須にするには Security コンポーネントを利用します。

class SampleController extends AppController
{
    var $components = array('Security');

    function beforeFilter()
    {
        // エラー時の呼び出し関数指定
        $this->Security->blackHoleCallback = '_sslFail';
        // 全アクションを SSL の対象にする
        $this->Security->requireSecure();
    }

    /**
     * SSL呼び出しエラー処理
     */
    function _sslFail($err)
    {
        if ($err === 'secure') {
            $this->redirect('https://**********.com/sample/');
        }
    }
}

上記のように requireSecure を空欄で呼び出すと、コントローラー内の全アクションが SSL の対象になります。
アクション名を指定することで、個別に対象とすることができます。


【注】
form で次ページにデータを渡す時に、hidden=0の値を渡そうとすると、内部のチェックで整合性がとれなくて上記の
$err に auth が渡されて、正常に機能しません。
参考: hidden値=0の時の、Securityコンポーネントチェック

Qdmailで日本語のメール送信

パーマリンク 2008/08/07 15:46:52 著者: cakephp メール
カテゴリ: コンポーネント, コントローラー

CakePHP1.2 RC2

CakePHP でメールを送信する機能は色々な方が作成されていますが、今回は Qdmail を利用してみました。

参考:使い方 CakePHPでのメール送信 - Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte

1.ダウンロード

こちらより最新版をダウンロードします。

2.設置

app/controllers/components/ 配下にダウンロードした qdmail.php を設置します。

3.ソースを書く

コントローラーに下記のように記載します。

<php
class SampleController extends AppController
{
    var $components = array('Qdmail');

    function index()
    {
        $this->Qdmail->to('to@example.com', 'お客様');
        $this->Qdmail->from('from@example.com', '管理者');
        $this->Qdmail->subject('ご利用ありがとうございます');
        $this->Qdmail->cakeText($contents, 'sample1', 'sample2', null, 'iso-2022-jp');
        $this->Qdmail->send();
    }
}

(※エレメントが文字化けしてしまう場合は、cakeText の第5パラメータで iso-2022-jp を指定)

そして、メールの本文をエレメント( app/views/elements/email/text/sample1.ctp )で用意します。
同様にレイアウト( app/views/layouts/email/text/sample2.ctp )も用意します。

これだけで送信できます。

ただし、内部的に mail 関数が呼ばれているので、SafeMode 環境化で利用すると、第5パラメータを指定している部分でエラーとなります。
↑こちらは1.1.1bバージョンにて解消して頂けました。(2008/9/11 追記)
詳しくはこちら

【その他】
ヘッダーの追加

$this->Qdmail->addHeader('Return-Path', 'sample@example.com');


BCC

$this->Qdmail->bcc('bcc@example.com');


2008/9/4 追記
一つのアクション内で異なるメールを送信する場合、一度設定をクリアーするのを忘れないように。

$this->Qdmail->reset();

これをやっておかないと、1つ目のメールで BCC を設定して、次のメールで BCC の設定をしなくても、一つ目の BCC の設定が生きたままになってしまいます。(当たり前ですね)

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

2017年10月
 << <   > >>
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        

CakePHPに関する情報をまとめていきます。

開発スピードがアップできればうれしいです。

>>連絡はこちらへどうぞ



CakePHP最新版
CakePHP 1.2.3.8166


CakePHPの書籍

CakePHPによる実践Webアプリケーション開発

CakePHP1.2で作成する人にオススメ。
とても参考になります。

まるごとPHP!(vol.2)

安藤さんの解説が載っています。
AmazonのPagination部分は参考になります。

CakePHPによるWebアプリケーション開発

まだ読んだことありません

CakePHPポケットリファレンス
CakePHPポケットリファレンス
CakePHP1.2 でやるなら、これがあると何かと便利♪

CakePHP徹底入門
CakePHP徹底入門
CakePHP1.2 を今から始めるならここから

Fast CakePHP
Fast CakePHP
シンプルでわかりやすい CakePHP の入門書

CakePHPガイドブック
CakePHPガイドブック
CakePHP1.1 ではとても参考にした CakePHP 最初の入門書

検索

XMLフィード

16ブログ     powered by b2evolution