Программное обеспечение для управления запасами - php MySQL

Я нашел очень простой PHP-скрипт Inventory, который очень хорошо подходит для моей системы начальной школы. Как бы то ни было, я верю в PHP 4, и теперь даже XAMPP продвинулся вперед :) Я не программист, но хочу исправить это, если это легко. Может кто-нибудь дать мне руководство, чтобы найти исправление для этого маленького красивого кода.

К сожалению, с владельцем нельзя связаться.. как обычно. Но это бесплатно http://inventory-management.org/.

Что я сделал:

  • Скачано
  • запустить sql и исправить ошибки TYPE в Engine (работало)
  • настроил БД на php
  • запустить первый раз в браузере (Chrome)

и получил это:

Неустранимая ошибка: передача по ссылке во время вызова была удалена в C:\xampp\htdocs\Inventory\lib\site.php в строке 187.

вот код 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);
        }       
    }
}


?>

Большое спасибо заранее, если у кого-то есть время, чтобы помочь мне.


person user3319377    schedule 17.02.2014    source источник


Ответы (1)


Неустранимая ошибка: передача по ссылке во время вызова была удалена в C:\xampp\htdocs\Inventory\lib\site.php в строке 187.

Это конкретное сообщение об ошибке (где бы ни было 187) относится к вызову функции с параметром, которому предшествует &. Это соглашение больше не является частью языка. Если сама функция определена для получения аргумента по ссылке, она все равно будет работать. Вам просто нужно удалить этот символ из вызова функции.

См. руководство по этой теме.

person Seth Battin    schedule 17.02.2014
comment
Привет Большое спасибо это было. Я нашел еще 2 такие же проблемы и исправил. Действительно ценю это. - person user3319377; 17.02.2014