PHP

CakePHPでDBを使わないけどバリデートとかしたい

基本はモデルで、 var $useTable = false;ですが、これだとバリデーションをかけたり FormHelperを使ったりするとDBを読みに行ってエラーを吐きます。 CakePHP(のモデルクラス)は、テーブルの構成情報を内部的に持っていて それがないからエラーを吐いて止…

CakePHPでsqliteを使う

こんなゆるくていいのか…。 var $default = array( 'driver' => 'sqlite', 'connect' => 'sqlite_open', 'host' => '', 'login' => '', 'password' => '', 'database' => 'filename.db', 'prefix' => '' ); コスミー報告書[社外秘] - CakePHPではまったこと …

組み込みバリデーションを拡張する

例えば、 性別が男性になっているときにだけ 彼女の名前が空白になっていないかチェックする というのをやりたいときに、独自でバリデーションを組むことが あると思うんですが、そのときにいちいち空白をチェックする 正規表現とかは組みたくない、と。 せ…

さくらでシェルスクリプト

ちょっと気をつけないといけないのは、PATHの指定をすること。 #!/bin/sh PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/binこれを冒頭に入れる。 あと、実行するときは./をつける。 カレントディレクトリの中にある シェルスクリプトーという意味で。 さ…

Authのエラーメッセージにメッセージを格納する

とある条件下で認証エラーを起こしたいんだけど、 Authコンポーネントにはvalidateのようにエラーを作為的に 起こす方法がない模様。 で、エラーメッセージを格納したいんだけど、そういう時はどうするか。 setFlashを使います。 $this->Session->setFlash('…

時間経過を調べる

PHP

結局UNIX時を引っ張ってきて引き算するのが一番いいみたい。 mktime()で現在のUNIX時を取得できます。 PHP関数講座 : mktime -- そふぃのphp入門 http://nyx.pu1.net/function/datetime/mktime.html PHP: mktime - Manual http://jp2.php.net/manual/ja/func…

セッションとHTTPとHTTPSの関係

PHP

ログインの仕組みとセッション サイトへのログインを作るときにはセッションを利用するのが 一般的です。 認証できたらセッションにIDなんかを書き込んでおいて、 アクセスされる度にセッションの中に値が存在するかどうか チェックしたりするわけです。 で…

文字列の頭文字を大文字にするucfirst

PHP

ucfirst($str);でおっけ。 PHP mini 辞典 : 文字列 : U : ucfirst http://phpdic.pc-hobby.com/phpdic+entry.entryID+43+categoryID+1.htm

404エラーを発生させる

とにかくエラーなんだよっ!という風に突っぱねたいときに 使える、404エラーの起こし方。 $this->cakeError('error404'); "404エラーを発生させる" フォーラム - CakePHP Users in Japan http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1005&foru…

関数に渡された全ての引数を取得する

PHP

こんなんいるか?と思っていましたが、いわゆる コマンドライン引数的なことをやりたいときには必須になります。 PHP: func_get_args - Manual http://php.morva.net/manual/ja/function.func-get-args.php PHP: func_num_args - Manual http://php.morva.ne…

QdmailをCakePHPでSMTP化する

大量にメールを送る場合は必須のSMTP化。 Qdmailなら簡単にできる。 SMTPの玄人的操作法 - Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte http://hal456.net/qdmail/smtp_detail CakePHP Qdmailメール送信でメールが受信されない | MT Sys…

アクションをcron化する

このやり方でもできる。 CakePHPでcronを使う方法 - ElectricBrain Standard http://www.multiburst.net/ElectricBrain/2009/04/how-to-use-cron-on-cakephp ただ、これだといろんな人から実行できてしまうので ちょーっと怖い。ということでdispatcherを改…

CodeIgniter

CodeIgniterというフレームワークがあるそうだ。 でも見たところ、あんましCakePHPと変わらないから Cakeでいいかなーと思ったという…。 CodeIgniter | オブジェクト指向PHP http://www.objectphp.jp/php/codeigniter/ CodeIgniterとは? · 日本CodeIgniter…

CakePHP1.2のinputヘルパでチェックボックスを作る

form->inputで統一したいので。 echo $form->input('medicine', array( 'type' => 'checkbox', 'value' => '医学部', 'label' => '医学部' ) );

1.2・検索結果をpaginateする方法

cakePHPのpaginationは確かに便利。 あのインデックスを作ったりは本当にめんどうなので助かるのですが、 それをちょっと複雑に使おうとすると一苦労。 ていうか検索した結果をpaginateしたいと思うのは普通だと 思うんですけど、その割には使いにくい…。 し…

Qdmailに関するあれこれ

SMTPでメール送信 qmailをキャンセルしないとパフォーマンスが落ちる Qdmailは使うときだけnewするかvar $is_qmailを変更しよう (特にCakePHPで使う場合) : akiyan.com http://www.akiyan.com/blog/archives/2009/03/qdmail-force-new-or-change-var-is_qmai…

都道府県の入力済みデータ

PHP

都道府県のドロップダウンリストって作るのがイヤ。 めんどくさい。しかも外国製のフレームワークには絶対 ヘルパーなんてない。 ということですでに入力していただいているサイトを発見! ありがたし! PHP都道府県名の入った配列 - MiuxMiu http://www.miu…

パスワードの正規表現

PHP

パスワードが妥当かどうかをチェックするためにはどうしたらいいか? 正規表現を使いますー。 一番簡単な方法だと、 ^[!-~]+$ですね。 Ma note: パスワードチェック(正規表現) http://m97087yh.seesaa.net/article/109050658.html ASCII文字コード : IT用語…

全てひらがなかどうかをチェックする正規表現・多文字コード対応版

PHP

もはやあんまり無いと思うけど、 すげぇなーと思ったので。 すべて「ひらがな」かどうか調べる - [正規表現] ぺんたん info http://pentan.info/php/reg/is_hira.html

preg_matchを使うときは正規表現をスラッシュでくくる

PHP

if(preg_match("/^(\s| )+$/", $str)) { do_something(); } みたいにね。 しないとデリミタに英数字とかバックスラッシュは使えないよ! ってエラーがでます。 PHPの正規表現のpreg_match()関数 http://noongoro.main.jp/note/note0050.html

関数emptyの仕様

PHP

そのまま引用させていただきます。 $a = ""; // 空 $b = NULL; // NULL文字 $c = 0; // 整数0 $d = '0'; // 文字列0 $e = false; // 真偽型のfalse $f = array(); // 空の配列 var_dump(empty($a)); // ture var_dump(empty($b)); // ture var_dump(empty($c…

cakePHPやらPHPのテストで気をつけること

テストファーストが当たり前の世界なんですよねぇ…。 精進精進。ありがとうございます、勉強になります。 テストファーストによるソフトウェア開発の衝撃(前編) - ITmedia エンタープライズ http://www.itmedia.co.jp/enterprise/articles/0702/27/news012…

PHPのセッション管理の穴

PHP

ほとんど理解できません。 あとでちゃんと読もう。新しい話もあるし。 なぜPHPアプリにセキュリティホールが多いのか?:第25回 PHPのアキレス腱 ── セッション管理|gihyo.jp … 技術評論社 http://gihyo.jp/dev/serial/01/php-security/0025?page=1

mb_substrで文字化けするときは文字コードを指定する

PHP

文字列切り出しのsubstrで文字化けすることがあります。 その時は第4引数に文字コードを指定すれば大丈夫です。 mb_substr(文字列,開始位置,取得文字数,文字コード) (仮)なんじゃらかんじゃら:【php】 substrで文字化け - livedoor Blog(ブログ) http:/…

まるまるファイルを読み込むfile_get_contents

PHP

別エントリでも書きましたが、一応。 まるまるファイルのエントリを読み込むのが、 file_get_contentsです。 テンプレートとかを一気にがっと読み込む時に非常に便利。 いちいちファイル周りとか触らなくてすみます。楽ちん。 PHP: file_get_contents - Manu…

設定ファイルを使うときに便利なphase_ini_file

PHP

設定ファイルのパーサーとかって作ると結構面倒なんですよね。 しかも後から拡張しようと思っても全然ダメな仕様になってたり。 そこで登場するのがphase_ini_file。 php.iniと同じような設定ファイルをパースしてくれます。 実際すごく便利。 配列への格納…

ファイルが存在するかどうか調べる

PHP

これ前も書いたような気がするけど…。 file_exists(path) PHP: file-exists関数 ファイルまたはディレクトリが存在するかどうか調べる http://php.plus-server.net/function.file-exists.html

post_max_sizeより大きいPOSTがあると空になる

PHP

はまりました。 post_max_sizeより大きなサイズのPOSTがあると、 $_POSTと$_FILEは空になります。 ようはファイルのアップロードとかをしようとすると、 しばしばこういうことに出くわすんですね。 もちろんupload_max_filesizeよりもこの値は大きくする 必…

セッションの開始と終了

PHP

# セッション開始 session_start(); # セッション終了 $_SESSION = array(); // セッション変数自体の中身をクリア session_destroy(); // セッションを破棄 PHPのセッション 入門 http://w1.nirai.ne.jp/freeze/kiso/session.html

ヒアドキュメント

PHP

こんな感じ。 $str = 変数は{}で囲っておいた方が無難。 連想配列は{}なしだとエラーになります。