Fatal error: Call to a member function prepare() on a non-object in line 13 czyli linia gdzie jest:
class.php
class xx{ private $db; function __construct($con){ $this->pdo = $con; } }
Może ktoś podpowiedzieć co robię źle?
class xx{ private $db; function __construct($con){ $this->pdo = $con; } }
$message_error = 'Nie wpisano loginu.'; } $message_error = 'Nie wpisano hasła.'; }
public function AjaxLogin($value_login, $value_password) { $sql = $this->db->prepare("SELECT * FROM `users` WHERE login=:user AND pass=:password") or die ($db->errorInfo()); $sql->bindValue(':user', $value_login, PDO::PARAM_STR); $sql->bindValue(':password', $value_password, PDO::PARAM_STR); $sql->execute(); $row = $sql->fetch(PDO::FETCH_ASSOC); if($sql->rowCount()!=0){ $test = 'supper'; } return $sql; }
if($_POST['action'] == 'user_login'){ if($cos->AjaxLogin($value_login, $value_password)){ }
class MySpecialException extends Exception {} ///... try { throw new \MySpecialException('Nie wpisano loginu.'); } 'status' => 1, 'content' => 'bla bla bla' ]); } catch (\MySpecialException $e) { $this->logger->add($e); //logowanie błedów 'status' => 0, 'error' => $e->getMessage() ]); } catch (\Exception $e) { $this->logger->add($e); //logowanie błedów 'status' => 0, 'error' => 'Nie udało się wykonać' ]); } exit;
<?php class cos{ private $db; function __construct($con){ $this->db = $con; } public function AjaxLogin($value_login, $value_password) // { $sql = $this->db->prepare("SELECT * FROM `users` WHERE login=:user OR email=:mail AND pass=:password") or die ($db->errorInfo()); $sql->bindValue(':user', $value_login, PDO::PARAM_STR); $sql->bindValue(':mail', $value_login, PDO::PARAM_STR); $sql->bindValue(':password', $value_password, PDO::PARAM_STR); $sql->execute(); return $sql->fetch(PDO::FETCH_ASSOC); } } ?>
if($_POST['action'] == 'user_login'){ //tu trzeba pobrać klase AjaxLogin ze stosownym komunikatem. }
//tu json lub echo } //tu json lub echo }
if($cos->AjaxLogin($value_login, $value_password)){ // tu chcę odebrać return $msg_err oraz $msg_ok }
public function AjaxLogin($value_login, $value_password) { $sql = $this->db->prepare("SELECT * FROM `users` WHERE (login=:user OR email=:mail) AND pass=:password") or die ($db->errorInfo()); $sql->bindValue(':user', $value_login, PDO::PARAM_STR); $sql->bindValue(':mail', $value_login, PDO::PARAM_STR); $sql->bindValue(':password', $value_password, PDO::PARAM_STR); $sql->execute(); $row = $sql->fetch(PDO::FETCH_ASSOC); //echo 'Proszę podać login.'; //jeśli robię echem to w indexie się pokazuje $msg_err = 'Proszę podać login'; } $msg_err = 'Proszę podać prawidłowe hasło.'; } $msg_ok = 'ok'; } return $msg_err; return $msg_ok; }
class Foo { public function bar($bar) { if($bar === 'bar') { return true; } return false; } class Bar { private $foo; public function __construct(Foo $foo) { $this->foo = $foo; } public function foo($bar) { $result = $this->foo->bar($bar); // no i tu cokolwiek z tym robisz }