cronを使う cakeでcronを使うのは非常に簡単です。 例えばcronに実行させるファイルをwebroot/files以下においたとすると、 http://host.com/users/check/ という、usersコントローラのcheckアクションを実行したい場合 <?php $_GET['url'] = "users/check/"; require_once( dirname( dirname(__FILE__) ) . "/index.php" ); ?> と、たったこれだけで実行可能です。 ファイルはapp/script/等を作ったりして WEBに公開されないところに配置しておきましょう。
ちょっとページング処理を入れる必要が出てきて、PEAR::PagerでもいいんだけどCakeのinclude_pathってPEARと相性悪いのでさてさてどうしようと思ってぐぐったらtoyosystem | CakePHP::Pagenation(ページャ、ページング処理)という記事が出てきて、paginationコンポーネント、ヘルパー、エレメントを指定の場所に置いてテケテケっとするとページングが出来るという内容で、「私が探し求めていたのはまさにこれだ!」というわけで速攻で使ったのですが、すべて実装が終わったあとにPaginatorの使い方。CakePHP1.2 – CPA-LABテクニカルなどというエントリを発見。1.2からはpager内蔵らしいです。 使い方は内蔵されてる分paginationよりさらに簡単。 controllerはこんな感じ。5件ずつ表示したい。 function i
Apache,PHP5,PEAR,MySQL,XAMPP,cakePHPを使ったWebサイト構築のTips hiddenまたはsession、cookieを使う。 sessionで制御する場合。 1.セキュリティレベルを変更する。 app/config/core.php を修正する。 ■変更前 define('CAKE_SECURITY', 'high'); ■変更後 define('CAKE_SECURITY', 'medium'); "high"だと、セッションが短期間でクリアされる。 2.cssやviewの中で、存在しない画像ファイル、cssファイルを示すものがないかを確認する。 ※存在しないファイルがあると、HTTPアクセスをしてセッションが消える。 3. .htaccessを修正する。 app/webroot/.htaccess を修正する。 <IfModule mod_rewr
■controller var $paginate = array("limit"=>10,"order"=>"id DESC"); function search(){ $data = $this->data['User']; if (!empty($data)){ //検索条件 $cond = 検索条件 $_SESSION['cond'] = $cond; $this->paginate = array_merge($this->paginate,$cond); $datas = $this->paginate(); $this->set('data',$datas); }elseif(isset($_SESSION['cond'])){ $this->paginate = array_merge($this->paginate,$_SESSION['cond']); $datas =
CakePHPで開発する際は、基本的にはテンプレートは素のPHPで記述しています。PHPでもちょっとしたIF文を記述すれば同様のことはすぐにできるのですが、、結構利用頻度が高そうなので簡単なCycleヘルパにしてみました。 使い方1 changeメソッド 1.上記の例のように、一行置きに背景色を変更する <?php // 背景色の定義(白と黄色の2色にローテーションさせる) $bgcolor = array('white', 'yellow'); ?> <table border="1"> <tbody> <?php foreach ($data as $i->$_data): ?> <tr style="background:<?php echo $cycle->change($bgcolor, $i); ?>"> <td>$_data['Major']['name']<
PHP学習日記 DelphiでC/Sプログラムを書いていたSunvisorがPHPに挑戦する課程を綴るブログ。はたしてWebアプリを作れるようになるのでしょうか。 サーバのテーブルに,CakePHP経由でアップロードしたCSVファイルをインポートする必要がありましたので,その処理を作ってみました。CSVファイルをサーバにアップロードし,そのファイルをDBにインポートするという手順になろうかと思います。 ビュー <div class="options form"> <div class="actions"> <ul> <li><?php echo $html->link('メニューに戻る', array('action'=>'index'));?></li> </ul> </div> <?php echo $form->create('Options', array('action'=>'u
CakePHPで郵便局のサイトから郵便番号データCSVを取得し、データインポートする処理です。 ■テーブルの作成(PostgreSQL) create table zips( created timestamp not null, id text primary key, pref text, address1 text, address2 text ); ■モデルの作成 app/models/zip.php ■メイン処理の作成 app/vendors/shell/zip.php Zip->begin(); $this->Zip->deleteAll(array("NOT" => array("id" => null))); $fh = fopen("ken_all.csv", "r"); while($cols = fgetcsv($fh,500)) {
CakePHP 1.2 を使用してフォームを作成してバリデーションを使用したメモです。 下記サイトを参考にさせていただきました。 cakePHP 1.2のバリデーションを理解する – cakephp – クロアチアで働くプログラマー日記 例としてメールアドレスを2回入力させるフォームを考えて見ます。 バリデーションルールとして 必須項目 メールアドレスとして正しい メールアドレスがユニーク 2回入力したメールアドレスが一致する モデルにバリデーションを定義する var $validate = array( 'email' => array( 'unique' => array( 'rule' => array('checkUnique', 'email'), 'message' => 'メールアドレスは既に登録されています' ), 'rule1' => array( 'rule' => a
概要 社内システムの売上管理でグラフを表示させたいと思って、PHPで使えるライブラリを探していたところ、 pChart OpenFlashChart 以上の2つが候補にあがりました。 どちらかといえばpChartの方が扱いが簡単そうだったので第一候補にあげていたのですが、どうやらPHP4専用のようで…orz 結局第2候補のOpenFlashChart(以下OFC)を使うことにしました。 結論から言うと、OFCにして大正解。 よくよく調べるとOFCにはCakePHPのヘルパーがあったり、そのおかげで扱いも非常に簡単だったり、思った以上にスタイリッシュでかっこよかったり*1 と、pChartがPHP4専用でよかったです。ほんと。 導入に際しては結構手間取った部分もありましたのでここにメモとして残しておきたいと思います*2 。 導入方法 ファイルを設置 まずは本体をこちらからダウンロード。 ここ
運用時にデバック情報を画面出すのはまずいので、下記の設定をします。 [app/config/core.php] define('DEBUG', 0); この状態だと全く何もでないので、ファイルにエラーを書き込むようにします。 [app/webroot/index.php] require CORE_PATH . 'cake' . DS . 'bootstrap.php'; error_reporting(E_ALL); //追加 ini_set("display_errors", 0); //追加 ini_set("log_errors", 1); //追加 ini_set("error_log", "/path/to/phperror.log"); //追加 (ログを書き込むファイルには書き込み権限が必要) 設定
CakePHP のエントリポイント(開始位置)しては以下3つがある。 メインは「/app/webroot/index.php」で最終的にはこれが呼ばれることになる。 ファイルを解凍し、ウェブサーバのDocumentRootに配置してすぐに使えるようにしていることを意図していると思われる。 セキュリティ的には、「/app/webroot/」のみを公開するほうがいいと思われます。 mod_rewrite 有効時は .htaccess の設定により必ず「/app/webroot/index.php」が呼ばれるようになる。 また、「/app/webroot/.htaccess」の設定により、指定されたURLのディレクトリもファイルも存在しない場合、index.phpがコールされる。 指定された URL はGETパラメータとして渡される。キーは「url」。 ex) http://bobch.in/c
こんにちは、中川です。 以前、「AMFPHPを試してみました」でphpとFlashの通信を試してみましたが、 今回はCakePHPを使ったFlashとAMFでのやり取りする方法を考えてみました。 CakePHPでAMF通信ができるものを探してみたところ、 「CakeAMFPHP」、 「CakeAMF」、 「CakeSWXPHP」 など、いろいろ見つかりました。 一通り試してみましたが、設置が面倒であったりうまく動かなかったり (私のやり方が悪いと思いますが、)どうもしっくりきませんでした。 もっとCakePHPから使いやすそうなものがないか探してみたところ、 「SabreAMF」というライブラリを見つけました。 これを通常の使用方法で試したところ、非常に簡単にやり取りができましたので、 CakePHPからも使いやすいようにCakePHP用のコンポーネントを作ってみました。 ※動作イメージ
cakePHPでSessionを利用するときは $this->Session->write(); $this->Session->read(); を使いますが、今回セッションが消えるという問題がおこった。 現在のバージョンは1.1.18。 最初、CAKE_ADMINを利用した管理画面の時のみ、セッションが消える現象がおこったのでその関係かなと思っていました。でも、実際はCAKE_ADMINは関係なかった。 原因はCSSでした。 →「cakePHPで変なアクセスがある!?」 で紹介されていたのですが、 画像、CSSなどで実際に存在しないパス&URLを指定していると、サーバにHTTPアクセスを行う!! その結果(内容は上記サイト参照)、セッションが消されていたということのようで・・・。 実際に、管理画面用のCSSには、存在しない画像へのパスが書かれていて、それを消したらセッションが消えなくなり
今回は、はてなダイアリーのURLのようにドメイン名に続いてユーザー固有のIDで始まるURL(自分のでいうとhttp://d.hatena.ne.jp/ngtn/)をCakePHPでどのように実現するかを考えてみました。 まず仮に app/controllers/diaries_controller.phpファイルに定義された、DiariesControllerクラスのdisplayメソッドがユーザー固有のページを表示するものだと仮定します。 このメソッドは引数$userNameをとり、それがユーザーを識別するはてなIDのようなものだとします。 以降は$userNameの値を仮に'ngtn'として話をします。 <?php class DiariesController extends AppController { function display($userName){ //指定された$u
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く