カテゴリー
コンピューター

CakePHP2 プラグインを駆使して問い合わせフォームを作ってみます♪

本投稿はわたくしオリジナルではなく、次の記事を自分なりに実践した勉強となります。

  • WEB+DB PRESS Vol.65|gihyo.jp … 技術評論社
    特集2 PHPフレームワーク実践活用 ~Symfony2,CakePHP,Silex~
    第3章:CakePHP最新開発スタイル 豊富なプラグインを用いた開発とCakePHP 2.0を体験……市川 快

作るものの簡単な仕様

  • お問い合わせ送信の前に確認画面を表示する。
  • お問い合わせの入力内容は DB に保存する。
  • E -mail は2回入力してもらい、一致しているかどうかのバリデーションチェックを行う。

お問い合わせフォームの実装流れ

  1. インストール、設定
  2. DB スキーマの用意とテーブル作成
  3. bake all で初期コードの自動生成
  4. プラグイン設置
  5. 確認画面の遷移を追加
  6. 確認画面のビューを追加
  7. 保存データのチェック
  8. 完成画面
カテゴリー
コンピューター

PHP のログで便利な定数をちょっと試しました♪

デバッグでログをとるときは、ログを出力した場所であるソースコードのファイル名、関数名、行数がわかると便利です。何かいい手はないかと探していたら、ありました♪メモしておきます!

ポイント

  • __METHOD__ → クラス名::関数名
  • __LINE__ → ファイル上の現在の行番号

使ってみた

カテゴリー
コンピューター

CakePHP2 の関数を使って IP アドレスを調べる方法を、メモ!

CakePHP2 の プレフィックスルーティングのページに、.htaccess の IP アドレスアクセス制限をかける方法! | oki2a24 では Apache の .htaccess を使う方法をメモしました。今度は、CakePHP2 に備わっている関数を使ってページを訪れた人の IP アドレスを取得する方法をメモします。

ポイント

  • コントローラーで、$this->request->clientIp(false)
カテゴリー
コンピューター

MySQL から Excel で使える CSV を作成します!できるだけ簡単に♪

MySQL には CSV 出力する機能が備わっていることに、初めて気がつきました。

喜び勇んで試してみたものの、Excel ではどうにもうまく読み込めません。特に、セル内で改行があると、次の行という扱いになってしまうのですよね。。。

そこで、何とかしてみたメモを残しておきます。

ポイント

  • 今時なので MySQL は UTF-8 です。Excel で読むために Shift-JIS に変更する必要があります。
  • セル内での改行は LF、行末の改行は CRLF にする必要があります。
  • セルを「”」で囲む場合があるため、「”」をエスケープする必要があります。

やってみた

カテゴリー

味醂と焼酎の「直」のちょっと面白い飲み方♪

IMG_7872.JPG

来年の夏にはこの飲み方を忘れている気がしますので、メモします。

作り方

  1. 氷を入れます。丸いのがいいです。
  2. 味醂を入れます。
  3. 焼酎をそっと入れます。氷をクッションにするといいです。
カテゴリー
コンピューター

CakePHP2 で普通の update がしたいなら updateAll !

あっ、普通の update というのは、WHERE 区に自由な条件をつける、という意味です。今回、CakePHP2 にて次のことをやってみたのでメモします。

  • 好きな条件でテーブルを更新する。
  • あるカラムの値をインクリメントしたい。
  • updateAll だと modifiedを自動で更新してくれないのをなんとかする。
続きでズバッと解決します。
カテゴリー
コンピューター

CakePHP2 の プレフィックスルーティングのページに、.htaccess の IP アドレスアクセス制限をかける方法!

app/Config/core.php の prefix routes 部分に次のように書き、

	Configure::write('Routing.prefixes', array('admins', 'editors', 'authors'));

app/Controller/UsersController.php で admins_login() のようなアクションを書くことで、

  • http;//example.com/admin/users/login/

にアクセスすると admins_login() アクションを実行するようにできます。プレフィックスルーティングですね。

上記の例の場合、 editors と authors も設定しているので、http;//example.com/editors/users/login/ や http;//example.com/editors/authors/login/ で editors_login() や authors_login() を実行できます。

さてここで、admins には特定の IP アドレス以外からアクセスさせたくない!となったら、どうしたらよいでしょうか?やってみた記録をメモします。

カテゴリー

【失敗】冷凍バナナを作るときは皮をむいてから!ですっ!!!

タイトルどおりです。わたくしは昔、小さなころにバナナを冷凍庫で凍らせたものを食べるのが大好きだったのです。ふとこの間、久しぶりに作ってみたら大失敗しました。

カテゴリー
コンピューター

Basic 認証の作成方法をおさらいです。

https://oki2a24.com/test/ 配下のページにアクセスしたときに Basic 認証を求めるサンプルです。サーバ上のディレクトリは次になります。

  • /・・・略・・・ドキュメントルート/test/

ユーザ名、パスワードは、次のようにします。

  • testuser
  • testpassword
カテゴリー
コンピューター

CakePHP2 ドキュメントの「グループだけのACL」を検証しました♪軽くですけれども。

ACLを制御するシンプルなアプリケーション – CakePHP Cookbook v2.x documentation のグループだけのACL に書かれている関数を User モデルに追加すると、ユーザー単位ではなく、グループ単位の ACL とできる、とあります。

しかし、この関数をつけてもつけなくても「 aros テーブルは以下のようになるでしょう」とあるようなテーブル構造になりません。ナンデ?ウェブからユーザーを登録しても、aros テーブルにデータが登録されてしまいます。ナンデ?

そこで、この状態ですこしだけ検証してみましたのでメモします。

検証内容

  • グループだけのACL にある関数のあるなしで、任意のページにアクセスしたときに発行される SQL の違いを見ます。
  • グループだけのACL にある関数のあるなしで、MySQL に直接 INSERT したユーザーのアクセス権がどうなるか、違いを見ます。