0

我找到了一个非常简单的 Inventory PHP 脚本,它非常适合我的小学系统。不管怎样,我相信 PHP 4,现在甚至 XAMPP 都继续前进:) 我不是程序员,但如果它容易的话,我渴望修复它。有人可以指导我找到这个小代码的修复程序。

不幸的是,业主无法联系到......像往常一样。但它是免费的http://inventory-management.org/

我做了什么:

  • 已下载
  • 运行 sql 并将 TYPE 错误修复到 Engine(工作)
  • 将数据库配置为php
  • 首次在浏览器中运行 (Chrome)

得到了这个:

致命错误:第 187 行的 C:\xampp\htdocs\Inventory\lib\site.php 中删除了调用时传递引用

这是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

致命错误:第 187 行的 C:\xampp\htdocs\Inventory\lib\site.php 中删除了调用时传递引用

该特定错误消息(曾经是 187 的位置)是指调用带有 . 前面的参数的函数&。该约定不再是语言的一部分。如果函数本身被定义为通过引用接收参数,它仍然可以工作。您只需从对函数的调用中删除该字符。

请参阅有关此主题的手册。

于 2014-02-17T14:12:48.907 回答