0

私の小学校のシステムに非常によく合う、非常に単純な Inventory PHP スクリプトを見つけました。しかし、私は PHP 4 を信じており、今では XAMPP でさえ動き出しました :) 私はプログラマーではありませんが、簡単に修正できるなら修正したいと思っています。この小さな素敵なコードの修正を見つけるために誰かが私を案内してくれるかもしれません。

残念ながら、所有者とは連絡が取れません..いつものように。でも無料ですhttp://inventory-management.org/

私がやった事:

  • ダウンロード済み
  • SQLを実行し、TYPEエラーをエンジンに修正しました(動作しました)
  • データベースをphpに構成しました
  • ブラウザ (Chrome) で初めて実行する

そしてこれを得ました:

致命的なエラー: C:\xampp\htdocs\Inventory\lib\site.php の 187 行目の Call-time pass-by-reference が削除されました

site.php のコードは次のとおりです。

    <?php
$sess_save_path = "./tmp/";
function open ($save_path, $session_name) { 
 global $sess_save_path, $sess_session_name; 

 $sess_save_path = $save_path; 
 $sess_session_name = $session_name; 
 return(true); 
} 

function close() { 
 return(true); 
} 

function read ($id) { 
 global $sess_save_path, $sess_session_name; 

 $sess_file = "$sess_save_path/sess_$id"; 
 if ($fp = @fopen($sess_file, "r")) { 
   $sess_data = @fread($fp, @filesize($sess_file)); 
   return($sess_data); 
 } else { 
   return(""); // Must return "" here. 
 } 

} 

function write ($id, $sess_data) { 
 global $sess_save_path, $sess_session_name; 

 $sess_file = "$sess_save_path/sess_$id"; 
 if ($fp = @fopen($sess_file, "w")) { 
   return(fwrite($fp, $sess_data)); 
 } else { 
   return(false); 
 } 

} 

function destroy ($id) { 
 global $sess_save_path, $sess_session_name; 

 $sess_file = "$sess_save_path/sess_$id"; 
 return(@unlink($sess_file)); 
} 

/********************************************* 
* WARNING - You will need to implement some * 
* sort of garbage collection routine here.  * 
*********************************************/ 
function gc ($maxlifetime) { 
 return true; 
} 

session_set_save_handler ("open", "close", "read", "write", "destroy", "gc"); 

session_start(); 



session_start();

//error_reporting(0);

require_once _LIBPATH . "common.php";
require_once _LIBPATH . "xml.php";
require_once _LIBPATH . "template.php";
require_once _LIBPATH . "config.php";
require_once _LIBPATH . "html.php";
require_once _LIBPATH . "database.php";
require_once _LIBPATH . "vars.php";
require_once _LIBPATH . "menu.php";
require_once _LIBPATH . "library.php";
require_once _LIBPATH . "sqladmin.php";
require_once _LIBPATH . "forms.php";
require_once _LIBPATH . "mail.php";

class CBase {
    /**
    * description
    *
    * @var type
    *
    * @access type
    */
    var $html;

}
class CSite {

    /**
    * description
    *
    * @var type
    *
    * @access type
    */
    var $admin;
    /**
    * description
    *
    * @var type
    *
    * @access type
    */
    var $html;


    /**
    * description
    *
    * @param
    *
    * @return
    *
    * @access
    */
    function CSite($xml , $admin = false) {
        global $_CONF , $base;

        $this->admin = $admin;

        //loading the config
        $tmp_config = new CConfig($xml);

        $_CONF = $tmp_config->vars["config"];

        //loading the templates
        if ($this->admin) {
            if (is_array($_CONF["templates"]["admin"])) {
                foreach ($_CONF["templates"]["admin"] as $key => $val) {
                    if ($key != "path")
                        $this->templates[$key] = new CTemplate($_CONF["templates"]["admin"]["path"] . $_CONF["templates"]["admin"][$key]);
                }           
            }           
        } else {

            if (is_array($_CONF["templates"])) {
                foreach ($_CONF["templates"] as $key => $val) {
                    if (($key != "path" ) && ($key != "admin"))
                        $this->templates[$key] = new CTemplate($_CONF["templates"]["path"] . $_CONF["templates"][$key]);
                }               
            }
        }


        $base = new CBase();
        $base->html = new CHtml();
        $this->html = &$base->html;

        //make a connection to db
        if (is_array($_CONF["database"])) {
            $this->db = new CDatabase($_CONF["database"]);

            //vars only if needed
            if ($_CONF["tables"]["vars"]) {
                $this->vars = new CVars($this->db , $_CONF["tables"]["vars"]);
                $base->vars = &$this->vars;
            }

            $this->tables = &$_CONF["tables"];
        }               

    }

    function TableFiller($item) {
        if (file_exists("pb_tf.php")) {
            include("pb_tf.php");
        }
    }

    /**
    * description
    *
    * @param
    *
    * @return
    *
    * @access
    */
    function Run() {
        global $_TSM;

        if (file_exists("pb_events.php")) {
            include("pb_events.php");

            **$_TSM["PB_EVENTS"] = @DoEvents(&$this);**
        }

        if (is_object($this->templates["layout"])) {
            echo $this->templates["layout"]->Replace($_TSM);
        }       
    }
}


?>

誰かが私を助ける時間があれば、事前に感謝します。

4

1 に答える 1

0

致命的なエラー: C:\xampp\htdocs\Inventory\lib\site.php の 187 行目の Call-time pass-by-reference が削除されました

その特定のエラー メッセージ (187 がある場所) は、前に&. その慣習はもはや言語の一部ではありません。関数自体が参照によって引数を受け取るように定義されている場合でも、機能します。関数の呼び出しからその文字を削除するだけです。

このトピックに関するマニュアルを参照してください。

于 2014-02-17T14:12:48.907 に答える