Jump to content

[SOLVED] Variables defined in class, and accessed in another


NArc0t1c

Recommended Posts

Hello again,

 

I have a few classes written and saved as php scrips.

I'm not having trouble sending data between them, but I'm having a problem retrieving a variable form another class.

I'm sure this is possible, to get a variable from outside the class.

 

Here is a part of my one script, it holds the $Settings class.

<?php

if (!defined('Class')){
Echo 'Hacking Attempt..'; 
Exit;
}


Class Settings {

var $MySQLHost;
var $MySQLUserName;
var $MySQLPassword;
var $MySQLDataBase;

Public Function Data(){

	/* MySQL Information */		
	$this->MySQLHost = 'localhost';
	$this->MySQLUserName = 'root';
	$this->MySQLPassword = '';
	$this->MySQLDataBase = 'database';

}
/* Then I would have say a function to get the data, I have it in function's because some needs some more actions to be done to it. */
Function MySQLHost(){
	$Value = $this->MySQLHost;
	Return $Value;
}
/* And so on.. */
}

 

I also have a mysql class, It's a script I got from www.Zend.com in the code galaries.

I have removed most functions I do not need, This is the $MySQL class.

<?php

if (!defined('Class')){
Echo 'Hacking Attempt..'; 
Exit;
}

// constants used by class
define('MYSQL_TYPES_NUMERIC', 'int real ');
define('MYSQL_TYPES_DATE', 'datetime timestamp year date time ');
define('MYSQL_TYPES_STRING', 'string blob ');

class MySQL {

   var $last_error;         // holds the last error. Usually mysql_error()
   var $last_query;         // holds the last query executed.
   
   var $host;               // mySQL host to connect to
   var $user;               // mySQL user name
   var $pw;                 // mySQL password
   var $db;                 // mySQL database to select

   var $db_link;            // current/last database link identifier
   var $auto_slashes;       // the class will add/strip slashes when it can
   
   function db_class() {
   
      // class constructor.  Initializations here.
      
      // Setup your own default values for connecting to the database here. You
      // can also set these values in the connect() function and using
      // the select_database() function.
      
      $this->host = 'localhost';
      $this->user = 'root';
      $this->pw = '';
      $this->db = 'database_name';

      $this->auto_slashes = true;
   }

   function Connect($host='', $user='', $pw='', $db='', $persistant=true) {

      // Opens a connection to MySQL and selects the database.  If any of the
      // function's parameter's are set, we want to update the class variables.  
      // If they are NOT set, then we're giong to use the currently existing
      // class variables.
      // Returns true if successful, false if there is failure.  
      
      if (!empty($host)) $this->host = $host; 
      if (!empty($user)) $this->user = $user; 
      if (!empty($pw)) $this->pw = $pw; 


      // Establish the connection.
      if ($persistant) {
         $this->db_link = mysql_pconnect($this->host, $this->user, $this->pw); }
      else {
         $this->db_link = mysql_connect($this->host, $this->user, $this->pw); }

      // Check for an error establishing a connection
      if (!$this->db_link) {
         $this->last_error = mysql_error();
         return false; 
      } 
  
      // Select the database
      if (!$this->select_db($db)){ return false; }

      return true;  // success
   }

   function select_db($db='') {

      // Selects the database for use.  If the function's $db parameter is 
      // passed to the function then the class variable will be updated.

      if (!empty($db)){ $this->db = $db; }
      
      if (!mysql_select_db($this->db)) {
         $this->last_error = mysql_error();
         return false;
      }

      return true;
   }

}  

?>

 

In yet another class I would call the Connect Function with information from the $Settings class.

 

An example,

<?php
	$MySQL->Connect(
	/*   localhost  */ $Settings->MySQLHost(), 
	/*      root    */ $Settings->MySQLUsername(), 
	/*      none    */ $Settings->MySQLPassword());
	$MySQL->select_db(
	/*     narc0de  */  $Settings->MySQLDataBase());
?>

 

I have in the one script that I include for main pages:

<?php
    define('Class', time());
    
require("Classes/Settings.Class.php");
require("Classes/MySQL.Class.php");
      /* Assuming this is the previous script. */
require("Classes/Header.Class.php");

$Settings = new Settings();	
$MySQL = new MySQL();
$Header = new Header();
?>

 

Then I would make a page with a secure mysql connection by simply calling the classes.

<?php
include("Classes/Include.Class.php");
$Header->Start();
echo 'Hello World';
$Header->End();
?>

 

It's giving me the standard mysql error for no connection data, probably because the variables is empty.

What Am I doing wrong here, Missing something?

 

Edit: Made post little shorter, and less code.

 

Thanks

Ferdi

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.