PHPエラーでリロードすると元通りになる?原因と解決方法を教えてください

このQ&Aのポイント
  • 自作のPHPで度々エラーに悩まされています。特に「Call to undefined function」や「syntax error, unexpected '}'」などのエラーが表示されます。
  • エラーが出た後に、リロードすると問題なく表示されますが、気になります。インターネットでエラーの意味を調べても間違いは見つかりません。
  • また、稀に文字化けのような現象も起きますが、リロードをすると戻ります。サーバーを変えてからこの現象が増えた気がします。共有サーバーの影響も考えられます。同じ経験をお持ちの方、原因や解決方法を教えてください。
回答を見る
  • ベストアンサー

PHP エラーだけどリロードすると元通りになる件

質問させてください。 PHPを自作で作成して設置しているのですが、度々下記のエラーに悩まされております。 Call to undefined function ファンクション名 とか syntax error, unexpected '}' など。それぞれこの後にファイル名と行数が表示される。 このエラーが出た後に、一度もしくは数回リロード(更新)すると問題なく表示されるのですが、どうも気になります。 エラーの意味はインターネットで見て分かったのですが、 示している行を見ても、どこも間違っているところはないようです。 実際、数回ブラウザのリロードを押すと普通に表示されるようになります。 またこれと関係あるのか分かりませんが、稀に文字化けのように、 「..../TD>」な感じで、いち部分がおかしく表示されることがあり、 これもリロードをすると戻ります。 文字コードもファイルのエンコードもEUCを使用しているのですが。。。 先月サーバーを変えて、PHPのバージョンが変わり、 PHP 5.* (忘れました・・・)からPHP 5.2.6になってから、 このような現象が増えたような気がしますが、定かではありません。 また以前のサーバーは専用サーバーを使用していたのですが、 今は共有サーバーでスペックは以前よりは良くないのですが、 その辺りも関係するのでしょうか? 同じような経験をお持ちの方いらっしゃいませんか? 原因・解決方法があれば教えてください。

  • PHP
  • 回答数3
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

><HEAD>内に・・・ ちがいます。 ソースコードをUTF-8にするということです。 エディタでコード書いていますか?まっとうなエディタなら エディタの保存オプションに文字コードに何をつかうか選ぶ項目が あるはずです。 またソースをUTF-8で統一したら、さらに明示的に mb_internal_encoding("UTF-8"); を記述してください。 なおPHPの出力ヘッダにUTF-8を指定する場合は、保存形式を UTF-8Nにする必要があります。 header("Content-Type: text/html; charset=UTF-8");

good4you4y
質問者

お礼

ありがとうございます。 理解しました。いままで行っていた方法は、古いのですね。これからは、作成する際は、これを頭に入れて行います。 本当にありがとうございます。

その他の回答 (2)

  • memphis
  • ベストアンサー率40% (975/2395)
回答No.2

PHPの中に書いてあるHTMLに原因があります。 正しい文字コードを明記していますか?

good4you4y
質問者

補足

文字コードは、以下のように明記してあります。 <META http-equiv="Content-Type" content="text/html; charset=euc-jp"> HTMLのタグの記述まちがいとかでしょうか?

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

一番考えられるのは日本語の文字コードがまちがっているとか・・・ 5.2系であれば、そろそろUTF8で統一していみては?

good4you4y
質問者

補足

<HEAD>内に、このように明記しています。 <META http-equiv="Content-Type" content="text/html; charset=euc-jp"> UTF-8にするのは、このeuc-jpの部分をJTF-8に変えるということでしょうか?それにするとエラーはなくなりますかね?その他のメリットはありますか?

関連するQ&A

  • たまにエラーになる現象

    特定のWEBサーバでPHPがたまにエラーになります。 よく見かけるPHPのエラーが表示されるのです。 リロードすれば直りますし、一回のリロードではまた同じエラーが表示されて、2度目のリロードで直ることもよくあります。 GETやPOSTに関係ないPHPファイルでもそうです。 エラーはPHPのファイルにより様々です。 例えば、katatumuriという文字を使った行でエラーが起きた時、katttumuriのように文字が変化してエラー表示されたこともありました。 その一例から、このエラーの原因は、たまに内部処理でデータが一部壊れて解釈されることがあって、その時にエラーになるようなんですが、同じようなことになった方はいませんか?

    • ベストアンサー
    • PHP
  • エラーがついて

    プログラム初心者です 以前、教えていただいたコードをサーバーで使ってみたらエラーがでました xamppでは動いていたのでたぶんphpのバージョンによるエラーかとおもいます レンタルサーバーはphp5.2.5です 5.5.2に上がるようなことアナウンスされていますがいつになるかわかません 分かる方おねがします(_ _ http://okwave.jp/qa/q8503227.html でたエラーはこれです Parse error: syntax error, unexpected T_FUNCTION in hoge.php on line 59 ここらへんぽいのですが、自分には問題ないようにみえます return preg_replace_callback( $regex, function ($m) use (&$i) { よろしくお願いします

    • ベストアンサー
    • PHP
  • PHPのエラーについて質問です

    PHPのエラーについて質問です XAMPPをインストールして、 http://localhost/top.php のように、フォルダの中身のファイル名を指定すると、 以前までは、ちゃんと表示されていたものが、 Parse error: syntax error, unexpected $end, expecting T_VARIABLE or T_END_HEREDOC or T_DOLLAR_OPEN_CURLY_BRACES or T_CURLY_OPEN in C:\xampp\htdocs\top.php on line 68 のようにエラーが表示されるようになりました。 解決策を教えてもらえないでしょうか?

    • ベストアンサー
    • PHP
  • phpファイルを開けない(ブラウザにエラー表示)

    こんにちは! PHPを勉強中なのですが、あるphpファイルをブラウザで開こうとすると 以下のように表示が出てしまい、ファイルが開けません。 ------------エラー文------------------------------------------- Parse error: syntax error, unexpected '<' in C:\xampp\htdocs\hello.php on line 128 --------------------------------------------------------------- これは何が原因のエラーなのでしょうか? 有識者の方いらっしゃいましたらご指導宜しくお願い致します。

    • ベストアンサー
    • PHP
  • コンパイルエラー???

    どなたか分かる方いらっしゃいましたら ご助言宜しくお願いします。 PHPソース自体には何も問題は無いのですが、たまにParse errorが出てしまいます。 「Parse error: syntax error, unexpected T_STRING, expecting ')' 」 エラーが出ても、何度かリロードを繰り返すと正しく表示されます。 なぜこのような現象がおきてしまうのか、調べても分からない状態です。 どなたか解決策をご存知の方宜しくお願いします。 動作環境 CentOS3.8 apache2.2.4 php4.4.8 Mysql5.0.27 文字コードはeuc-jpで統一

    • 締切済み
    • PHP
  • PHPのエラー「Unexpected character ...」「syntax error, unexpected ...」について

    PHP Warning: Unexpected character in input: ''' (ASCII=39) state=1 in /home/***/***.php on line 25 PHP Parse error: syntax error, unexpected '<' in /home/***/***.php on line 26 という2行のエラーが表示されました。 まったく明快な答えは探せませんでした。 もしも少しでも手がかりになるような情報がありましたら教えて下さい。 お願いします。

    • 締切済み
    • PHP
  • PHPのエラーについて

    このファイルを実行した際に下記のようなエラーが出力されます。 Parse error: syntax error, unexpected '$yamada' (T_VARIABLE), expecting ',' or ';' in C:\xampp\htdocs\study.localhost\sample.php on line 30 何が原因でこのようなエラーが発生しているのでしょうか? 初心者で的外れな質問かもしれませんがよろしくお願います。 <?php class Employee { public $name; private $state = '働いている'; public function getState() { return $this->state; } public function setState($state) { $this->state = $state; } public function work() { echo '書類を整理しています'; } } ?> <?php $yamada = new Employee(); $yamada->job = 'プログラマ'; $yamada->name = '山田'; $yamada->setState('休憩している'); 30行目→echo $yamada->name,'さんは', $yamada->getState();

  • PHPスクリプトの最終部分でエラーが

    427. fclose($handle); // ファイルハンドルをクローズ 428. ftpclose($ftp); // ftpサーバーへの接続をクローズ 429.//header("Location:tanks.html"); 430.} // エラーフラグがオフの場合のカッコ 431.?> 432.</body> 433.</html> 上記のようなスクリプトの最終部分で、 PHPシンタックスチェッカーで、 上記の434行目でエラーが出ます。 エラー内容は「Parse error: syntax error, unexpected end of file in CODE on line 434 Errors parsing CODE 」と、表示されます。 どこがいけないのか教えていただきたいのですが。

    • ベストアンサー
    • PHP
  • php 何故、エラー???

    いつもお世話になりありがとうございます。 標記の件。 $subject = "お仕事に関するお問い合わせ"; がエラーになってしまいます。 PHP Syntax Check: Parse error: syntax error, unexpected variable "$subject" in your code on line 2 全体のコードは下記です。 <? php $subject = "お仕事に関するお問い合わせ"; $body = "お見積の件で、連絡をしました。"; ?> <!doctype html > <html > <head > <meta charset =" utf-8"> <title>お問い合わせ</title> </head> <body> <h1><? php echo $subject ?></h1> <p><? php echo $body ?></p> </body > </html > どうして2行目がエラーになるのでしょうか? どうか教えてください。 ご回答のほど宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • PHPについて

    xamppをインストールしてPHPの学習をしております。 そこで、 PHPについて以下2つの質問があります。 質問1 関数の引数について <?php phpinfo(); ?> は、phpの情報を表示するスクリプトですが、関数の()の中に 引数を書くときは、引数を""で囲む場合と囲まない場合はあるのでしょうか? 質問2 エラーについて ファイル名:client.php <?php print "あなたのIP:"; print getenv("REMOT_ADDR"); print "<BR>" print "あなたのホスト名"; print gethostbyaddr(getenv("REMOTE_ADDR")); ?> 上記スクリプトを作成して、http://localhost/client.phpとブラウザ で実行したところ、 Parse error: syntax error, unexpected T_PRINT in C:\xampp\htdocs\client.php on line 5 というメッセージが表示され、5行目【print "あなたのホスト名";】を何回も見ていますが、 何も間違っていない気がします。何が間違っているのでしょうか? どなたかご教授下さい。

    • ベストアンサー
    • PHP

専門家に質問してみよう