• PHP5.3でPHP Parse error: syntax error, unexpected T_ENDWHILE

    PHP 5.3にアップデートしたらWordPressのトップページが真っ白になりました。

    Apacheのエラーログを確認してみました。

    # tail /var/log/httpd/error_log
    [Fri Mar 18 0:22:03 2011] [error] [client *.*.*.*] PHP Parse error:  syntax error, unexpected T_ENDWHILE in /home/webusers/dagejp/public_html/wp-content/themes/black-hat/index.php on line 45
    #
    

    テンプレートファイル内でエラーが出ているらしいです。確認したところ endwhile の行でエラーが出ているようです。

    endwhileはPHP5.3で対応していないのかもしれない。真偽を調査するのも面倒だったのでデザインテンプレートを変更して対応。


  • CakePHPでセッションIDが変わってしまう。(モバイル)

    CakePHPで構築したシステムでモバイルページを開発していたところ、セッションIDが頻繁に変わることに気が付きました。

    モバイルサイト向けにURLにPHPSESSIDのようなものを出して、ページ間でセッションIDを引き継いでいたところ、ページを遷移する間にセッションIDがコロコロと変わってしまう現象を発見しました。

    どうやらCakePHPはセキュリティの為にセッションIDを変更する処理が組み込まれているようです。モバイルサイトでは上記の仕様だとブラウザの「戻る」で戻って更新したりするとセッション切れ状態になるので非常に困ります。

    下記の修正で解決しました。

    Configure::write('Security.level', 'high');
    

    ↓ セキュリティレベルを high から medium へ変更。

    Configure::write('Security.level', 'medium');
    

    で、セッションIDが変わらなくなりました。