Warning: Unexpected character in input: ' in /以下ファイルのパス on line 1633
というエラーがたまに表示されて困っています。
エラーが発生した際の状況は下記の通りです
・携帯電話で送信をした場合(PCでは発生せず。また、絵文字は入力していません。)
・10回に1回くらいの割合(残りの9回は問題なく送信されます)
・まったく同じ入力内容で繰り返し送ってみても、上記割合でエラーが出たり出なかったりします。(絵文字は入力していません。)
・エラーの発生する行番号が毎回変わる。(したがって1633行目が悪いわけではない?一応記載しておくと$s = substr($str, $i, 2);という行です。)
・エラーの内容についても毎回変わってしまっています。(他のエラー文は記録できませんでした)
・使用しているサーバは「Apache/1.3.33 (Unix) PHP/4.3.9」です。
・単純な;抜けなど文法エラーについては全てチェック済みと考えてください。
上記のような状況で思い当たる原因などありますでしょうか。
以上、よろしくお願いします。
携帯電話からの入力だと、Shift-JIS ですよね?
UTF-8にしないと正しく動作しない関数を利用していませんか(mbstring 系)
内部コードとの不一致や、マルチバイト文字が使えない関数を使用しているとか。
ただ、これでは同一内容の送信の処理を失敗する説明にはなっていませんが、エラーの個所が不定の時はそうだった経験が何度かあります。
さらに、関数が失敗している時にチャンと対処していなくて似たような症状を示したような記憶もあります。
携帯電話からの入力だと、Shift-JIS ですよね?
UTF-8にしないと正しく動作しない関数を利用していませんか(mbstring 系)
内部コードとの不一致や、マルチバイト文字が使えない関数を使用しているとか。
ただ、これでは同一内容の送信の処理を失敗する説明にはなっていませんが、エラーの個所が不定の時はそうだった経験が何度かあります。
さらに、関数が失敗している時にチャンと対処していなくて似たような症状を示したような記憶もあります。
ご回答ありがとうございました。
>UTF-8にしないと正しく動作しない関数を利用していませんか(mbstring 系)
上記は考えていませんでした、チェックしてみます!
参考になりました、ありがとうございます
文字コードがShift-JISの場合「表」のような文字は文字化けの原因となります。
Shift-JISは2バイトコードなので2バイト目が「\」と解釈され、次の文字(おそらく改行)がエスケープされるためおきていると思われます
ご回答ありがとうございました。
>字コードがShift-JISの場合「表」のような文字は文字化けの原因となります。
この現象であれば、文字化けが発生する可能性はありますが、今回のエラーの原因とはならないのではないでしょうか。
それに、質問には記載しておりませんでしたが、何もフォームに入力せずに送ったとしても発生する症状でしたので・・・
ありがとうございました
ご回答ありがとうございました。
>UTF-8にしないと正しく動作しない関数を利用していませんか(mbstring 系)
上記は考えていませんでした、チェックしてみます!
参考になりました、ありがとうございます