[php] Settings behouden bij uitvoeren ander script

Status
Niet open voor verdere reacties.

DeRijckeBjorn

Gebruiker
Lid geworden
20 jan 2012
Berichten
23
Hallo !

Ik heb een probleempje:
in deze code worden een aantal variabelen gedefinieerd
en krijgen ze een waarde:
PHP:
<?php
define ("nl", "\r\n");
define ("CIversion", "0.1"); //don't change
	
// required files

	require_once("inc/GbxRemote.inc.php");
	require_once("inc/xmlparser.inc.php");

//*****
// CI
//*****
	
class Cicon {
	
	
	
	function startup () {
	
		// variables
		
		global $setting;
		global $xml_parser;
		global $dbsetting;
		global $serversetting;
		global $server;
	
		//$this->xml_parser = new Examsly();
		//$this->client = new IXR_Client_Gbx;

	} //function startup


	function loadsetting () {
	
		
		echo "Loading settings...";
			
		$setting = array();
		
		if(file_exists('config1.xml')) {
		
			$xml = @simplexml_load_file('config1.xml');

			//Settings to load from config1.xml
			$setting['serverip'] = $xml->server_settings->serverip;
			$setting['serverport'] = $xml->server_settings->serverport;
			$setting['serverlogin'] = $xml->server_settings->serverlogin;
			$setting['serverpassword'] = $xml->server_settings->serverpassword;
			$setting['nation'] = $xml->server_settings->nation;
			$setting['location'] = $xml->server_settings->location;
			$setting['passdisplay'] = $xml->other->displayserverpass;
			$setting['superpass'] = $xml->server_settings->Superadminpass;
			echo nl, "done!", nl, nl;
			
			echo "Connecting to server:", nl, "ServerIP: ", $setting['serverip'], nl;
			echo "Serverport: ", $setting['serverport'], nl, nl;
			
			
			//*******************
			// Connect to server
			//*******************
			
			
			$Ip=$setting['serverip'];
			$Port=5008; 
			$Login='SuperAdmin'; 
			$Password='Superpass';

				$connect = new IXR_Client_Gbx();

				$connect->InitWithIp($Ip,$Port);
				//Does the connection work?
				if (!$connect->InitWithIp($Host, $Port)) {
					echo "Connection failed! Check IP & Port.", nl;
					exit;
				}
				$connect->query("Authenticate", $Login, $Password);
				if (!$connect->query("Authenticate", $Login, $Password)) {
					echo "Login failed! Check login settings.", nl;
					exit;
				}
			
			$connect->query('SendHideManialinkPage'); //Close all leftover manialinks
		
			$connect->query('SendDisplayManialinkPage', '<?xml version="1.0" encoding="UTF-8" ?> 
			<manialink id="1">
				<quad posn="0 43 0" sizen="30 3" style="Bgs1" halign="center" substyle="NavButton" action="0"/>
				<label text="$fff**Has succesfuly connected to the server! Loading plugins..." halign="center" posn="0 42.7 1" sizen="30 3" />
			</manialink>', 0, False); // Send startup message
			
			
			echo "Connected to server!", nl;
			echo "Loading plugins.", nl;
			$plg=0;
			
			//*****************
			// Loading Plugins
			//*****************
		
			Echo nl, "List of plugins:", nl;
			
				if ($handle = opendir('inc\plugins')) {			
					while (false !== ($entry = readdir($handle))) {
						if ($entry != "." && $entry != ".." && $entry != "localrecords") {
							$plg++;
							$pluginname = $entry;
							if (file_exists('inc/plugins/'.$pluginname)) {
								require('inc/plugins/'.$pluginname);
							}
							else echo"plugin failed to load, or no plugins!";
						}
					}
					
					closedir($handle);
				}
			echo nl,"Plugins loaded! Amount: ",$plg,nl;
				
		} // if
			
		else {
			
			echo 'ERROR: Can\'t read the Config file! Check location/name';
			exit;
				
		} // else
		

		
		
	} // function loadsetting
	
	
	function connect () {
	

	echo nl, "END", nl;
	
	} // function connect
	
} //class Cicon

$testcicon = new Cicon();
$testcicon->startup();
$testcicon->loadsetting();
$testcicon->connect();
?>
Connect is bevoorbeeld : new IXR client (zie lijn 70)
en ook een aantal settings (lijn 46 - 53)

Het probleem is dat in mijn plugin file deze dingen niet meer gedefinieerd zijn
(de plugins worden op lijn 103 - 109 geladen).
hier is een voorbeeld van een plugin:
PHP:
<?php
if(!defined('nl')) {
	define('nl', "\r\n");
	goto start;
	}

else {
	goto start;
	}



// Here the plugin starts

start:

class readrec {

	var $rec;
	var $ctrackid;  //current track id

function reeadrec() {
	
	$ctrackid =1;
	$rec = array();
		
		if(file_exists('inc\plugins\localrecords\1.xml')) {
		
			$xml = @simplexml_load_file('inc\plugins\localrecords\1.xml');
			
			$rec['trackname'] = $xml->trackname;
			$rec['author'] = $xml->author;
			$rec['trackid'] = $xml->trackid;
			
			if($xml->recs->r1) {
			
				$rec['rec1']['time'] = $xml->recs->r1->timee;
				$rec['rec1']['date'] = $xml->recs->r1->datee;
				$rec['rec1']['login'] = $xml->recs->r1->driver->login;
				$rec['rec1']['nickname'] = $xml->recs->r1->driver->nickname;
				
				if($xml->recs->r2) {
			
					$rec['rec2']['time'] = $xml->recs->r2->timee;
					$rec['rec2']['date'] = $xml->recs->r2->datee;
					$rec['rec2']['login'] = $xml->recs->r2->driver->login;
					$rec['rec2']['nickname'] = $xml->recs->r2->driver->nickname;
					
					if($xml->recs->r3) {
			
						$rec['rec3']['time'] = $xml->recs->r3->timee;
						$rec['rec3']['date'] = $xml->recs->r3->datee;
						$rec['rec3']['login'] = $xml->recs->r3->driver->login;
						$rec['rec3']['nickname'] = $xml->recs->r3->driver->nickname;
						
					} //r3
					
					else $connect->query('ChatSendServerMessage', '$z$fff2 records on this track!');
				
				} //r2
				
				else $connect->query('ChatSendServerMessage', '$z$fffOnly 1 record on this track!');
				
			} //r1
			
			else $connect->query('ChatSendServerMessage', '$z$fffNo records on this track!');
						
		} //if records file exists
		
		else echo "No file found";
		
		
	} //function reeadrec
	
} //class readrec

$test = new readrec();	
$test->reeadrec();
?>
Op lijn 58 geeft php nu een error dat $connect nog niet bestaat:
Code:
fatal error: Call to a member function query() on a non-object in Y:\... on line ...
Hoe kan ik er nu voor zorgen dat in al mijn plugins de vooraf gedefinieerde variabelen beschikbaar zijn ?
(ik zou ook variabelen in de plugins willen definieren die dan in een andere plugin gebruikt kunnen worden)

Alvast bedankt!
Groetjes, Bjorn
 
Laatst bewerkt:
Op de manier hoe je script nu is opgebouwd kan dit niet :) je werkt zover ik zie in 2 objecten... dus stel je hebt een fiets en een auto dan heeft de auto toch ook geen trappers? ditzelfde gebeurt nu ook met je database connectie je wilt in de readrec class een variable zoeken uit de Cicon class
 
Dus als ik de variabele voor de class cicon definieer gaat het wel ?

PHP:
//bijvoorbeeld:

$test = 1

class class {
       require(afile.file) // is in deze file dan $test = 1?
}

EDIT: heb het probleem op een andere manier verholpen
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan