Potrzebuje pomocy. Staram się obiektowo napisać skrypt logowania. Nie wiem dlaczego zaraz po załadowaniu index.php zmienna $_SESSION['logged'] równa jest true oraz widzę napis "Zalogowano". Przecież nie wprowadzono jeszcze nic do formularza. Przez to nie może wykonać się funkcja login. Czy moglibyście jakoś mnie nakierować na dobre tory?
index.php:
<?php require_once 'core/init.php'; $logowanie = DB::getInstance(); $logowanie->login($login, $password); if($_SESSION['logged']) { } else { } ?>
db.php:
<?php class DB { private $_pdo, //konstruktor klasy BD, private function __construct() { try { $this->_pdo = new PDO('mysql:host=localhost;dbname=informator', 'root', ''); } catch(PDOException $e) { } } //sprawdߠczy klasa DB juߠistnieje, { { self::$_instance = new DB(); } return self::$_instance; } public function login($login, $password) { { { //$login = trim($_POST['login']); //$password = trim($_POST['password']); try { $pdo = self::getInstance(); $stmt = $pdo->prepare('SELECT * FROM users WHERE login = :login'); $stmt->bindValue(':login', $login, PDO::PARAM_STR); $stmt->execute(); $row = $stmt->fetch(PDO::FETCH_OBJ); $pass = $row->password; $usr = $row->login; if(password_verify($password, $pass) && $login ===$usr) { $_SESSION['logged'] = true; $_SESSION['login'] = $login; } else { } } catch(PDOException $e) { } } } } } ?>