その4 サイト作りの上でのエラー

①新規ユーザを登録。管理者以外でユーザを登録する。
ユーザー名、パスワードを入力すると、登録メールアドレスへ、登録確認メールが届く。
その際、XOOPSよりメールを送付するのだが、エラーが発生。

下記スレッドより、「xoopsmailerlocal.php」を修正
http://www.xugj.org/modules/d3forum/index.php?post_id=3277

197行

  • if ($this->need_encode) {

  1. if ($this->needs_encode) {

208行

  • if ($this->mail_overload) {

  1. if ($this->needs_encode) {


上記2点修正で、エラー表示消える



②ブログ投稿で、エラー表示

phpデバッグ

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 57439 bytes) in /Applications/xampp/xamppfiles/htdocs/xampp/cube-test/class/smarty/Smarty_Compiler.class.php on line 373

php.ini で、memory_limitを8M→126Mへ


info.phpで確認すると、memory_limitが変更され、エラー起きなくなる。


③ブログの画像ファイル追加のウィンドウで文字化け

ウィンドウのタイトルは、
http://localhost/xampp/cube-test/modules/weblogD3/weblog-imagemanager_post.php?cid=3&caller=imagemanager

info.php で文字情報を確認すると、特に指定していない。

イメージマネージャのウィンドウで部分的に文字化けしており、
safariの表示→テキストエンコーディング→日本語(EUC)を選択
で、文字化けが治る。
とりあえず、safariの設定で、デフォルトを、日本語(EUC)にしておく。

また、MySql5.0はデフォルトでutf8を返すので、EUC-JPを使うXOOPSは文字化けを起こしてしまうらしい。
mysqldatabase.phpを確認
\html\class\database\mysqldatabase.php

96行め
mysql_query("SET NAMES 'ujis'",$this->conn);

確認すると、既に対応していた。


下は、文字コード設定用に、「.htaccess」を設定する方法があり、途中までやったので、余談として記載。

.htaccess ファイルで文字コードを設定する方法がある。以前、このファイルを作るために、ルートユーザ権限を作った。頭に「.」のつくファイルはルートでしか作れないからだ。苦労して作成した割に変化がわからなかった。それは、Apacheの設定ファイル「httpd.conf」の内容を、.htaccessが使用できるように設定していなかったかららしい。(今回PHP入門本で確認)

とりあえず、頭に「.」が付くファイル名は通常権限では扱えないため、「httpd-default.conf」
/Applications/xampp/etc/extra/httpd-default.conf

45行目
AccessFileName mac.htaccess

Order allow,deny
Deny from all

httpd-default.conf」の設定ファイルを有効にするため、「httpd.conf」のコメントアウト#を外す
/Applications/xampp/etc/httpd.conf

490行め
# Various default settings
#Include /Applications/xampp/etc/extra/httpd-default.conf

# Various default settings
Include /Applications/xampp/etc/extra/httpd-default.conf

以上で、「.htaccess」改め「mac.htacess」の準備ができた。


次は、「httpd.conf」で、「.htaccess」が使えるように設定が必要だが、ここはまだやってない
/Applications/xampp/etc/httpd.conf

207行以下

227行 を書き換え
AllowOverride AuthConfig
   ↓
  AllowOverride All


ただ、今回、ふと我に返り、safari文字コード指定とするだけで終わった。


文字コードは、EUCで。