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でオーディオファイルの情報を取得する方法

phpでオーディオファイルの情報を取得する方法

PHPで利用しまして、オーディオファイルの情報(再生時間、タイトルやアーティスト名など)を取得するには、getID3というライブラリを利用します。 以下このライブラリを利用した音楽ファイルの情報の取得 …

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

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

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

Google AnalyticsのPV数を取得するための準備について。

Google AnalyticsのPV数を取得するための準備について。

ウェブサイトのアクセス数をサイト内に表示させたい場合があるかと思います。 今回は直接Google AnalyticsのPV数を取得するまでの準備についてご紹介いたします。 目次1 1)Google A …

CakePHPで開発環境と本番環境の設定を切り替える方法。

CakePHPで開発環境と本番環境の設定を切り替える方法。

CakePHPフレームワークを利用し、データベースを利用したCMSなど制作する際、開発環境と本番環境で同じファイルにしたい場合があるかと思います。 今回は、『SetEnv』を利用した開発環境と本番環境 …