class extends class - HJÆÆLP

Tags:    php

Hej,

Jeg har lavet en database class og en login class, men jeg kan simpelthen ikke få dem til at arbejde sammen.

Dette er den error jeg får:
Fold kodeboks ind/udKode 


Dette er min database class:
Fold kodeboks ind/udKode 


Dette er min login class:
Fold kodeboks ind/udKode 


Og dette er min loginside:
Fold kodeboks ind/udKode 


Det hele er lidt uslebet da jeg kun har brugt 1 time på det, men jeg kan simpelthen ikke gennemskue hvorfor den ikke kan genkende $db->, når jeg jo har extended min database class med login..


Håber i kan hjælpe :)



Indlæg senest redigeret d. 25.01.2010 04:53 af Bruger #14181
6 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Nu har jeg kun lige skimtet din kode, men for mig at se, se det ud til at du erklære en db-variabel _efter_ du har erklæret din klasse database. Der er altså, som din kode ser ud lige pt., ingen grund, overhovedet, til at login skal extende database. Grunden til at dine funktioner i login ikke kan finde $db er at den $db du har oprettet er erklæret i det globale scope. I PHP skal man bruge global constructed for at hive globale variabler ind i funktion og metoder. Eksempel:
Fold kodeboks ind/udKode 

Du skal altså blot tilføje:
Fold kodeboks ind/udKode 

... til de funktioner som skal benytte databasen.



Mange tak :D



istedet for at extend classen, kunne du bare kalde den vha. new.. fx.:


class login{
private $Database;

public function do_login($Username, $Password)
{
$this->Database = new database();

$this-Database->FunktionIDatabaseklasse();
}
}





Rettelse:
$this->Database->FunktionIDatabaseklasse();



Virker desværre stadig ikke.

I bedes følge denne tråd i stedet:
http://www.udvikleren.dk/Thread.aspx/6/30862/LastPage/

:)



Indlæg senest redigeret d. 26.01.2010 01:17 af Bruger #14181
NVM xD Fixede det selv..
Det var den åndsvage igen med, at isset fucker up..

(string)$Username = isset($_POST['Username']);
(string)$Password = isset($_POST['Password']);



Indlæg senest redigeret d. 27.01.2010 10:13 af Bruger #14181
t