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

関連記事

【WordPress】カスタムフィールドで何でも出来る!カスタムフィールドの便利な使い方 その1

【WordPress】カスタムフィールドで何でも出来る!カスタムフィールドの便利な使い方 その1

WordPressでサイトを作る場合カスタムフィールドがとても便利ですよね! そして投稿ページで入力したカスタムフィールドの値を他のトップページや固定ページでも使いたい。なんて事があるかと思います。 …

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

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

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

WYSIWYGエディタCKEditor + KCFinderで画像の保存先を動的に指定する方法。

WYSIWYGエディタCKEditor + KCFinderで画像の保存先を動的に指定する方法。

ブログの記事の編集などにWYSIWYGエディタCKEditor + KCFinderを導入しているサイトでログインするユーザごとに画像のアップロード先を切り替えたい状況がございます。 その方法を紹介し …

Phalcon PHPフレームワーク試しました

Phalcon PHPフレームワーク試しました

Phalcon(http://phalconphp.com/ja/)フレームワークは、PHPエクステンションとして利用する非常に高速なフレームワークとのことです。 動作確認までの手順です。 1. Ph …

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

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

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