カテゴリ:CakePHP( 25 )

 

CakePHP :1.2 Final is here!, 1.2.0.7962

久々にCakePHPのサイトを訪れてみた。

▼CakePHP
http://cakephp.org/

今まで「beta」と書かれていたはずの1.2が、「Extra Hot: 1.2 Final is here!, 1.2.0.7962」と書かれているではありませぬか!

ん?これはどういうこと??

Downloadをクリックして中に入ると、1.2が「Stable」になっているではありませぬか!
そうだったのですね、まったく気づきませんですた。

今度時間がある時にでも、1.2のマニュアルを見ながらいじってみようかすぃら。

▼マニュアル
http://book.cakephp.org/ja/
[PR]
by bubuka_revival | 2009-01-10 21:20 | CakePHP  

CakePHP :データをCSVで落とす

Google先生で、以下のように検索すますた。

「cakephp CSV」

すると、以下のサイトがありますた。

▼IDEA*IDEA 様
CakePHPでCSVファイルをダウンロードさせたいときの作法 | IDEA*IDEA

簡単そうだったので、上記URLの通り、早速やってみますた。
CSV落とせた!と思いきや、中身が真っ白。

そこでもう一度、ソースをよく見てみる。
$buf = "";
// ごにょごにょして$bufにUserの内容を追加
// 注意点は二つ。
// 1. 一つにまとめたい文字列は""で囲む。
// 2. 文字列内に"がある場合は""としてエスケープ
ん?
あー、なるほど、「$buf」が空っぽなのですな!
※データが空なのだから、CSVが空なのは当然でつよね…(;´Д`)

なので、データを突っ込んでみますた。
$buf = $this->Hoge->findAll(null,null,"Hoge.created DESC");
これでどーじゃー!と、再アクセス、CSVダウンロード!

「array」

え?
あー、なるほど、配列だからってことかぃ?
んー、どうやって書いたらいいのかなー。

再びGoogle先生に聞いてみる。
以下のサイトを発見。

▼拓かれた世界へ向かって 様
AXS3でCakePHPを使うための備忘録5

ふむふむ、この部分が使えそうではないでつか?
というわけで、以下を追加。
foreach ($hoge as $hoge) {
print implode(',', $hoge['hoge']);
print "\r\n";
}
再びアクセス、CSVダウンロード!
のわ!文字化けだ!

んー、てことは「mb_convert_encoding()」とか使う感じなのかすぃら…。
先のソースを以下のように変更。
foreach ($hoge as $hoge) {
print implode(',', mb_convert_encoding($hoge['hoge'],'SJIS','UTF-8'));
print "\r\n";
}
これでどーよ!
のわ!まだ文字化け!

んー…。
何でだべ…。
個別に「mb_convert_encoding()」してみまつか。
foreach ($buf as $buf) {
print
mb_convert_encoding($buf['Hoge']['id'],'SJIS','UTF-8').','.
mb_convert_encoding($buf['Hoge']['created'],'SJIS','UTF-8').','.
mb_convert_encoding($buf['Hoge']['name'],'SJIS','UTF-8').','.
mb_convert_encoding($buf['Hoge']['age'],'SJIS','UTF-8').','.
mb_convert_encoding($buf['Hoge']['sex'],'SJIS','UTF-8')
;
print "\r\n";
そして再度アクセス!CSVダウンロード!

ヽ(´ー`)ノ

文字化けせずに、CSVが落とせますたー!

これ、CSVの上に各項目タイトルみたいなのは入れれないのかな?と思って、追加してみますた。
print mb_convert_encoding('No.,作成日時,名前,年齢,性別','SJIS','UTF-8');
print '\r\n';
そして再びアクセス!CSVダウンロード!

あらーーー。
項目タイトルの行、改行してない…。

各行とタイトル行、何が違うのだ…。
20分ぐらい悩みますた。

ソースをよーく見ると以下の違いがあることに気づきますた。
▼各行の場合
print "\r\n";

▼タイトル行の場合
print '\r\n';
えー、まさかこれを「'」から「"」に変更したって、変わらないよねー。
と思ったのでつが、違いはこれぐらいしかわからないし、試しにやってみることに。
再びアクセス、CSVダウンロード。

えーーー!ソコか!ソコだったのかYO!

てなわけで、無事、CSVの上の行をタイトル行にし、2行目以下がデータという具合にできますた。
a0066158_1033834.gif


…簡単かと思っていたのでつが、かなり苦戦すますた。つが、もっと簡単なんだろうか、本当は。
…実はこの記事も2回目なんでつよね(書いてる途中で消えてしもて…)。
[PR]
by bubuka_revival | 2008-09-21 10:50 | CakePHP  

CakePHP :Smarty「{$html->formTag()}」について

Smartyでも、「{$html->formTag()}」を使えば、トークンを発行できるのはわかった。
ただ、これに「name="hoge"」とか「method="get"」とか「enctype="multipart/form-data"」したい場合、どうしたらよいのか…と、試行錯誤しておりますた。

やっとできますたので、メモメモ。
{assign_assoc var='Form' value='enctype=>multipart/form-data,name=>hoge'}
{$html->formTag('','',$Form)}
タイトル
{assign_assoc var='Hogettitle' value='size=>60'}
{$html->input('Hoge/title', $Eventtitle)}
{$html->tagErrorMsg('Hoge/title', '※タイトルを入力してください!')}
</form>
そして書き出されたHTML。
<form enctype="multipart/form-data" name="hoge" action="/public_html/hoge" method="post"><p style="display: inline; margin: 0px; padding: 0px;"><input type="hidden" name="data[_Token][key]" value="63041cb0a06063e15a23ef3e2eb7121cb8376ccc" id="_TokenKey405396016" /></p>
タイトル
<input name="data[Hoge][title]" size="60" value="" type="text" id="HogeTitle" />
</form>
うんむ、ちょっと前進したすな。
[PR]
by bubuka_revival | 2008-09-09 21:42 | CakePHP  

CakePHP :CSRF(クロスサイトリクエストフォージェリ)対策

最近、ビビリ過ぎなBBKでつが、またまた問題が発覚…。
今までセキュリティっていうのをまったく意識しておりませんですた(;´Д`)

CodeIgniterの本を読んでいて、ちょうど、CSRF(クロスサイトリクエストフォージェリ)について記載しているところがありますた。

ん?

CakePHPの場合、どうなってるんだべ?と思い、deleteされる内容を直リンクでアクセスしてみた。
な、何と…。

ログインしていない状態でも、deleteされてしまったではないか!!
こ、これはやヴぁい…。

ってなわけで、Securityコンポーネントを使うことにしたのでつ。
SecurityComponent::requireAuth()とやらを使おうと思ったのでつが、これ、「POSTリクエストのみ有効」になるんでつね…。
GETじゃダメだったのね…。

そーでしたか…。
<a>タグからPOSTするように細工しなきゃいかんのかなぁ。

はぁ(;´Д`)
[PR]
by bubuka_revival | 2008-09-04 22:11 | CakePHP  

CakePHP :「Plesk」サーバに作ったvhost.confが変だす…2

昨日解決したと思っていたのでつが、あることに気づきますた。

http://www.hoge.com/app/webroot/

上記にアクセスできてしまったのす…。
.htaccessファイルを設定しているため、http://www.hoge.com/と同じ内容が表示されるのでつが、これって何となくやヴぁい気がしてなりませぬ…。

vhost.confの内容を「#」したため、httpd.includeの内容が反映されているのかと思ふ。
つまり、DocumentRootがhttpdocsになってしまってるからか…。

かと言って、vhost.confの「#」を全部外すとまたまたApache再起動できなくなるし…。

しょうがないので、httpd.includeを直接いじってしまいますた…。
DocumentRootをwebrootまでのパスに変更したのす。

とりあえずは、app/webrootではアクセスしなくはなりますたが、これって根本解決にはなっていないと思ふのす…。
おそらく、Pleskから設定を変更したりすると、上書きされる…んでそ?
だから、vhost.confをいじって、読み込むようにしてたって、参考サイト様たちは記載してたはず。

根本解決して、スッキリしたいすな…。
とりあえず、都度、対応していくしかないのかにゃ…。
…しかし、こうなったのは何が原因だったのだろうか(;´Д`)
[PR]
by bubuka_revival | 2008-09-03 21:15 | CakePHP  

CakePHP :「Plesk」サーバに作ったvhost.confが変だす…

かなり焦りますた…。
以下の操作をしたのす。
  1. Plesk画面から、サブドメインを追加。
  2. Apacheの再起動をしたがサブドメインにアクセスしても、Pleskのデフォルト画面が表示されっぱ。
  3. SSHでhttpd.includeをのぞいてみたら、サブドメインに関する記述が増えていたようなので、これをコピーしてvhost.confの下部分に貼り付けた。
  4. 「/usr/local/psa/admin/sbin/websrvmng --reconfigure-vhost --vhost-name=hoge.com」をした。
  5. Plesk上でApacheを再起動させるため、「再起動ボタン」をクリックした。
  6. 何やらエラーが出て、再起動しない!!!
  7. SSHで「/etc/init.d/httpd restart」をやっても、Apacheが再起動しない!!!
  8. あげくの果てに、以下のようなエラーが出た。
    「Starting httpd: Syntax error on line 12 of /var/www/vhosts/hoge.com/conf/vhost.conf:
    cannot occur within section」
え?vhost.confに何かミスあんの?
じゃー、さっき追加したやつを削除しればいいんじゃね?
と思って、削除して、再度「/etc/init.d/httpd restart」。

…また同じエラー…。
やー、こっから6時間悩みっ放しでげすた…(;´Д`)

どこがエラーなのかさっぱりわからないので、コードの行頭に「#」をつけていって、根気よく潰していくことを考えますた。

結局…。

「vhost.conf」のコードの行頭、全部に「#」をつけたら再起動がかかり、ようやく復活できますた…。
な、何でこれで再起動がかかって、しかも、今まで通りの表示になるのだ…。

見た目は元に戻ったものの、果たしてこれでよいのかどうか…。
全部「#」て…。
これって、コメントアウトじゃねぇのか…。

だ、誰か詳しい方…。
ご教授下され…。

ま、まぁ、cakephpとは関係なかったのすが、まぁ、このカテゴリでよがすべおん。
と、とりあえず、風呂さイグすか。
[PR]
by bubuka_revival | 2008-09-02 23:34 | CakePHP  

CakePHP :「CakePHP徹底入門」注文すますた

メールが届いた。

●CakePHP徹底入門
http://www.seshop.com/detail.asp?pid=9507

うわ、欲しい~。
っつーことで、注文すますた。
※でもAmazonですが。

その他に気になった「フレームワーク」の本がありますた。
こちらも注文してしまいますた。

ちらっと日本語サイトをのぞいてみますたが、これ、結構よさげ?

▼CodeIgniter
http://userguide.cilab.info/

ファイルアップロードクラスとか、画像操作クラスとかすでに入っているってことかすぃら。
このサイトのページに沿って進めてけば、それだけでも結構わかりそうな感じがするすな。

こっちもちょっとずつ勉強してみようかのぉ。

この前からちょっと時間ができたので、Ethnaをもう一度いじってみたんだけども…。
やっぱりEthnaは、まだまだアダクスには難しすぎるようで…。

CodeIgniter、とても作業が楽になりげおもしろそうだすな。
[PR]
by bubuka_revival | 2008-08-28 23:08 | CakePHP  

CakePHP :「高度なセットアップ:その他のインストール方法」ができますた!

今のところ、以下のサーバーにてCakePHPをインストールできておりまつ。前者は管理ツールが「webmin」で、後者は管理ツールが「Plesk」でございやす。
また、前者は管理ツール上から、公開ディレクトリを変更することでCakePHPをインストールし、後者はSSHにて公開ディレクトリを変更してCakePHpをインストールすますた。

いずれも、root権限がある場合ですた。

しかし今までの方法だと、root権限がない場合、CakePHPをインストールできないという状況になってしまいまつ…。
なので、マニュアルにある「3.4.3. 高度なセットアップ:その他のインストール方法」をやってみたのでつが、うまくいかなくて断念しておりますた(;´Д`)

そして今日、以下のページを発見すますた。

▼ほのおのクリエーターズ様
CakePHPのディレクトリ構造を変更する

マニュアルよりもわかりやすいと思ひますた。
そこで、まずはローカルで動きを確認するため、上記サイトを参考にしながら設定。
  1. webroot内のファイルをpublic_htmlに移動する。
  2. 移動したpublic_html内のindex.phpを修正する。

おお!
public_html内のindex.phpにアクセスすると、きちんとviewのhome.htmlの内容が表示されますた!

ヽ(´ー`)ノ

早速、PROXサーバーにアップし、動きを確認。
ところが…。

403エラー…。
あらー、何で…。
やっぱできないのかなぁ。

とりあえず、public_htmlの.htacessファイルを削除して再度動きを確認。

おぉぉぉぉ!!!
来た!!
トップページが表示されたぞな!!

何だ、意外と簡単だったのね。
続いてコントローラーも動くかと思い、準備してアクセスしてみますた。

ところが、これがまたエラー表示…。
あれー、何でいかんのだ…。

あ、そうか、.htacessファイルを削除したからか。
ちなみに今の状態で「index.php?url=hogehoge」にアクセスしてみたところ、ページが表示されますた。

ん?
ということは、.htacessの表示に何か問題があるのか??

ってなことで、もう一回アップロード。
んー、やはりうまくいかない…。

しばらく考えますた…。
そして思い出したのが、以前「modox」で設定した時のこと。
そういえばこのサーバーって確か「Options +FollowSymLinks」っていう設定が必要だったっけ!

ってなわけで.htaccessを以下のように変更。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
Options +FollowSymLinks
</IfModule>

そしてアクセスしてみたところ、トップもhogehogeも表示されますた!!

ヽ(´ー`)ノ

これでroot権限がないサーバーでもうまく行きそうだ!!
…長い闘いですた(;´Д`)
[PR]
by bubuka_revival | 2008-08-26 22:27 | CakePHP  

CakePHP :チェックボックスで悩む

プルダウンの場合、コントローラーで「generateList」を使い、ビューで「selectTag」を使えば、結構簡単に実装することができますた。
でも、場合によっては、プルダウンじゃなく、チェックボックスにしたい場合もありまつ。

何度かチェックボックスにしようとがんばってみたのでつが、どーもうまくいきませんでつた(;´Д`)

Google先生で「cakephp checkbox」というキーワードで検索しても、参考サイトを見つけることができませんでつた。
しかし、昨日、以下のサイトを発見。

▼私的WEBサイト制作日誌 様
CakePHPでのマルチチェックボックス

何やら「habtm」というヘルパーがあるらすぃ!

なるほど、これを使うとチェックボックスをうまく操作できそうだすな!
上記サイトに「修正後ソース」が置かれていたようでつが、アダクスはダウンロードできず…。

そこで、上記サイトで紹介されていたcakePHPのサイトをのぞいてみますた。

▼cakePHP
Create Multiple Checkboxes Instead of a Multiple-Select in your Views
※開くのが遅い…気がする。

このサイトに書かれているように、実際にやってみますた。
※しかし、英語は難しいす…。
  1. 「app/views/helpers」ディレクトリに、上部のソースを「habtm.php」といファイル名で保存。
  2. 「CSSも書く」みたいでつが、ここはパスすますた。
  3. 次のコードを「app/config/tags.ini.php」として保存。
    ※てっきり、<?php ~ ?>で囲むのかと思ったら、この囲みはいらないようですた。
  4. コントローラーで、habtmを呼び出す。
    ※「var $helpers = array('Habtm');」
  5. プルダウンと同じように、コントローラーで「generateList」を使って入れる。
  6. Smartyを使っているので、{assign_assoc var=’ArrayName’}と{$habtm->checkboxMultiple(..)}を使って表示。
これでうまくチェックボックスが出ますた!!

まぁ、これを解決したのが今日の午前3:00だったんでつがね…(;´Д`)
[PR]
by bubuka_revival | 2008-07-29 08:29 | CakePHP  

CakePHP :「Qdmail」コンポーネントで送信されたメール内容が変

メール送信を実装してみようと思い、ネットを徘徊していたところ、「Qdmail」というコンポーネントの存在を知りますた。

▼Qdmail
http://hal456.net/qdmail/

上記ページを参考にしながら、設置・送信ってな具合に、結構簡単に実装できますた。
ところが、以下のような現象が起こりますた。

相手方に届くメールはまったく問題ないのに、こちらに届くメールはなぜか、文字化け(?)する。
文字化けというか、ヘッダー情報が丸出しになる感じというか…。

「Qdmail」本体のソースにある記述(「Qdmail」のバージョンとかURLとか)が露出してしまう現象でつ。
さらに、メールの「From」がなぜか空欄になるのでつ…。

なぜ!?
これに費やした時間は2時間ほど…。

上記URLのページ内に、以下のような記事を発見すますた。

▼「Qdmail」トラブルシューティング
http://hal456.net/qdmail/trouble

この記事によると、以下のようなことのようでつ。
Qdmailでは、RFCに従い、ヘッダーの改行コードをCRLFとしています。
しかし、sendmailではないメール送信サーバー、特にqmailを使用している場合、改行コードがCRLFではなくLFのみでないと誤動作することがあるようです。
0.8.6.a以降のバージョンで、自動認識を装備していますが、当該自動認識がうまく働かない場合もあるかと思います。
その場合は、強制的に改行コードをLFのみにするように変更してみてください。
ソースコードの50行目付近に、Line Feedの項目があり、var $LFC = ”¥r¥n”と定義している行があります。
ソース内を「$LFC」で検索してみてください。
それを半角で”¥n”と変更してみてください。¥rを削除するということです。
ぬ!?
確かこのサーバはsendmailじゃなく、qmailだったはず!
しかも、メールの内容にもqmailだからうんたらくんたらと記載されている(のではないか、これ)!

ってなわけで、「Qdmail」本体の上記記載のある部分を半角で「¥n」だけにしてみた。
すると、OKですた!!

ヽ(´ー`)ノ

やっと1つ、コンポーネントが使えるようになりますた…。
[PR]
by bubuka_revival | 2008-07-26 00:24 | CakePHP  

BBK
投稿者:BBK
住 所:不定
職 業:不明
※無職ではない
※コメント内に「http://」を禁止。

08/05/11(日)現在
BBK市

※人口増加。
※産業発達。
※交通整備。
※防犯対策。
※環境整備。

08/04/05(土)現在
BBK市


08/01/20(日)現在
BBK市


08/01/11(金)現在
BBK市


08/01/05(土)現在
BBK市


07/12/23(日)現在
BBK市
S M T W T F S
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
UserAction Extension
SnapCrab
Hawkeye

カテゴリ
日記
gifアニメ
gifアニネタ
見た夢
ubuntu
PHPメモ
PHPイジリ
HTMLメモ
CodeIgniter
Piece Framework
CakePHP
Ethna
xampp
MyMiniCity
チャーシュー
大相撲懸賞クイズ
フリーソフト
ツキン変更
もらい物
メタボリックシンドローム2
メタボリックシンドローム
体重

以前の記事
2011年 05月
2011年 01月
2010年 12月
more...

ライフログ










検索

その他のジャンル

ファン

記事ランキング

ブログジャンル

画像一覧

リンク
.。oO(βΓoG)
ぱんだのおへそⅡ
うたた寝 ろびんのすけの部屋
「geocity」に作ったページに行けます。