ok,ok. Przesle wiecej kodu. WIem juz gdzie lezy problem,lecz rozwiazac go nie moge. Chodzi o moja klase gdzie lacze sie do PDO,gdzies musi byc problem.
klasa.
<?php
include_once('includes/db/databaseController.php');
class User {
private $pdo;
private $name;
private $email;
private $role;
function __construct()
{
$this->pdo = Database::GetInstance();
}
public function setRole($role)
{
$this->role = $role;
}
public function getRole()
{
return $this->role;
}
function setName($name)
{
$this->name = $name;
}
function getName()
{
return $this->name;
}
function login()
{
if($_POST['user_name'] == "rasztemberg_86@tlen.pl" && $_POST['user_password'] == "dupa")
{
$this ->name = "rafal";
$this -> role ="user";
$_SESSION['user_id'] = $this;
return true;
}
elseif($_POST['user_name'] == "admin86@tlen.pl" && $_POST['user_password'] == "admin")
{
$this->name = "admin";
$this->role = "admin";
$_SESSION['user_id'] = $this;
}
else
{
return false;
}
}
function checkUserSession()
{
if (isset($_SESSION['user_id'])) {
return true;
}
else
{
return false;
}
}
function logout()
{
unset($_SESSION['user_id']); echo "session destroyed"; }
} // end of class.
?>
kontroller.
<?php
require_once('controller/user.class.controller.php');
require_once('view/login_form.php');
$user = new User;
$user_v = new LoginView;
if(@$_POST['user_name'] && @$_POST['user_password'])
{
if( $user->login() == true)
{
//$user_v->showOptions();
}
else
{
}
}
if (@$_GET['function'] == "logout")
{
$user->logout();
}
$correct_user = $user->checkUserSession();
if($correct_user == true)
{
$user_v->displayStatus(true);
}else
{
$user_v->displayStatus(false);
}
?>
i bazka danych,klasa.
<?php
class Database extends PDO
{
// Store the single instance of Database
public function __construct()
{
// DEVELOPMENT
$hostname = "localhost";
$username = "root";
$password = "admin";
$sDataBaseName = "webshop";
try
{
parent::__construct('mysql:host=localhost;dbname=webshop', 'root', 'admin');
//$pdo = new PDO('mysql:host=localhost;dbname=webshop', 'root', 'admin');
}catch(PDOException $e){
echo 'PHP Library error - PDO: ' . $e->getMessage(); }
}
public static function GetInstance
() {
if (!self::$oInstance)
{
self::$oInstance = new Database();
}
return self::$oInstance;
}
}
?>
odrazu podkresle ze baza danych i login dzialaja dla innych klas i w innych okolicznosciach,jednak gdy obie funckje sa w kontruktorze to jest lipa. przeniesienie session start gdzie indziej nic nie poprawia. no i nie powinno nawet. problem jest z klasa PDO bo jak zrobilem klase dla Mysqli to dzialalo. Jednak nie chce kozystac z mysli gdyz mam juz sporo zapytan pod pdo tak wiec zmiana wszystkiego bylaby strrasznie straszna.
any help?!?