Witam, dręczy mnie pewien problem...nie potrafię logicznie wpaść na to, jak powinienem połączyć smarty z logowaniem w klasach. Napisałem na razie orientacyjnie proste sprawdzanie użytkownika (logowanie) Mam wszystko w osobnych plikach:
Klasa użytkownika znajduje się w
classes/class.user.php<?
class User {
var $Login;
var $Haslo;
var $Zalogowany;
var $DataTeraz;
var $PodajLogin;
var $PoprawDane;
public function __construct() {
$this->Login=$_POST['login'];
$this->Haslo=md5(md5($_POST['password'])); $this->Zalogowany=$_SESSION['login'];
$this->DataTeraz=date("d.m.Y, H:i:s"); $this->PodajLogin="<b>Wystąpił błąd</b>: podaj login oraz hasło.";
$this->PoprawDane="<b>Wystąpił błąd</b>: podane dane nie są poprawne.";
}
public function Autoryzacja($user, $haslo){
if($dane['Login'] == $this->Login && $dane['Haslo'] == $this->Haslo){
/* ustawia zmienną sesyjną*/ $this->Zalogowany="".$dane['users_id']."";
/* ustawia ciasteczko */ setcookie ("log" , "log", time()+3600, "/","", 0
); /* OSTATNIA AKTYWNOŚĆ */ Wykonaj("UPDATE `users` SET `lastactive` = '".$this->DataTeraz."' WHERE `users_id` = '".$this->Zalogowany."'");
/* przenosi na stronę główną */ header( "Location: index.php");
} else {
$this->PoprawDane;);
}
} else {
}
}
}
?>
Plik główny:
<?
/* DOŁĄCZANIE WSZYSTKICH NIEZBĘDNYCH PLIKÓW */
require("var/inc.default.php");
require("var/config.php");
/* PRZYŁĄCZANIE KLAS */
require_once("classes/class.user.php");
Polacz("".$db_host."", "".$db_user."", "".$db_password."", "".$db."");
...
/* ---------------------------------------------------*/
/* sekcja dla smarty */
$styl="default"; // nazwa katalogu danego stylu strony
require('smarty/Smarty.class.php');
$smarty = new Smarty;
// przypisywanie zmiennych dla styli
$smarty -> assign('tytul', 'Nasz strona testowa');
$smarty -> assign('tekst', 'Jakis tam tekst');
// WYŚWIETLANIE STRONY Z WYKORZYSTANIEM SZABLONÓW
$smarty -> display(''.$styl.'/profil.tpl'); // *** TABELA PROFILU UŻYTKONIKA ***
$smarty -> display(''.$styl.'/notifications.tpl'); // *** TABELA POWIADOMIEŃ ***
$smarty -> display(''.$styl.'/body.tpl'); // *** WYŚWIETLAJĄCA SIĘ ZAWARTOŚĆ STRONY ***
$smarty -> display(''.$styl.'/footer.tpl'); // *** STOPKA ***
/* */
/* ---------------------------------------------------*/
?>
Jak zaimplementować do smarty obiekt logowania?