いもろぐ - PHP Archive

Home > PHP

PHP Archive

【OpenPNEの小窓】Twitter小窓を作ってみた。

【OpenPNEの小窓】Twitter小窓を作ってみた。

Twitter小窓

まぁデザインはさておき、まだまだやることがあるけどとりあえず公開。
文字数とかきにしてない。。。まずいな。

かん吉のソースを改造しました。
ソース公開できるようになったら公開します。

  • Comments (Close): 0
  • Trackbacks (Close): 0

さくらインターネットのサーバとCakePHPでcronを使う方法をすこし変えてみた。

さくらインターネットのサーバとCakePHPでcronを使う方法の修正版です。

よくきたはてダさんに指摘をもらった。

いやいや逆だろ

確かにそうだな。。。ということでちゃんと書く。(まだ微妙かもしれんが)

* cronで実行するPHPスクリプトの作成
* 該当スクリプトのテスト
* コンパネでcronの設定
* 正常動作の確認

cronで実行するPHPスクリプトの作成

まず、cronで実行させたいPHPのスクリプトを作ります。
今回は、users_controller.phpにmail関数を作り、メールを送信します。

PHP:
  1. function mail(){
  2.    
  3.     // 本文
  4.     $message = "message";
  5.     // 送信する
  6.     mail('hoge@hoge.com', 'My Subject', $message);
  7.    
  8.     }

次に、app/webroot/files以下に、cron.phpというファイルを作ります。

PHP:
  1. <?php
  2.     $_GET['url'] = "amazon/mail/";
  3.     require_once( dirname( dirname(__FILE__) ) . "/index.php" );
  4. ?>

該当スクリプトのテスト

次にさっきつくったPHPスクリプトが正常に動作するか確認してみます。
以下のURLにアクセスしてみて動いたらとりあえずOK。

http://hogehoge.com/files/cron.php

コンパネでcronの設定

さくらのコントロールパネルでcronの設定をします。

Ci080302174432

/usr/local/bin/php /home/(ユーザ名)/www/cakephp/app/webroot/files/cron.php

正常動作の確認

これで、定期的にhttp://hoge.com/users/mailが実行されるようになる。

とまぁ書き直してみたものの、このスクリプトをWEBからアクセスできるのはだめな書き方だからcomponentsとかにスクリプト書いてそれをcronで実行する形がいいのかな。ってかmailっていう例が良くなかったかもな。

ちなみに、さくらだと
OS FreeBSD 6.1-RELEASE-p10 i386
なので、fetchとかwgetってのが使えるらしい。

ってことを目的としては行いたいみたいなんだけど,さくらだとFreedBSDかな.fetch(あるいは入って入ればwget)をcronで使えばいいんじゃないのかな.

とりあえず、fetchとかwgetがよく分からんので調べる。

一番分かりやすい説明がここだった。
XREA & CORESERVER の cron と WordPress の wp-cron

XREAでの説明だけど、wgetの意味が分かった。

elfさんに指摘をもらうなんてWEBってすげーと思いつつ、自分が書くものには責任が持てる記事じゃないとなーとか反省。
どっちにしてもcronが良くわからないから勉強しなきゃな。

さくらインターネットのサーバとCakePHPでcronを使う方法

さくらインターネットのサーバとCakePHPでcronを使う方法

Ci080302174432

まず、さくらでcronの設定をします。
実行するコマンドに

/usr/local/bin/php /home/(ユーザ名)/www/cakephp/app/webroot/files/cron.php

とします。

次にCakePHPの設定。
app/webroot/files以下に、cron.phpというファイルを作ります。

PHP:
  1. <?php
  2.     $_GET['url'] = "users/mail/";
  3.     require_once( dirname( dirname(__FILE__) ) . "/index.php" );
  4. ?>

これで、users_controller.phpにmail関数を作る。

PHP:
  1. function mail(){
  2.  
  3. hogehoge
  4.  
  5. }

これで、定期的にhttp://hoge.com/users/mailが実行されるようになる。

参考サイト
アルファブレンド・プログラミングチップス
CakePHP cronを利用する
さくらインターネットでのcronの設定

CakePHP1.2系のインストール

CakePHP1.2系のインストールをしていたら、エラーがでました。
はて、1.1系はでなかったぞ。と思い調べて見る。

CakePHP- the rapid development php framework- Home-2008-02-11 -15-55-14
CakePHP- the rapid development php framework- Home-2008-02-11 -15-55-14 posted by (C)いもけん

調べて見ると、

PHP:
  1. /**
  2. * A random string used in security hashing methods.
  3. */
  4.     Configure::write('Security.salt', 'D1hG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi');

このハッシュを変更してくてはいけないらしい。

CakePHP- the rapid development php framework- Home-2008-02-11 -15-59-28
CakePHP- the rapid development php framework- Home-2008-02-11 -15-59-28 posted by (C)いもけん

このように黄色の文字はなくなりました。

で、みどりのとこはなんて書いてあるのかというと、

Your tmp directory is writable.

The FileEngine is being used for caching. To change the config edit APP/config/core.php

Your database configuration file is present.

Cake is able to connect to the database.

なので大丈夫みたいだな。

さくらのレンタルサーバが1月29日より PHP5 を正式に提供!!!

  • 2008-01-24 (木)
  • PHP

こんなメールが来ました。
ついにさくらでPHP5正式提供らしいですよー!

ちなみにバージョンの指定は出来るみたいなので、PHP4から変えたくない人は変えなくていいみたいですよー。

以下メール文転記。

お客様各位

[「さくらのレンタルサーバ」スタンダード・プレミアム PHP5 の提供]

さくらインターネット株式会社

平素はさくらインターネットをご利用いただき、誠にありがとうございます。

「さくらのレンタルサーバ」スタンダード・プレミアムサービスにおきまして
2008年1月29日より PHP5 を正式に提供します。

※ 一部サーバにおいてはテスト運用として試験的に導入済みです。

また、PHP5 提供、及び PHP4 バージョンアップに伴い以下のメンテナンスを
実施します。ご迷惑をお掛けしますが、ご協力よろしくお願いします。

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

[メンテナンス]

提供範囲: 「さくらのレンタルサーバ」スタンダード・プレミアム
※ ライトプランはPHPを提供しておりません。

作業日程: 2007年1月29日(火)
作業内容: ・PHP5を提供します。
(コントロールパネル上の「PHPのバージョン選択」で
バージョン指定することによりPHP5がご利用できます)

・現行の PHP4.4.7 は PHP4.4.8 へバージョンアップします。

▼ PHP 4 ChangeLog
http://www.php.net/ChangeLog-4.php#4.4.8

■ PHP4 から PHP5 へのバージョン選択時の注意事項

PHP5バージョンアップにより、一部のスクリプトの動作が変更に
なる場合がございます。その際は、PHPプログラムの配布元及び
プログラムの内容やPHP5での動作状況をご確認くださいますよう
お願いします。

▼ PHP 公式サイトの修正点の掲載
http://jp.php.net/manual/ja/migration5.php
http://www.php.net/ChangeLog-5.php

■ PHP4 の今後について

2007年末をもってPHP開発元によるPHP4のサポートは終了しました。
2008年8月8日以降は重要なセキュリティフィックスも含め終了されます。

http://www.php.net/index.php#2007-07-13-1

「さくらのレンタルサーバ」では2008年6月頃を目途に[標準のPHP]に
おいてもPHP4からPHP5へ全て切り替えを予定してます。
お早めにPHP5へ移行されることをお勧めします。

※ 2008年1月14日以降に新規にご用意したサーバ(www1410 以降)に
ついては[標準のPHP]をPHP5で提供しています。

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

この件については、当メールへの返信にてお問い合わせください。

今後ともさくらインターネットをよろしくお願いいたします。

─── さくらインターネット株式会社 ─────────────────

■カスタマーセンター (ご利用サービスについてのお問い合わせ窓口)
URL : http://support.sakura.ad.jp/
TEL : 0120-775664 (通話料無料) 平日 10:00 - 18:00

■FAQ(よくある質問)から調べる
URL : http://faq.sakura.ad.jp/

────────────────────────────────────

phpinfoで簡単にデバッグする方法

phpinfoで簡単にデバッグする方法

アクセスがあったときにphpinfoで「どういう値が飛んできているのか。」とか「アクセスあったの?」などを調べる方法の紹介。

PHP:
  1. <?php
  2. phpinfo(32);
  3. $out1 = ob_get_contents();
  4. $message = $out1;
  5. $fileday = date('Ymdhis');
  6. $fp = fopen($fileday . '.html', 'a+');
  7. fwrite($fp, $message);
  8. fclose($fp);
  9. ?>

簡単に説明すると、
// ファイルを開く
$fp = fopen($fileday . '.html', 'a+');
// ファイルに書込む
fwrite($fp, $message);
// ファイルを閉じる
fclose($fp);

こんな感じ。

ちなみに、$out1ってのの中の値を見たかった場合、var_dumpを使うといいでしょう。
phpinfo(32);
環境変数・GET・POST・クッキー・サーバ変数から すべての 定義済みの変数を表示してくれます。
これをphpinfo();とすると、サーバすべての情報ですが、今回は必要な情報だけということで、phpinfo(32);にしています。

これを使うと、アクセスがあった場合にYmdhis.htmlというファイルが生成されて、そこに、id=testっていう値がGETで飛んできましたよーとか情報が書いてます。

PHPのコードが見やすくなったよ!

  • 2007-11-16 (金)
  • PHP
PHP:
  1. <?php
  2. echo"Hello world";
  3. ?>

apacheのvhosts(httpd-vhosts.conf)を使ってcakephpというドメインを使う方法

apacheのvhostsを使ってcakephpというサブドメインを使う方法

1.まず、「C:\Program Files\xampp\apache\conf\extra\httpd-vhosts.conf」をテキストエディタで開く。
そして、最後の行に、これを追加するだけ!

NameVirtualHost *:80


DocumentRoot "C:\Program Files\xampp\htdocs"
ServerName localhost


DocumentRoot "D:\cakephp"
ServerName cakephp

Order allow,deny
Allow from all

DocumentRootは作業ディレクトリ
ServerNameは自分が作りたいドメイン

2.「C:\WINDOWS\system32\drivers\etc\hosts」をひらく。
127.0.0.1 localhostの下に、
「127.0.0.1 cakephp」
を追加する。

すると、アクセスできるようになってるよ。

つまったところをピックアップ。

・localhostは入れること!!
・下の二行は入れること!
Order allow,deny
Allow from all
・apacheは再起動すること!!

CakePHPガイドブック買ったよ!!

CakePHPガイドブック

CakePHPガイドブック買ったよ!!

まだ最初の方しか読んでないけど、初心者であるおれが行き詰った箇所が多々説明されていてCakePHPを触ったことない人には絶対おすすめしたい本かな!

しかも、結構触ってる自分でも「あ~なるほど」と思える部分が解説されていて、既存のユーザにもすごくおすすめの本ですね!
著者の方々に感謝 :-)

そういえば、CakePHP のおいしい食べ方であったんだけど、1.2 pre-bet、1.1.18がついにきたそうな。

【CakePHP】コントローラ側でのバリデーション ファイルアップロード時のinvalidateの使い方

CakePHPの優れたバリデーションを紹介。
今回はコントローラ側での処理を考える。
モデル側でやれよとか言われそうだが。。。

コントローラ側

if(file_exists($this->data['User']['pic']['tmp_name'])){ //ファイルの存在を確認 tempの状態で確認
$filesize = filesize($this->data['User']['pic']['tmp_name']);//ファイルサイズを取得 tempの状態で取得
if($filesize < = 100000){ //100000byte以下しか受け付けない
if(ereg("(^[a-zA-Z0-9_-]+)\.(jpg)|(^[a-zA-Z0-9_-]+)\.(gif)",$filename)){ //jpgかgifしかアップできない
move_uploaded_file($this->data['User']['pic']['tmp_name'], $updir.DS.$filename); //ファイルをuploadフォルダに保存
} else {
$this->User->invalidate('error1'); // tagErrorMsg('User/error1') 拡張子チェック
}
} else {
$this->User->invalidate('error2'); // tagErrorMsg('User/error2') ファイルサイズが大きすぎ
}
}

ポイント
$this->User->invalidate('error1');
このerror1というのがビューでのエラーメッセージ表示と繋がる。

ビュー側
< ?php echo $html->file('User/pic');?>
< ?php echo $html->tagErrorMsg('User/error1', 'jpg かgif のファイルしかアップできません。或いはハイフン以外の記号があります。');?>
< ?php echo $html->tagErrorMsg('User/error2', 'ファイルサイズが大きすぎます。
100000 Byte 以下にしてください。');?>

これで、それぞれ指定したエラーメッセージをコントローラ側で処理できる。

ちなみにマニュアルにもちょこちょこ書いているので参考までに。

validateErrors();
;

保存に失敗時に、エラーの数を返します。

validate();
;

モデルのバリデーションルールに基づいて、モデルのデータを検証します。バリデーションについては、 "データバリデーション"の章を参照してください。

http://cakephp.jp/doc/ch07s02.html
http://cakephp.jp/doc/validation.html

ホーム > PHP

Return to page top

track feed