WEBアプリケーション(スクリプト)作成・修理・トラブル解決相談

CANADOH

QR Code

Support Board

Home > Support >

Support Board

投稿文

質問 - END Cookieが文字化け?
桜の花びら [2006/07/04 09:53:57]
まじめまして。
sktopic v1.1.0をland.toさんで使用している桜の花びらと申します。
スレッドをひとつ立てようかどうしようか迷いましたが、
同じような内容が見当たらないようなので書き込ませていただきます。

さて、本題ですが、
Land.to(http://land.to/index.php)というフリーWEBスペースを借りてWEBサイトを構築中なのですが、
そこでCookieが文字化けします。
例えば、
「暁(管理人)」→「񎼰鎮掺>」
「桜の花びら」→「墰ꎱᎳ>」
などです。
しかも、不思議なのは書き込んだすぐ後は正常です。
しかし、そこからページを移動すると文字化けします。
ログファイル等の文字化けはありません。
そして文字化けした状態で書き込むともっと文字化けします。

閲覧環境は以下のとおりです。
Windows XP Media Center Edition 2005
 Sleipnir2.41(IE 6.0)
 Opera 8.5 ja
 Firefox 1.5.0.4

CentOS 4.3
 Firefox 1.0.8
ちなみにこの環境全てで文字化けします。
携帯電話では試していません。
→ 桜の花びら [2006/07/04 09:56:53]
すみません。
書きかけで投稿してしまいました。

続き
CentOS 4.3
 Firefox 1.0.8
ちなみにこの環境全てで文字化けします。
携帯電話では試していません。

これはこの掲示板のバグなのでしょうか?
それとも設置サーバーの不具合なのでしょうか?
此方のバグでないのなら後日この設置しているサーバーに問い合わせてみます。
ちなみに、KENT-WEBさんなど、他の掲示板(Shift-jis)では文字化けは起こりません。

よろしくお願いします。
そして、不完全で投稿してしまい失礼いたしました。
→ Cana(運営) [2006/07/04 14:59:16]
お問い合わせありがとうございます。
Cookieの文字化けに関してですが、sktopicを何の変更もなく設置した状態でも発生しますでしょうか。
あと、お手数ですが以下の操作をしてみてください。

----------
index.php 内部 function getcookie にて、
return $cookie;
の前に、
$cookie = mb_convert_encoding($cookie, "UTF-8", "auto");
の1文を加える。
----------

結果をお教え頂ければ幸いです。
→ 桜の花びら [2006/07/04 15:22:37]
素早い返信ありがとうございます。
>sktopicを何の変更もなく設置した状態でも発生しますでしょうか。
はい。此方のスクリプトを何も弄らずに設置いたしました。
パーミッションも適正地を設定しています。

>結果をお教え頂ければ幸いです。
そのとおりに追加いたしましたところ、
「<input type="text" name="name" size="40" value="證」
という風になってしまい、投稿すら出来なくなってしまいました。
また、UTF-8の部分をSJISに変更しましたら最後の数文字が文字化けしましたが、概ねきちんと表示されるようになりました。
しかし、ブラウザによっては全く意味不明な文字になることもあります。

ちなみに、
書き忘れましたがPHP4バージョンのほうを使用しています。
→ Cana [2006/07/04 17:29:59]
ご報告ありがとうございました。
SJIS にしたら少し改善されたのですね。
これは、上記一文の UTF-8 のみを変更したということでよろしいでしょうか?

sktopicでは内部の操作を UTF-8 で統一しておりますので、SJIS に変換すればなおるというのは、少々不思議な感じがします。サーバの設定に問題があるのかもしれません。

というわけで、いくつか調べて頂きたい点がございます。それ用にPHPスクリプトを書きますので、よろしければ今しばらくお待ちくださいませ。
→ 桜の花びら [2006/07/04 17:45:26]
了解しました。

>これは、上記一文の UTF-8 のみを変更したということでよろしいでしょうか?
はい、そうです。

>サーバの設定に問題があるのかもしれません。
ん~
やはりその可能性もありますねぇ。

→ Cana [2006/07/04 23:26:20]
お待たせいたしました。
以下の URI から skcheck.zip というファイルをダウンロードし、解凍後に出てくる skcheck.php を sktopic のディレクトリに設置して、ブラウザで開いてみてください。
表示されたものをここに貼り付けて頂きたく存じます。
skcheck.php で Cookie のテストもしてみてください。

http://www.canadoh.jp/tools/php-mod/tmp/skcheck.zip
(※ 23:34に差し替えました)

よろしくお願いいたします。
→ 桜の花びら [2006/07/05 08:18:24]
対応ありがとうございます。

先ほどのファイルを置いてみました。

---------------
skcheck.php の文字コードは SJIS です。
active.php の文字コードは UTF-8 です。
index.php の文字コードは UTF-8 です。
template.html の文字コードは ASCII です。

--------------------------------------------------------------------------------

Array
(
[mbstring.language] => Japanese
[mbstring.internal_encoding] => UTF-8
[mbstring.encoding_translation] => 1
[mbstring.http_input] => auto
[mbstring.http_output] => pass
)
--------------
以上が結果です。

Cookieチェック
 テスト(52)
次のページ
 ・ニ・ケ・ネ。ハ」オ」イ。ヒ / 繝・せ繝茨シ茨シ包シ抵シ
戻る
 テスト(52)

次のページをUTF-8にした結果
?ƥ??ȡʣ????ˠ/ テスト(52)
EUC-JP
テスト(52) / ・・"鴻ヨ鐚郁[戊[定[
SHIFT-JIS
初期

でした。
これはやはりサーバー側の問題でしょうか?
→ Cana [2006/07/05 11:26:31]
早速のチェックありがとうございます。

1つお訊ねしたいのですが、skcheck.php を開いた際の文字コードは何になっていますか?
UTF-8 にした結果をお書きになっているということは、恐らく UTF-8 以外の表示になっているのだと思いますが……。skcheck.php はファイルの文字コード自体は Shift_JIS ですが、表示は UTF-8 で行うようにしてあるのです。meta タグでも UTF-8 を指定してありますので、ブラウザ表示でそうなっていないとおかしいということになります。

サーバの問題かどうかはまだ特定できませんが、引っかかる部分はございます。
→ 桜の花びら [2006/07/05 11:33:35]
返信ありがとうございます。

スクリプト事態の文字コードはShift_JISです。
ブラウザで表示した際の文字コードはUTF-8となっています。

Cookieを送信した後のページ(文字化けしているページ)の文字コードはShift-JISになっています。
→ Cana [2006/07/05 13:06:59]
Cookie 送信後に Shift_JIS になるのですね。
その時、他の日本語は化けていませんか?
meta タグの指定を無視して表示しているようなので、一度、送信後のソースを見てみないと何とも言えません。
skcheck.php のチェック項目を増やしましたので、もしよろしければ再度ダウンロードの上、テストしてみてください。

http://www.canadoh.jp/tools/php-mod/tmp/skcheck.zip
→ 桜の花びら [2006/07/05 13:45:45]
返信ありがとうございます。

結果です。
skcheck.php の文字コードは SJIS です。
active.php の文字コードは UTF-8 です。
index.php の文字コードは UTF-8 です。
template.html の文字コードは ASCII です。

--------------------------------------------------------------------------------

Array
(
[default_charset] =>
[mbstring.language] => Japanese
[mbstring.internal_encoding] => UTF-8
[mbstring.encoding_translation] => 1
[mbstring.http_input] => auto
[mbstring.http_output] => pass
)

Cookie 値の文字コードは SJIS です。skcheck.php 自身の文字コードと同じになっていれば正常です。

skcheck(ソース)とCookieの文字コードは同一ですね。

http://heiseis.is.land.to/bbs/skcheck.php
此方がそのチェックファイルのアドレスです。
→ Cana [2006/07/05 13:56:20]
どうなっているのかわかりました。
land.to では header による転送が禁止されているのですね。だから送信後に妙なページが表示されてしまったようです。

Cookie 値は正常に読み取れていますね。
これなら sktopic でも正しく読み込めそうな気がしますが、そちらは化けてしまうのですよね?

もう少し考えてみます。
→ 桜の花びら [2006/07/05 21:01:44]
ん~
やはりland.toが原因ですか。
お手数かけます。
→ 桜の花びら [2006/07/06 09:08:53]
すみません。
報告です。

先ほどWEBスペース提供元のBBSを見てみたところ、
http://land.to/supportbb/viewtopic.php?t=1968
このような書き込みがあり、それのとおりに.htaccessファイルを作成して設置しましたところ、
Cookieが正常に読み込めるようになりました。
何度ページを移動しても正常なままです。

こういうのはまず最初にWEBスペース提供者を疑うべきでしたね。
ご迷惑おかけしました。

迅速な対応ありがとうございました。
では。
→ Cana [2006/07/06 11:08:53]
動きましたか。よかったです。
スクリプトのほうで .htaccess と同等の物を set するようにしてあるのでその点は大丈夫だろうと思っていたのですが、land.to は .htaccess じゃないと駄目だったのですね。
いえ、もしかしたら HTTP 入力文字エンコーディングを pass にしていなかったのが原因かもしれません。
どちらにしても、わたしがもっと早く気づくべきでした。
ご報告、誠にありがとうございました。
→ 桜の花びら [2006/07/07 20:00:27]
いえいえ。
迅速な対応ありがとうございました。
→ Cana [2006/07/07 23:45:03]
では解決と言うことで、このトピックは閉じさせて頂きますー。
また何かございましたら、お気軽にお問い合わせくださいませ。

削除:

解決済みスイッチをご利用いただくには、トピック主の名前とパスワードが必要です。

sktopic v1.2.4 © CANADOH