class Uzytkownik
{
function __set($parametr, $wartosc)
{
switch ($parametr)
{
case 'id':
if(!sprawdzCzyliczbaNaturalna($wartosc)) throw new Exception();
break;
case 'mail':
if(!(filtrMail($wartosc))) return false;
break;
case 'haslo':
if( !( strlen($wartosc) >= 8
&& strlen($wartosc) <= 32
) )return false; $wartosc = $this->szyfrujHaslo($wartosc);
break;
default:
throw new Exception();
}
$this->dane[$parametr] = $wartosc;
}
function zapisz()
{
if(isset($this->dane[id
])) {
wyslijZapytanie("UPDATE users SET ".pobierzListeDanych($this->dane)." WHERE id=$this->dane[id]");
}
else
{
$this->dane[data
] = date("m.d.y"); wyslijZapytanie
("INSERT INTO users (id,mail,haslo,data) VALUES ('','0','".$this->dane[mail]."','".$this->dane[haslo
]."','".$this->dane[data
]."')"); }
}
function usun()
{
wyslijZapytanie("DELETE FROM users WHERE id=$this->dane[id])");
}
function wczytaj()
{
$wynik = wyslijZapytanieSelect("SELECT id,mail,haslo,data FROM users WHERE ".pobierzListeDanych($this->dane));
else
$wynik = wyslijZapytanieSelect("SELECT id,mail,haslo,data FROM users");
return $wynik;
}
function szyfrujHaslo($haslo)
{
die('Dostalem haslo z bledna iloscia znakow!');
$haslo = sha1( $haslo.'yk[d' );
return $haslo;
}
}
{
$Mail = filtrZmienna($_POST['Mail']);
$Haslo = filtrZmienna($_POST['Haslo']);
$uzytkownikSprawdz = new Uzytkownik;
if( $uzytkownikSprawdz->mail=$Mail )
{
if( count( $uzytkownikSprawdz->wczytaj() ) !== 0
) $bledy[]='Mail';
}
else
$bledy[]='Mail';
{
$uzytkownikNowy = new Uzytkownik;
if( ($uzytkownikNowy->mail = $Mail) && ($uzytkownikNowy->haslo=$Haslo) )
$uzytkownikNowy->zapisz();
else $wyswietlFormularz = true;
}
else
$wyswietlFormularz = true;
}
else
$wyswietlFormularz = true;
Witam,
powyzej zamiscilem kod ktory pisalem sobie na wlasne potrzeby do tworzenia,usuwania,edytkowania uzytkownikow w bazie danych. Nie jestem bardzo doswiadczony w rozwiazaniach obiektowych.
Kombinowałem sobie w taki sposob zeby w klasie Uzytkownik poprzez funckcje __set sprawdzac wszystkie wprowadzane dane i ona przy wprowadzaniu jakiejs danej zwracalaby true lub false w zaleznosci od tego czy dana byla poprawna:
if( !($uzytkownikNowy->mail = $Mail) echo "Wprowadzono niepoprawny adres e-mail";
Niestety nie działa

Myslalem ze moge tak zrobic i z tego "($uzytkownikNowy->mail = $Mail)" wyjdzie false... niestety mimo polecenia "return false;" w metodzie __set nie zwraca ona false.
Da sie jakos to zrobic zeby ($uzytkownikNowy->mail = $Mail) zwrocilo false lub true , jezeli wiecie o co mi chodzi?? Czy musze sobie zrobic inna metode odpowiedzialna za wprowadzanie wartosci do klasy?
Ten post edytował marekc12 19.10.2009, 18:13:59