jako, że zaczynam dopiero zabawe z obiektowym php prosze o ocene skrypciku na ponize, jest to "uniwersalny" skrypcik logowania uzytkownika do systemu... zalozenie bylo takie abym mogl to prosto przystosowac do innych projetkow bez za duzego grzebania w kodzie, dla tego podajemy nazwe tabeli z uzytkownikami, i nazwe pol z loginem i haslem
co myslicie nadaje sie?
a pod wzgledem obiektowym?
<?php
class auth{
var $db = NULL;
var $table_name;
var $login_name;
var $pass_name;
var $md5;
var $login;
var $pass;
var $dbpass;
public function __construct($db, $table_name, $login_name, $pass_name, $md5 = false){
//$_SESSION['isLoggedIn'] = false;
$this -> db = $db;
$this -> table_name = $table_name;
$this -> login_name = $login_name;
$this -> pass_name = $pass_name;
}
public function authorize($login, $pass){
array_push($this -> errors
, 'login i hasło nie mogą być puste'); return false;
}
$this -> login = $login;
$this -> pass
= md5($pass); }
else{
$this -> pass = $pass;
}
if($this -> getPass()){
if($this -> pass == $this -> dbpass){
$_SESSION['isLoggedIn'] = true;
$_SESSION['userData'] = $this -> getUserData();
header("Location: index.php"); }
else{
array_push($this -> errors
, 'błędny login lub hasło'); }
}
else{
array_push($this -> errors
, 'błędny login lub hasło'); }
}
private function getPass(){
$this -> dbpass = $this -> db -> GetOne("SELECT ". $this -> pass_name ." FROM ". $this -> table_name ." WHERE ". $this -> login_name." = '".$this -> login."'");
if($this -> dbpass){
return true;
}
return false;
}
public function isLoggedIn(){
return $_SESSION['isLoggedIn'];
}
private function getUserData(){
return trim_array($this -> db -> GetRow("SELECT * FROM ".$this -> table_name." WHERE ".$this -> login_name." = '".$this -> login."'"));
}
}
?>
sprawdzanie czy zalogowany czy nie..
<?php
$auth = new auth($db, PREFIX."users", 'user_name', 'user_pass', true);
/* END AUTH */
if($auth -> isLoggedIn()){//jesli zalogowany
$smarty -> display('index.tpl');
}
else{//jesli nie zalogowany
$smarty -> display('loginForm.tpl');
}//if($auth -> isLoggedIn())
?>
wersyfikacjia usera
<?php
$auth = new auth($db, PREFIX."users", 'user_name', 'user_pass', true);
$auth -> authorize($_POST['login']['user_name'], $_POST['login']['user_pass']);
?>
z gory dzieki za wszelkie wypowiedzi
Ten post edytował epud 5.06.2006, 18:03:37