Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PHP OOP odwolanie do zmiennej
major697
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 7.08.2014

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


cześć zrobiłem wcześniej skrypt PHP logowania do ssytemu chcę go teraz przerobić na obiektowy i zrobiłem połączenie z bazą danych:
  1. <?php
  2. //DANE DO LOGOWANIA DO BD
  3. define("DB_HOST", 'localhost');
  4. define("DB_USER", 'michal');
  5. define("DB_PASSWORD", '');
  6. define("DB_DATABSE", 'kurs_php');
  7. ?>
  8.  
  9. <?php
  10. //PLIK LOGOWANIA DO BD I SPRAWDZANIA POLACZENIA Z BD
  11. class dbConnect {
  12. function __construct() {
  13. require_once 'config.php';
  14. $db_mysqli = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABSE);
  15. //$db_mysqli->query('SET NAMES utf8');
  16. if (!$db_mysqli) {
  17. die('Błąd połączenia (' . mysqli_connect_errno() . ') '
  18. . mysqli_connect_error());
  19. } else {
  20. echo '<font size="2px" color="red">Info: Połączono z bazą danych.</font><br />';
  21. }
  22. }
  23. public function CloseDb() {
  24. mysqli_close();
  25. }
  26. }
  27. ?>


To połączenie działa poprawnie, problem pojawia się gdy mam się odwołać do zmiennej $db_mysqli, która przechowuje "połączenie z bazą" w skrypcie logowania:

  1. <?php
  2. // KLASA Z FUNKCJAMI LOGOWANIE UŻYTKOWNIKA
  3. class Functions {
  4.  
  5. function __construct() {
  6.  
  7. // connecting to database
  8. $db_mysqli = new dbConnect();
  9.  
  10. }
  11. function __destruct() {
  12.  
  13. }
  14.  
  15. public function Login($login, $hasloSha1) {
  16. $result = $db_mysqli->prepare("SELECT haslo FROM uzytkownicy WHERE login=? AND haslo=?");
  17. $result->bind_param('ss', $login, $hasloSha1);
  18. $result->execute();
  19. $result->store_result();
  20. $row = mysqli_fetch_assoc($result);
  21. $kodAktywowany = $row['kod'];
  22.  
  23. //sprawdzenie czy taki uzytkownik istnieje
  24. if ($result->num_rows == 1) {
  25. $_SESSION['logowanie'] = $login;
  26. return TRUE;
  27. } else {
  28. return FALSE;
  29. }
  30. }
  31.  
  32. }
  33. ?>


Nie wiem jak przerobić skrypt abym mógł się dowołać do zmiennej $db_mysqli w zapytaniu:
  1. <?php $result = $db_mysqli->prepare("SELECT haslo FROM uzytkownicy WHERE login=? AND haslo=?"); ?>


Funkcja wywołująca klasę z instancją:

  1. <?php
  2. $func = new Functions();
  3.  
  4. if (isset($_POST['log_in'])) {
  5.  
  6. if ($_POST['log_in']) {
  7. $login = mysqli_real_escape_string($db_mysqli, $_POST['login']);
  8. $haslo = mysqli_real_escape_string($db_mysqli, $_POST['pass']);
  9. $hasloSha1 = sha1($haslo);
  10. $user = $func->Login($login, $hasloSha1);
  11. if ($user == TRUE) {
  12. header("Location: panel.php");
  13. } else {
  14. header("Location: index.php?error=4");
  15. die();
  16. }
  17.  
  18. }
  19.  
  20. }
  21. ?>


Zwraca kilka błędów:


Link do obrazka: KLIK

Ten post edytował major697 9.04.2016, 11:35:47
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 21.08.2025 - 05:24