Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Początki w PHP OOP - logowanie
Panicz74
post
Post #1





Grupa: Zarejestrowani
Postów: 39
Pomógł: 1
Dołączył: 28.08.2015

Ostrzeżenie: (0%)
-----


Witam,

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:
  1. <?php
  2.  
  3. require_once 'core/init.php';
  4.  
  5. $logowanie = DB::getInstance();
  6.  
  7. $login = trim($_POST['login']);
  8. $password = trim($_POST['password']);
  9.  
  10. $logowanie->login($login, $password);
  11. print_r($_SESSION['logged']);
  12. if($_SESSION['logged'])
  13. {
  14. echo "Zalogowano";
  15. }
  16. else
  17. {
  18. echo "Nie zalogowano";
  19. }
  20. ?>


db.php:
  1. <?php
  2.  
  3. class DB
  4. {
  5. private static $_instance = null;
  6. private $_pdo,
  7. //konstruktor klasy BD,
  8. private function __construct()
  9. {
  10. try
  11. {
  12. $this->_pdo = new PDO('mysql:host=localhost;dbname=informator', 'root', '');
  13. echo "Connected";
  14. }
  15. catch(PDOException $e)
  16. {
  17. die($e->getMessage());
  18. }
  19. }
  20.  
  21. //sprawdߠczy klasa DB juߠistnieje,
  22. public static function getInstance()
  23. {
  24. if(!isset(self::$_instance))
  25. {
  26. self::$_instance = new DB();
  27. }
  28. return self::$_instance;
  29. }
  30.  
  31. public function login($login, $password)
  32. {
  33. if(!isset($_SESSION['logged']))
  34. {
  35. if(isset($_POST['submit']))
  36. {
  37. //$login = trim($_POST['login']);
  38. //$password = trim($_POST['password']);
  39.  
  40. try
  41. {
  42. $pdo = self::getInstance();
  43. $stmt = $pdo->prepare('SELECT * FROM users WHERE login = :login');
  44. $stmt->bindValue(':login', $login, PDO::PARAM_STR);
  45. $stmt->execute();
  46. $row = $stmt->fetch(PDO::FETCH_OBJ);
  47. $pass = $row->password;
  48. $usr = $row->login;
  49. if(password_verify($password, $pass) && $login ===$usr)
  50. {
  51. echo "Witaj ".$login;
  52. $_SESSION['logged'] = true;
  53. $_SESSION['login'] = $login;
  54. }
  55. else
  56. {
  57. echo "Podano nieprawidłowe dane";
  58. }
  59. }
  60. catch(PDOException $e)
  61. {
  62. echo "Połączenie nie mogło zostac utworzone" .$e->getMessage();
  63. }
  64. }
  65. }
  66.  
  67. }
  68. }
  69.  
  70. ?>

Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 10:42