cześć zrobiłem wcześniej skrypt PHP logowania do ssytemu chcę go teraz przerobić na obiektowy i zrobiłem połączenie z bazą danych:
<?php
//DANE DO LOGOWANIA DO BD
define("DB_HOST", 'localhost'); define("DB_DATABSE", 'kurs_php'); ?>
<?php
//PLIK LOGOWANIA DO BD I SPRAWDZANIA POLACZENIA Z BD
class dbConnect {
function __construct() {
require_once 'config.php';
$db_mysqli = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABSE);
//$db_mysqli->query('SET NAMES utf8');
if (!$db_mysqli) {
die('Błąd połączenia (' . mysqli_connect_errno
() . ') ' . mysqli_connect_error());
} else {
echo '<font size="2px" color="red">Info: Połączono z bazą danych.</font><br />'; }
}
public function CloseDb() {
mysqli_close();
}
}
?>
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:
<?php
// KLASA Z FUNKCJAMI LOGOWANIE UŻYTKOWNIKA
class Functions {
function __construct() {
// connecting to database
$db_mysqli = new dbConnect();
}
function __destruct() {
}
public function Login($login, $hasloSha1) {
$result = $db_mysqli->prepare("SELECT haslo FROM uzytkownicy WHERE login=? AND haslo=?");
$result->bind_param('ss', $login, $hasloSha1);
$result->execute();
$result->store_result();
$row = mysqli_fetch_assoc($result);
$kodAktywowany = $row['kod'];
//sprawdzenie czy taki uzytkownik istnieje
if ($result->num_rows == 1) {
$_SESSION['logowanie'] = $login;
return TRUE;
} else {
return FALSE;
}
}
}
?>
Nie wiem jak przerobić skrypt abym mógł się dowołać do zmiennej $db_mysqli w zapytaniu:
<?php $result = $db_mysqli->prepare("SELECT haslo FROM uzytkownicy WHERE login=? AND haslo=?"); ?>
Funkcja wywołująca klasę z instancją:
<?php
$func = new Functions();
if (isset($_POST['log_in'])) {
if ($_POST['log_in']) {
$login = mysqli_real_escape_string($db_mysqli, $_POST['login']);
$haslo = mysqli_real_escape_string($db_mysqli, $_POST['pass']);
$hasloSha1 = sha1($haslo);
$user = $func->Login($login, $hasloSha1);
if ($user == TRUE) {
header("Location: panel.php"); } else {
header("Location: index.php?error=4"); }
}
}
?>
Zwraca kilka błędów:

Link do obrazka:
KLIK
Ten post edytował major697 9.04.2016, 11:35:47