PHP

PHP(CakePHP)の開発でうまく動作しない場合について

投稿日:2014年8月4日 更新日:

PHP(CakePHP)の開発でうまく動作しない場合の解決方法について何点か紹介します。

– CakePHPのモデルのsave()メソッドでレコードを更新したときに更新日付(modified列)が更新されない場合
$data[“modified”] = null; // modifiedにnullを設定しますと更新されます
$this->Data->save($data);

– ディレクトリが存在する状況でCakePHPを動作されるためのmod_rewriteの書き方
CakePHPのデフォルトのmod_rewriteではディレクトリが存在する場合、ルールを適用しない設定になっています。
# 以下デフォルトの.htaccess
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

/sp/などディレクトリが存在する状況でもルールを適用する場合は、
該当のディレクトリ用のルールを追記します。
# /sp/にもルールを適用
RewriteCond %{REQUEST_FILENAME} “sp\/$”
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

– メールが送信先に届かない場合
一部の送信先にメールが正常に送信できない場合、
「Return-Path」を設定しますことによりうまく届くことがあります。
mb_send_mailなどでは、引数で設定可能ですが、
それではうまくいかない場合があります。
その場合
ini_set(“sendmail_from”, $from)
も指定します。

$parameter=”-f test@test.co.jp”;
$from = “test@test.co.jp”
ini_set(“sendmail_from”, $from) //
mb_send_mail ($to , $subject , $body $headers , $parameter);

– SJIS・EUCをUTF8変換時の文字化け
mb_convert_encodingで文字化けする場合、
「SJIS」の代わりに「SJIS-win」
「EUC-JP」の代わりに「eucJP-win」
を指定すると文字化けは解消します。

-PHP

関連記事

Movable Type6がリリースされました

Movable Type6がリリースされました

movable type6 以下の新機能が追加されたとのことです。 – Data API APIを通じてMovable Typeの管理画面の操作や記事の読み込みが可能になったとのことです。 – Cha …

PHPフレームワークLaravel4を試しました。

PHPフレームワークLaravel4を試しました。

1. Laravel4をインストールするためには、Composerを利用します。 以下のコマンドでComposerをインストールします。 % curl -s http://getcomposer.or …

Laravel SocialiteでGitHubを利用した認証

Laravel SocialiteでGitHubを利用した認証

目次1 Lravel SocialiteでGitHubを利用したOAuthによる認証の手順を紹介します。1.1 1. GithubでOAuthアプリケーションを作成1.2 2. Laravel標準の認 …

wpdbは使わず、WordPressのデータベースから直接データを取得する方法

wpdbは使わず、WordPressのデータベースから直接データを取得する方法

今回は、wordpressのwpdbを利用できない環境で、phpのPDOを利用し、 selectする方法をご紹介いたします。 WordPressのサイトからフォームに記事IDとともに遷移し、フォームに …

Laravel5を操作してみました

Laravel5を操作してみました

先月リリースされました、PHPのフレームワークLaravel5を操作してみました。 目次1 1. プロジェクトの作成2 2. パーミッションの変更3 3. コントローラの作成4 4. ルーティング設定 …