I have found a very simple Inventory PHP script that would fit my primary school system very well. However it is, I believe in PHP 4 and now even XAMPP moved on:) I am not a programmer but eager to fix it if it is easy. Coudl someone give me guide me to find the fix for this little nice code.
Unfortunately the owner is not contactable.. as usual. But it is free http://inventory-management.org/
What I have done:
and got this:
Fatal error: Call-time pass-by-reference has been removed in C:\xampp\htdocs\Inventory\lib\site.php on line 187
here is the code of the 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);
}
}
}
?>
Many thanks in advance if someone has got time to help me.
Fatal error: Call-time pass-by-reference has been removed in C:\xampp\htdocs\Inventory\lib\site.php on line 187
That particular error message (where ever 187 is) refers to calling a function with a parameter preceded by &
. That convention is no longer part of the language. If the function itself is defined to receive argument by reference, it will still work. You simply need to remove that character from the call to the function.