Mam skrypt logowania, który gdzieś w necie znalazłem, jednak nie był w 100% kompletny to kombinowałem jak uruchomić. W końcu się udało...
Skrypt też odczytuje z bazy danych rangę usera (1-admin, 2-user).
Chciałem znaleźć skrypt który byłby 'o tyle o ile' jakoś zabezpieczony przed kosmitami i tak się zastanawiam czy dobrze kombinuję jak wyświetlić zawartość po zalogowaniu:
Formularz standardowy:
No i php...
<?php interface storage { public function login($name, $pass);//1 } class mysqlStorage implements storage{//2 public function login($name, $pass){//3 $pdo=new PDO('mysql:host=localhost;dbname=test', 'root', ''); $stmt=$pdo->prepare('SELECT name, ranga FROM `users` WHERE name=:name AND password=:password'); $stmt->bindValue(':name', $name); $stmt->execute(); $user=$stmt->fetch(); if($user){ return $user; } return false; }// login(); }//mysqlStorage class user{//4 public $name; public $rank; private $storage; public function __construct($storage){ $this->storage=$storage; } public function zaloguj(){ if($_SERVER['REQUEST_METHOD']=='POST'){ $user=$this->storage->login($_POST['login'], $_POST['password']); $this->name=$user['name']; $this->rank=$user['ranga']; $_SESSION['zalogowany']=true; $_SESSION['name']=$this->name; $_SESSION['rank']=$this->rank; } } } $user=new user(new mysqlStorage); $user->zaloguj() ?> <?php if ($_SESSION['rank'] == 1) elseif ($_SESSION['rank'] == 2) else ?>