Hi Leute
Ich habe 2 Klassen die ich gerne etwas verschachtelt verwenden möchte. Zum einen eine Klasse db mit der ich die Verbindung zur Datenbank herstelle, einen query ausführe und diesen anschließend mit den Methoden fetcharray auswerte.
Weiters habe ich eine Klasse access die mir die Zugriffssteuerung auf die Seite verwaltet. In dieser Klasse muss ich ebenfalls Datenbankabfragen erledigen (vorzugsweise mit der db Klasse) nur wie stelle ich das an?
Die db Klasse funktioniert einwandfrei! ich kann ein neues Objekt erstellen mit new db usw... Nur wie kann ich das KORREKT machen dass die access Klasse Datenbankabfragen mit der db Klasse macht?
Hier mal meine Access Klasse.
Auf meiner Seite wo ich diese Klassen verwende sieht das Erstellen dieser Objekte folgendermaßen aus:
Diese beiden Fehler bekomme ich ausgespuckt:
Weiß jemand wie man die Klassen sozusagen miteinander verbindet?
Danke für die Hilfe
Gruß matz
Ich habe 2 Klassen die ich gerne etwas verschachtelt verwenden möchte. Zum einen eine Klasse db mit der ich die Verbindung zur Datenbank herstelle, einen query ausführe und diesen anschließend mit den Methoden fetcharray auswerte.
Weiters habe ich eine Klasse access die mir die Zugriffssteuerung auf die Seite verwaltet. In dieser Klasse muss ich ebenfalls Datenbankabfragen erledigen (vorzugsweise mit der db Klasse) nur wie stelle ich das an?
Die db Klasse funktioniert einwandfrei! ich kann ein neues Objekt erstellen mit new db usw... Nur wie kann ich das KORREKT machen dass die access Klasse Datenbankabfragen mit der db Klasse macht?
Hier mal meine Access Klasse.
PHP:
class access
{
/*
* DB spezifische Vars
*/
protected $dbh; /* dbh sollte die Verbindungskennung sein */
protected $acl; /* hier stehen dann die Zugriffsberechtigungen drinnen */
protected $db_cms_userpageaccess_tablename; /* der Tabellenname der Zugriffsdaten */
public function __construct( $dbh, $db_acl_tablename )
{
$this->dbh = $dbh; /* Zuerst wird der vorher erstellt db handle übergeben und umgeladen */
$this->db_cms_userpageaccess_tablename = $db_acl_tablename;
}
public function getzid( $userid, $pageid )
{
/* und hier möchte ich diesen verwenden, nur funktioniert dies nicht */
$RESULT_checkpageaccess = $dbh->execute("SELECT * FROM `" . $this->db_cms_userpageaccess_tablename . "' WHERE `userid`='" . $userid . "` AND `pageid`='" . $pageid . "';");
$ARRAY_checkpageaccess = $RESULT_checkpageaccess->fetcharray();
$this->acl = $ARRAY_checkpageaccess;
return( $ARRAY_checkpageaccess['zid'] );
}
public function getuserid()
{
return( $acl['userid'] );
}
public function getpageurl()
{
return( "./modules/" . $acl['page_modulname'] . "/" . getpageaccess() . "/" . $acl['page_filename'] );
}
}
Auf meiner Seite wo ich diese Klassen verwende sieht das Erstellen dieser Objekte folgendermaßen aus:
PHP:
$dbcon = new db( $site_db_username, $site_db_password, $site_db_host, $site_db_database );
$access = new access( $dbcon, $db_cms_userpageaccess_tablename );
Diese beiden Fehler bekomme ich ausgespuckt:
Code:
Notice: Undefined variable: dbh in F:\eclipse-ws\seesle_at\kernel\classes\security.class.php on line 31
Fatal error: Call to a member function execute() on a non-object in F:\eclipse-ws\seesle_at\kernel\classes\security.class.php on line 31
Weiß jemand wie man die Klassen sozusagen miteinander verbindet?
Danke für die Hilfe
Gruß matz