投稿日:2003年05月05日 作成鷹の巣

No.9951 写メールBBS(PHP)で、「Warning: Unexpected character in input: '' (ASCII=27) state=2」が出る。



写メールBBS(PHP)で、「Warning: Unexpected character in input: '' (ASCII=27) state=2」が出る。

No.9951 投稿時間:2003年05月05日(Mon) 14:16 投稿者名:たま URL:

こんにちは。早速ですが質問させていただきます。お答えいただけるとうれしいです。

レッツPHPさんの写メールBBS(http://php.s3.to/bbs/bbs7.php)についてなんですが、
メールを送信して更新(pop.php)するとこのような文字が出てきます。
Warning: Unexpected character in input: '' (ASCII=27) state=2 in D:\www\public_html\mail\pop.php on line 58

Warning: Unexpected character in input: '' (ASCII=27) state=2 in D:\www\public_html\mail\pop.php on line 58

Warning: Unexpected character in input: '' (ASCII=27) state=2 in D:\www\public_html\mail\pop.php on line 58

Parse error: parse error, unexpected '%', expecting T_VARIABLE or '$' in D:\www\public_html\mail\pop.php on line 58

これは何が原因なのでしょうか?
環境・設定は
AN HTTPd+PHP 4.3.1+ArGosoft mail server(他のPHPスクリプトはちゃんと動きます。メールも送受信OKです。)
pop.phpの設定はPOP3サーバーは127.0.0.1としてます。ID、PASSはArGosoft mail serverで設定(info@yoroshiku.fam.cx)したモノを使ってます。
メールはinfo@yoroshiku.fam.cxに送信してます。
この環境だと↑のようなメッセージがでます。
しかし、yahooのPOP3サーバーとID、PASS、メアドを使うとちゃんと動いてくれます。
原因わかる方お教え下さい。


ダウンロードしたソースの文字コードを確認してみたらどうでしょうか?

No.9954 投稿時間:2003年05月05日(Mon) 17:22 投稿者名:カイ URL:http://yaguma.com

あまり参考にならないかもしれませんが,
私の場合ソースはEUCで書き,出力htmlはS-JISとなるように,
PHPを設定してあります.(linuxです)
その辺り,Winの場合解りませんが,いちどダウンロードした
ソースの文字コードを確認してみたらどうでしょうか?


早速EUCで保存すると、文字だけのメールなら表示できるようになりました。

No.9955 投稿時間:2003年05月05日(Mon) 18:15 投稿者名:たま URL:

お返事ありがとうございます。
早速EUCで保存してテストしてみた所、文字だけのメールなら表示できるようになりました。
ところが画像を添付すると行方不明になります。
やはりPHPのソースを書き換えた方がいいのでしょうか?
PHPの事はわからないのですが、おそらくココだともいます。
pop.php
/* 文字コードコンバートauto→SJIS */
function convert($str) {
if (function_exists('mb_convert_encoding')) {
return mb_convert_encoding($str, "SJIS", "auto");
} elseif (function_exists('JcodeConvert')) {
return JcodeConvert($str, 0, 2);
}
return true;
}
このautoをEUCに変えるだけでいいのでしょうか?こんな具合に。
/* 文字コードコンバートauto→SJIS */
function convert($str) {
if (function_exists('mb_convert_encoding')) {
return mb_convert_encoding($str, "SJIS", "euc");
} elseif (function_exists('JcodeConvert')) {
return JcodeConvert($str, 0, 2);
}
return true;
}


ソース上でmbstringが使用されています。

No.9968 投稿時間:2003年05月06日(Tue) 09:56 投稿者名:dai URL:http://www.ds-island.com/

はじめまして、たまさん。

> PHPの事はわからないのですが、おそらくココだともいます。
> pop.php
> /* 文字コードコンバートauto→SJIS */
> function convert($str) {
> if (function_exists('mb_convert_encoding')) {
> return mb_convert_encoding($str, "SJIS", "auto");
> } elseif (function_exists('JcodeConvert')) {
> return JcodeConvert($str, 0, 2);
> }
> return true;
> }
> このautoをEUCに変えるだけでいいのでしょうか?こんな具合に。
> /* 文字コードコンバートauto→SJIS */
> function convert($str) {
> if (function_exists('mb_convert_encoding')) {
> return mb_convert_encoding($str, "SJIS", "euc");
> } elseif (function_exists('JcodeConvert')) {
> return JcodeConvert($str, 0, 2);
> }
> return true;
> }

上記ソース上でmbstringが使用されています。
php.ini上の

;extension=php_mbstring.dll



[mbstring]
;mbstring.internal_encoding = EUC-JP
;mbstring.http_input = auto
;mbstring.http_output = SJIS
;mbstring.detect_order = auto
;mbstring.substitute_character = none;

のところの先頭の;を全て削除してリスタートしてみてください。


画像は投稿されるようになりましたが、文字が投稿されません。

No.9970 投稿時間:2003年05月06日(Tue) 10:57 投稿者名:たま URL:

お返事ありがとうございます。
;extension=php_mbstring.dll
ここの「;」を取ると 「php_mbstring.dll」が読み込めないようでした。
[mbstring]の「;」を取ってやってみたら画像は投稿されるようになりました。
が、文字が投稿されません。本文も件名も「1」になってしまいます。
これもわかる方いらっしゃいましたらお教え下さい。


PHPのディレクトリのextensionディレクトリを指定してみてください。

No.9972 投稿時間:2003年05月06日(Tue) 12:54 投稿者名:dai URL:http://www.ds-island.com/

こんにちは

> ;extension=php_mbstring.dll
> ここの「;」を取ると 「php_mbstring.dll」が読み込めないようでした。

php_mbstring.dllが読み込めないのでしたら
php.iniに
extension_dir = ./
とあるところを
extension_dir = c:/php/extensions/
というようにPHPのディレクトリのextensionディレクトリを指定してみてください。


本文はダメでした。

No.9975 投稿時間:2003年05月06日(Tue) 14:05 投稿者名:たま URL:

またまたありがとうございます。
ご指摘の通りにやった所、件名までは表示されました。画像もモチロンつきました。
本文はダメでした。これはあきらめたほうがいいのでしょうか?


|目次|掲示板|過去ログ目次|▲頁先頭|