<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>子だぬきの技術習得ノート</title>
        <link>http://www.okushin.co.jp/kodanuki_note/</link>
        <description>WEBシステム開発等で気付いたことなどをまとめていきます。</description>
        <language>ja</language>
        <copyright>Copyright 2010</copyright>
        <lastBuildDate>Fri, 26 Feb 2010 15:50:40 +0900</lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        
        <item>
            <title>CakePHPのsessionがcore.phpの設定より早く消える！</title>
            <description><![CDATA[CakePHPのsessionってsessionデータに作成時間を保存しておき、読み出す時にcore.phpで設定した時間が経過していないかチェックしているんですね。<br />
サーバー設定の方はさわりに行ってないみたいです。<br />
core.phpの
<pre class="php" name="code">
Configure::write('Session.timeout', '120');
Configure::write('Security.level', 'medium');
</pre>
で3時間以上あってもサーバーの
<ul>
<li>session.cookie_lifetime</li>
<li>session.gc_maxlifetime</li>
</ul>
の方が短ければガーベジコレクションでsessionファイルが消えるので予想より早くログアウトしたりします。<br />

なので
bootstrap.phpに
<pre class="php" name="code">
ini_set("session.cookie_lifetime", 100 * Configure::read('Session.timeout'));
ini_set("session.gc_maxlifetime", 100 * Configure::read('Session.timeout'));
</pre>
coreの値使ってサーバー設定をcore触るだけで設定できるようにしました。<br />
(100掛けてるのはmediumの係数の100です。session.php見ましたが定数にはなっていない感じでした。)<br />
バージョンは1.2.6です。 

]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2010/02/cakephpsessioncorephp.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2010/02/cakephpsessioncorephp.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">CakePHP</category>
            
            
            <pubDate>Fri, 26 Feb 2010 15:50:40 +0900</pubDate>
        </item>
        
        <item>
            <title>CakePHPのtextareaの最初の改行コードがなくなる！</title>
            <description><![CDATA[--------------<br />
\n<br />\n<br />テキストエリア内容<br />
--------------<br />
のデータがあった場合<br />
<pre class="php" name="code">
$form->input('Model.field', array('type' => 'textarea'));
</pre>
で表示した場合、最初の改行コードがない状態でフォームに表示されます。<br />
(下記のように2つある改行が1つになっています)<br />
<textarea name="textarea" cols="20" rows="5">

テキストエリア内容
</textarea>]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2010/02/cakephptextarea.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2010/02/cakephptextarea.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">CakePHP</category>
            
            
            <pubDate>Fri, 26 Feb 2010 15:01:01 +0900</pubDate>
        </item>
        
        <item>
            <title>CakePHPのqueryのキャッシュでハマる</title>
            <description><![CDATA[モデルのquery関数を使ってループをまわしながら最大noをとってくる処理でハマりました・・・<br />
query関数って$sql同じだった場合勝手にキャッシュを使って前回と同じ値を返すんですね。<br />
通常はこれを回避する為に
<pre class="php" name="code">
$this-&gt;query($sql, false);
</pre>
とすることで毎回最新データを取ってきてくれます。<br />
デフォルトでキャッシュが邪魔だったので、app_model.phpで
<pre class="php" name="code">
function query() {
	$params = func_get_args();
	if (empty($params[1])) {
		$params[1] = false;
	} else {
		if (is_array($params[1]) && empty($params[2])) {
			$params[2] = false;
		}
	}

	$db =& ConnectionManager::getDataSource($this->useDbConfig);
	return call_user_func_array(array(&$db, 'query'), $params);
}
</pre>
query関数をオーバーライドしました。<br />
バージョンは1.2.6です。]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2010/02/cakephpquery.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2010/02/cakephpquery.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">CakePHP</category>
            
            
            <pubDate>Fri, 26 Feb 2010 14:20:15 +0900</pubDate>
        </item>
        
        <item>
            <title>OpenPEARでPDF_Support_Libraryを公開</title>
            <description><![CDATA[OpenPEARでPDFの位置合わせを楽に出来るようにしたPDF_Support_Libraryを 公開しました。<br />
<br />
OpenPEARでのPDF_Support_LibraryのURL<br />
<a href="http://openpear.org/package/PDF_Support_Library">http://openpear.org/package/PDF_Support_Library</a><br />
<br />]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2010/02/openpearpdf-support-library.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2010/02/openpearpdf-support-library.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
            
            
            <pubDate>Wed, 10 Feb 2010 13:52:44 +0900</pubDate>
        </item>
        
        <item>
            <title>PHPで画像加工</title>
            <description><![CDATA[今回UPした画像のリサイズと画像に文字を乗っけるという仕様の仕事があり、PHPで画像加工に挑戦しました。<br />
<br />
調べてみるとPHPを入れるときに大体標準で付いてくるGDライブラリで画像加工が出来るとのこと。<br />
今回は画像を小さくリサイズするのと、写真に文字を埋め込むという事をしました。<br />
 ]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2010/01/php-1.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2010/01/php-1.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
            
            
            <pubDate>Thu, 28 Jan 2010 11:58:03 +0900</pubDate>
        </item>
        
        <item>
            <title>QRコード生成ライブラリを使ってみました</title>
            <description><![CDATA[携帯サイトも併設したシステムを組むことになりPCサイトからQRコードを<br />
読み込んで携帯サイトに飛んでもらうということで、QRコードを作成することになりました。<br /><br /> ]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2010/01/qr.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2010/01/qr.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
            
            
            <pubDate>Thu, 28 Jan 2010 10:21:18 +0900</pubDate>
        </item>
        
        <item>
            <title>複数ファイルを一気にUPする</title>
            <description><![CDATA[今回複数の写真を一気にUPしたい案件があったのでネットを探していたら、便利そうなライブラリを発見！！<br />
<br />
その名もSWFUploadライブラリというもので、ファイルを選択する際にドラッグで複数選ぶか、ShiftかCtrlを押しながら複数選ぶ。<br />選び終わったら開くボタンを押す、そしたら選ばれたファイルが進行状況が分かりながらアップロードされていくというライブラリです。<br />
<br /> ]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2010/01/up.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2010/01/up.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
            
            
            <pubDate>Wed, 27 Jan 2010 16:29:37 +0900</pubDate>
        </item>
        
        <item>
            <title>CakePHPで携帯サイトを作成する</title>
            <description><![CDATA[前回携帯サイトを作った方法だと、CakePHPのバージョンアップによって動かなくなってしまっていたので、新しい方法で作った覚書を残していきます。<br>
今回は「CakePHP1.2ガイドブック」の携帯サイトを作成するを参考に作っていっています。<br>
この方法だとcakeのバージョンによって動かなくなることは無いと思いますが、一応バージョンは1.2.3.8166で試してみました。<br>
内容はほぼそのままなのですが、自分が分かりやすいようにコメントを付け加えていってます。
]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2009/11/cakephp-6.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2009/11/cakephp-6.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">CakePHP</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
            
            
            <pubDate>Mon, 09 Nov 2009 13:26:54 +0900</pubDate>
        </item>
        
        <item>
            <title>php5.3の環境にCakePHPアップしたらDeprecatedエラーが・・・</title>
            <description><![CDATA[php5.3の環境にCakePHPアップしたらDeprecatedエラーが出まくりだったのでメモ<br /><br />開発環境から本番環境にソースをアップしてブラウザでアクセスしたら<br /><br />「Deprecated: Assigning the return value of new by reference is deprecated in...」<br />のメッセージが大量に出た、どうもphp5.3からエラーの定義が変わったのが原因みたい。<br /><br />どうも5.3からerror_reporting()に定義がかわり、E_ALL値が変更されたらしい。<br />
<br />
<a href="http://php.benscom.com/manual/ja/errorfunc.constants.php" target="_blank">PHP: 定義済み定数</a><br /><br />cake/libs/configure.phpの297行目くらいに下記のコードを追加してエラーの出力を調整<br /><br />
<pre class="php" name="code">if (isset($config['debug'])) {
  if ($_this-&gt;debug) {
    error_reporting(E_ALL);

  //php 5.3のエラー出力調整(ここから追加)
  if (error_reporting() &gt; 6143) {
    error_reporting(E_ALL &amp; ~E_DEPRECATED);
  }
  //php 5.3のエラー出力調整(ここまで追加)
</pre>]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2009/10/php53cakephpdeprecated.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2009/10/php53cakephpdeprecated.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">CakePHP</category>
            
            
            <pubDate>Mon, 12 Oct 2009 12:35:00 +0900</pubDate>
        </item>
        
        <item>
            <title>ダウンロードしたCSVファイルが文字化けする問題</title>
            <description><![CDATA[CSVファイルをダウンロードしたら文字化けするとお客様から連絡があり調べたところ、テストサイトではSHIFT_JISでダウンロード出来ていた所が何故かUTF-8でダウンロードされているようになってしまっていました。</br>
</br>
UTF-8のファイルをSHIFT_JISで開きなおすと一応文字化けは直るのですが先頭に「･ｿ」という表示が知らぬうちに付いていました。]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2009/09/csv.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2009/09/csv.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
            
            
            <pubDate>Fri, 18 Sep 2009 15:35:06 +0900</pubDate>
        </item>
        
        <item>
            <title>二重送信防止プログラム</title>
            <description><![CDATA[submitボタンを押した時に間違って連打で押してしまった時にデータの保存が2重でされたり、メールが2通送られてしまったりします。<br />
<br />
今回はjavascriptで制御する方法を取ってみたので簡単に紹介します。<br />]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2009/09/post-6.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2009/09/post-6.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
            
            
            <pubDate>Fri, 18 Sep 2009 15:14:31 +0900</pubDate>
        </item>
        
        <item>
            <title>CakePHPでSSL認証とそうでない時の処理を振り分ける</title>
            <description><![CDATA[ログインするときにSSL通信でログインするか普通の通信でログインするかを選べるようにして欲しいというお客さんの要望があったので今回はこんな感じのプログラムで対応しました。<br />
 <br />
やっている内容はログイン時にSSL通信でログインした時、Cake内の移動の際にSSL通信の場合はhttpsで移動するようにするという感じです。<br />
]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2009/09/cakephpssl.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2009/09/cakephpssl.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">CakePHP</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">PHP</category>
            
            
            <pubDate>Fri, 18 Sep 2009 14:55:07 +0900</pubDate>
        </item>
        
        <item>
            <title>ドキュメント勉強会に参加してきました。</title>
            <description><![CDATA[<p><font style="FONT-SIZE: 1.25em"><strong><u>ドキュメント勉強会開催の経緯</u></strong></font></p>
<p>技術部の今岡です。</p>
<p>もう少し前のことになってしまって恐縮ですが、ドキュメント勉強会というものに参加してきました。</p>
<p>8月6日（木）　大阪市北区のメビック扇町というところで、場所はCakePHP関西勉強会の会場と同じところです。</p>
<p>そのCakePHP関西勉強会の第二回が、私の技術系勉強会の初体験だったにもかかわらず、今回の勉強会では発表者に名前を連ねることになってしまいました。</p>
<p>CakePHP勉強会の後、人から薦められてアカウントを作っていたTwitterを本格的に利用し始めました。</p>
<p>Twitterでは様々な人が好き勝手なことを雑多に呟き、その呟きに興味があったりして継続的にその呟きを読む為には、呟いている人を「フォローする」という操作を行います。</p>
<p>Twitterの詳しい話は今回の話題ではないですが、そのTwitter上でCakePHP勉強会を主催された新原さんという方をフォローさせて戴きました。</p>
<p>新原さんがTwitter上で勉強会というものについて、とか、ドキュメント勉強会ってどう思う？というような疑問を投げられまして、私を含め数人がそれに反応し、その反応の内容を受けて新原さんはドキュメント勉強会を開催しようと決定されました。</p>
<p>（新原さん自身のブログやWassarという別のサービスなどもありますので、Twitterがすべてではないと思います。念のため。）</p>
<p>勉強会の決定や開催日時の告知にもTwitteｒが有効に活用されました。</p>
<p>そして、そのTwitterを通じて、私のところに発表の依頼が飛んできたのでした・・・。</p>
<p>&nbsp;</p>]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2009/08/post-5.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2009/08/post-5.html</guid>
            
            
            <pubDate>Mon, 17 Aug 2009 13:24:54 +0900</pubDate>
        </item>
        
        <item>
            <title>CSVファイルをモデルのfindメソッドで読み込む方法</title>
            <description><![CDATA[CakePHPの勉強会で、英語に負けずコードをばんばん読んでいこう！という話があったので、Bakeryの中を覗いて見つけたソースを動かすというのをやってみました。<br />
今回はCSVファイルをfind一発で読んでしまおうというヤツです。<br />
元はSiegfriedHirschさんが作成されました。<br />
<br />
CSVファイルをデータベースっぽくする為に、いくつか準備をします。<br />
<br />
]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2009/07/csvfind.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2009/07/csvfind.html</guid>
            
            
            <pubDate>Tue, 21 Jul 2009 10:31:51 +0900</pubDate>
        </item>
        
        <item>
            <title>第2回CakePHP関西勉強会でLTしてきました</title>
            <description><![CDATA[6月5日に<a href="http://events.php.gr.jp/events/show/76">第2回CakePHP関西勉強会</a>に参加してきました。<br>
今回の発表はかなりのグズグズになってしまいました。<br>
まず体調が悪く血圧がかなり下がってしまっていて、発表中は景色が白く見えるぐらいもうろうとして何を話しているのかという感じになってしまいました・・・<br>
次に発表のリハーサルの時は目の前のノートパソコンで動かしていたのですが、本番ではプロジェクタを見て操作をすることになり画面が見にくく操作が思うように出来ず、操作にだいぶ時間を取られてしまいました。<br>

とりあえず発表内容のパワーポイントです。

<div style="width:425px;text-align:left"><a style="font:14px Helvetica,Arial,Sans-serif;color: #0000CC;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideboom.com/presentations/75613/CakePHP%E3%81%A7PDF%E5%87%BA%E5%8A%9B%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B" title="CakePHPでPDF出力してみる">CakePHPでPDF出力してみる</a><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="425" height="370" id="onlinePlayer"><param name="movie" value="http://www.slideboom.com/player/player.swf?id_resource=75613" /><param name="allowScriptAccess" value="always" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><param name="allowFullScreen" value="true" /><param name="flashVars" value="title=CakePHPでPDF出力してみる&url=http://www.slideboom.com/presentations/75613/CakePHP%E3%81%A7PDF%E5%87%BA%E5%8A%9B%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B&mode=0&idResource=75613&siteUrl=http://www.slideboom.com&embed=1&startAuto=0&autoReplay=0&autoOpenShareScreen=1" /><embed src="http://www.slideboom.com/player/player.swf?id_resource=75613" width="425" height="370" name="onlinePlayer" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"allowScriptAccess="always" quality="high" bgcolor="#ffffff" allowFullScreen="true" flashVars="title=CakePHPでPDF出力してみる&url=http://www.slideboom.com/presentations/75613/CakePHP%E3%81%A7PDF%E5%87%BA%E5%8A%9B%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B&mode=0&idResource=75613&siteUrl=http://www.slideboom.com&embed=1&startAuto=0&autoReplay=0&autoOpenShareScreen=1" ></embed></object><div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View <a href="http://www.slideboom.com" style="color: #0000CC;">more presentations</a> or <a href="http://www.slideboom.com/upload" style="color: #0000CC;">Upload</a> your own.</div></div>

とりあえず座標合わせライブラリの評判が良かったので、頑張ってソースを整理して公開できたらいいなと考えています。<br>
発表してみて色々指摘を受けれたので、それを受けて今後作っていけたらと思います。]]></description>
            <link>http://www.okushin.co.jp/kodanuki_note/2009/06/2cakephplt.html</link>
            <guid>http://www.okushin.co.jp/kodanuki_note/2009/06/2cakephplt.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">CakePHP</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">勉強会</category>
            
            
            <pubDate>Sun, 14 Jun 2009 14:17:31 +0900</pubDate>
        </item>
        
    </channel>
</rss>
