Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> ADODB i inna klasa ...
Luke
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 215
Pomógł: 0
Dołączył: 28.10.2003
Skąd: -

Ostrzeżenie: (0%)
-----


[php:1:f3d8be1558]<?php
class usersAuthenticate {

var $login;
var $password;
var $db;

function loginUser() {
if(empty($this->login) || empty($this->password)) {
return(false);
} else {
$row = $this->db->GetRow("SELECT password, date, userName FROM users WHERE login='".$this->login."'");
}

if($row[0] != md5($this->password)) {
return(false);
} else {
$this->db->Execute("UPDATE users SET session='".session_id()."', ip='".$_SERVER['REMOTE_ADDR']."', date=NOW() WHERE login='".$this->login."'");
}

if(!$this->db->Affected_Rows()) {
return(false);
} else {
$_SESSION['date'] = $row[1];
$_SESSION['pelnaNazwa'] = $row[2];
return(true);
}
}

?>[/php:1:f3d8be1558]

Czy odwolanie sie do ADODB (po przez $db) w tym fragmencie klasy to jedyny sposob? Czy jest to optymalne rozwiazanie? Czy mozna zrobic to w inny sposob np. przez "extends"? Jakie są Wasze rozwiązania i doświadczenia?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Seth
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

Ostrzeżenie: (0%)
-----


Cytat
I tutaj zazwyczaj przychodzą z pomocą zmienne globalne ( $this->db = &$GLOBALS[DB_INSTANCE] i po sprawie ). Jest to może nieeleganckie, ale ja jak do tej pory nie wpadłem na lepsze rozwiązanie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Moze tak: $this->db = DB::Instance; (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Co do tematu to IMHO jest ok. Jezeli chcesz miec mozliwosc dostepu do $db w calej klasie to najlepiej to zrobic tak jak Ty czyli pzez $this>db.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.09.2025 - 13:51