kazpgmの日記

『プログラム自動作成@自動生成』作成の日記

TOOL更新_最新XAMPP1.7.3。PHP5.3.1で動かしてみた。ver0.1(201104300303)

TOOL更新_最新XAMPP1.7.3。PHP5.3.1で動かしてみた。ver0.1(201104300303) <=2011/05/19 vetorからOKが帰ってきました。

うまく動かない箇所があったので、バグ情報(http://kazpgm.ddo.jp/bugInfo.html)に載せた。

17.最新XAMPP(xampp-win32-1.7.3.exe PHP Version 5.3.1)を入れた。2点で不具合が出ましたので修正を行いました。
  まだvectorには載せていません。<=アンドロイド(スマートフォン)対応と一緒に載せようと思います。
  ・・・最新のXAMPPで動かそうと思う人は、お手数ですが、この修正を行ってください。
  ブログ(http://d.hatena.ne.jp/kazpgm/20110512/1305201485)に同じ文章を載せました。

(1)PHP Version 5.3.1になったことにより。以下のエラーが出ます。
  ”Assigning the return value of new by reference is deprecated”

  【htdocs\.xxxphp\log\99999999_log.txt DBエラーログ】
    Date: 9999/99/99 99:99:99
    Errno: 8192
    Errortype: 
    Message: Assigning the return value of new by reference is deprecated
    Filename: C:\xampp\htdocs\.php\pear\DB.php
    Linenum: 470

  【DB.php 470行目】
          @$obj =& new $classname;

  【エラーの意味】
    PHP5では、newすると参照になるのに、それを =& でさらに参照で受け取ろうとして
    エラー(E_DEPRECATED)が出ている。

  【エラーを解決】
    「E_DEPRECATED」エラーを対象外にすることにした。
    
    ■『.kazphp\common.php』の
    92、93行目に追加する。
    <<修正前>>
            1024=>  "User Notice"
            );
                    
    <<修正後>>
            1024=>  "User Notice",
            2048=>  "Strict",
            4096=>  "Recoverable Error",
            8192=>  "Deprecated",
            16384=>  "User Deprecated"
            );

    117行目から修正する。
    <<修正前>>
    // 独自のエラー処理(E_NOTICE以外)を行う
    error_reporting(E_ALL ^ E_NOTICE);
    $old_error_handler = set_error_handler("userErrorHandler", E_ALL ^ E_NOTICE);

    <<修正後>>
    // 独自のエラー処理(E_NOTICE、E_DEPRECATEDE以外)を行う
    error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);
    $old_error_handler = set_error_handler("userErrorHandler",  E_ALL ^ E_NOTICE ^ E_DEPRECATED);

(2)新しいXAMPPをでテストしたらphpプログラム中の『<?』が動かなかった。” HTTP 500エラー”になる。
   以下内容はVectorにUPLOADしません。使用している人は直接修正してください。
  【エラーの意味】
    ■新しいXAMPPでは『php.ini』が『short_open_tag = off』になっている。
    この設定のまま『<?』を使っている。のでエラーになる。

  【エラーを解決】
    ■『バグ情報など』(http://kazpgm.ddo.jp/bugInfo.html)の6.に記述した
     『.htaccess』に以下を追記しました。
     ドキュメントルートに必ず6.に記述した『.htaccess』を置いてください。
    
    php_flag short_open_tag On


2011/05/12 8:00-21:30 これ、かなり、かなりはまった。。。今まで動かなかったことないので。
さらに、このさいだから、DB.phpMDB2.phpにするかと考えて調査したら。なんと、MDB2.phpでも『E_DEPRECATED』エラーになるっていう人のブログを見つけたのでDB.phpのままにした。(DB.phpのままでもphp5.3.1で動くので)
2011/05/18 10:00-10:30 ver0.1(201104300303)をvectorに登録依頼した。OKくるまで待ってください。<=2011/05/19 17:30 vetorからOKが帰ってきました。