Zaczynam się dopiero uczyć PHP OOP. Utworzyłem skrypt połączenia z bazą i logowania. Kiedy próbuję się zalogować otrzymuję komunikat: Fatal error: Call to a member function prepare() on null in C:\xampp\htdocs\try\CLASS\phpLoader.class.php on line 18
Bardzo proszę was o pomoc i wyrozumiałość bo naprawdę mnie ta obiektówka rozłożyła. Oto kod:
config.class.php:
<?php class config { { try { $pdo = new PDO('mysql:host=localhost; dbname=baza', 'root', ''); return true; } catch(PDOException $e) { } } { } { // jeśli serwer automatycznie dodaje slashe to je usuwamy { } return $text; } { } } ?>
phpLoader.php:
<?php class phpLoader extends config { // funkcja: logowanie { require_once 'config.class.php'; config::connect(); { { $_POST['name'] = config::clear($_POST['name']); $_POST['password'] = config::clear($_POST['password']); $_POST['password'] = config::codepass($_POST['password']); $query = config::$pdo->prepare("SELECT `user_id` FROM `users` WHERE `user_name` = '{$_POST['name']}' AND `user_password` = '{$_POST['password']}' LIMIT 1"); try { $query->execute(); if($query->rowCount() > 0) { $dane = $query->fetch(PDO::FETCH_ASSOC); if($dane['user_pasword'] === $_POST['password']) { $_SESSION['logged'] = true; $_SESSION['user_id'] = $row['user_id']; } else { } } else { } } catch(PDOException $e) { $e->getMessage(); } } } config::disconnect(); } } ?>
login.php:
<?php require_once 'CLASS/config.class.php'; require_ONCE 'CLASS/ModuleLoader.class.php'; require_once 'CLASS/phpLoader.class.php'; ModuleLoader::setDoctype(); phpLoader::login(); ModuleLoader::setLogo(); ModuleLoader::setTopbar(); ModuleLoader::setSidebar(); ModuleLoader::setContent(); ModuleLoader::setFooter(); ?>
Na kodowanie hasła, itd. nie patrzcie na razie. Na razie chciałbym się po prostu zalogować. Co robię źle? Dlaczego to nie działa? Co powinienem zmienić/dopisać?