Frage zu der Globalität einer Classe
Posted: 2006-12-16 17:19
Hallo
Nachdem ich mich nun mal mit PHP classen abgegeben habe von dem ich mich eigentlich immer gedruckt habe, habe ich folgendes problem zu dem ihr mir vielleicht netterweise dazu was erklähren könntet.
Beispiel:
jetzt habe ich in einer anderen Datei auch funktionen die nicht zur classe gehören und inizialisiere die classe auch.
jetzt wenn ich aber mein Script aufrufe bekomme ich einen Fehler:
Hier habe ich wohl einen Denkfehler da ich dachte das classen (hab ich noch so im kopf ) immer Überglobal wären oder liege ich da flasch.
Muss ich jetzt die inizialisierung der classen in jeder funktion machen in der ich sie verwenden will.?
Könnt ihr mir da mal bitte meiner falschen Denkensweise auf die Sprünge helfen.
Vielen Dank schonmal
Gruss
Gerhard
Nachdem ich mich nun mal mit PHP classen abgegeben habe von dem ich mich eigentlich immer gedruckt habe, habe ich folgendes problem zu dem ihr mir vielleicht netterweise dazu was erklähren könntet.
Beispiel:
Code: Select all
class database{
var $host;
var $database;
var $user;
var $password;
var $port;
function database($host,.......){
}
u.s.w
}Code: Select all
$db=new database("mysql",$sql_host,$sql_db,$sql_user,$sql_pass);
function ssetcokieadmin($adminname,$adminpass) {
global $db_admin;
$adminname = htmlspecialchars($adminname);
$adminpass = htmlspecialchars($adminpass);
$db->query("SELECT * FROM $db_admin WHERE BINARY admin='$adminname'");
$setinfo = $db->get_row();
$adminn = $setinfo['admin'];
$adminp = $setinfo['pw'];
$adminr = $setinfo['rang'];
$adminpass = md5($adminpass);
if($adminn == "$adminname" && $adminp == "$adminpass"){
$info = base64_encode("$adminname:$adminpass:$adminr");
setcookie("webinterface","$info",time()+60000);
}
header("Location: ".https_pfad."/login.php");
}Das sagt mir, dass er das opject query innerhalb einer function nicht kennt, wenn ich meine classe ausserhalb einer function aufrufe funktioniert alles wunderbar.Fatal error: Call to a member function query() on a non-object in /inc/function.php on line 425
Hier habe ich wohl einen Denkfehler da ich dachte das classen (hab ich noch so im kopf ) immer Überglobal wären oder liege ich da flasch.
Muss ich jetzt die inizialisierung der classen in jeder funktion machen in der ich sie verwenden will.?
Könnt ihr mir da mal bitte meiner falschen Denkensweise auf die Sprünge helfen.
Vielen Dank schonmal
Gruss
Gerhard