phpの設定
rNoteはphpがどんな設定であっても、大抵は問題なく動くように設計してあります。が、設定によっては、余計なオーバーヘッドがあったり、セキュリティ的に問題があったりしますので、以下のような設定で動作させる事を推奨します。
<IfModule mod_php4.c> php_flag register_globals Off php_flag magic_quotes_gpc Off php_flag magic_quotes_runtime Off </IfModule>
上記のような記述を、.htaccess に記述してください。
まず、register_globals についてですが、これが Off だと過去のプログラムが動かない事が多いので、多くのサーバーでは On になってますが、On だとセキュリティ上の問題がありますので、Offにしておく事を推奨します。
なお、自前サーバーの方であっても、これを On にしてしまうと、他の php のプログラムが動作しなくなる場合がありますので、php.ini で設定するのではなく、.htaccess で rNote のディレクトリに対してだけ設定するようにした方が良いでしょう。
magic_quotes_gpc は、まぁどちらでも良いと言えばどっちでも良いのですが、一応、Off の方が、ほんのちょっとだけ処理が減ります。
magic_quotes_runtime は、実を言えばプログラム内部で set_magic_quotes_runtime(false); を行っているので、設定はどっちであっても余り関係が無いのですが、まぁ一応 Off と言う事で。
フォーム入力の文字化け対策
ページの内容が文字化けする場合は、ファイルの文字コードが SITE_CHARSET(ディフォルトではUTF-8)と違うコードでセーブされている事が原因かと思われます。該当記事又はスキンの文字コードを確認し、セーブし直してみてください。
さて、php の設定によっては、ツッコミの書き込みなど、フォーム入力の文字が化けてしまう場合があります。このような場合、.htaccess で以下のような設定を行ってみてください。
<IfModule mod_php4.c> php_value default_charset UTF-8 php_value mbstring.language Japanese php_value mbstring.detect_order auto php_value mbstring.http_input pass php_value mbstring.http_output pass php_value mbstring.internal_encoding UTF-8 php_value mbstring.substitute_character none php_value mbstring.func_overload "0" php_flag mbstring.encoding_translation Off </IfModule>
phpでのフォーム入力の文字化けの原因は、大抵の場合、文字コードの自動判別及び変換の失敗に起因します。従って、まずエンコードをUTF-8に設定し(初期設定の SITE_CHARSET をUTF-8 以外に変更した場合は、それに合わせる必要があります)、後は出来るだけ余計な事(自動判別や自動変換)を何もしない…という方針です。
なお、この設定は、日本の標準的な php の設定とはかなり違っています。従って、自前サーバーで動作させている方でも、php.ini で設定を行うのではなく、.htaccess で rNote のディレクトリに対してのみ設定を行うようにした方が無難でしょう。
レンタルサーバーなどの方で .htaccess による設定変更が許可されてなく、どうしてもツッコミなどが文字化けしてしまう…という場合は、初期設定の FORM_CONVENC_AUTO を true にしてください。文字コードの自動判別及び変換を行うようになります。
但し、自動判別は入力された文字数が少ない時、判別に失敗して逆に文字化けを起こす場合があります。FORM_CONVENC_AUTO は false のままにしておき、なるべくサーバーの設定で対処する事を推奨します。