Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Błąd Call to a member function prepare() on a non-object, problem z kodem.
casperii
post
Post #1





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


Panowie próbuje się zalogować poprzez ajax. Niestety otrzymuje bład w pliku class.php
Fatal error: Call to a member function prepare() on a non-object in line 13 czyli linia gdzie jest:

  1. $sql = $this->db->prepare("SELECT * FROM tabelka WHERE user=:login") or die ($db->errorInfo());


class.php
  1. class xx{
  2. private $db;
  3.  
  4. function __construct($con){
  5. $this->pdo = $con;
  6.  
  7. }
  8. }


Może ktoś podpowiedzieć co robię źle?

Ten post edytował casperii 7.05.2016, 18:20:01
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
casperii
post
Post #2





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


Dziękuje @rad11 .
Jeszcze mam pytanie odnośnie logowania, bo coś nie idzie.
Otóż loguje się poprzez Ajax i tu mam kilka pytań,
czy jeśli nie wpiszę loginu i hasła to błędy mam pluć w pliku ajaxowym coś na styl:

  1. $value_login = trim($_POST['login']);
  2. $value_password = trim(md5($_POST['pass']));
  3.  
  4. if(empty($value_login)){
  5. $message_error = 'Nie wpisano loginu.';
  6. echo $message_error;
  7. }
  8. elseif(empty($value_password)){
  9. $message_error = 'Nie wpisano hasła.';
  10. echo $message_error;
  11. }


czy da radę to zrobić w class.php ? Jeżeli tak to w jaki sposób i jak później przekazać komunikat do ajax:

class.php:
  1. public function AjaxLogin($value_login, $value_password)
  2. {
  3. $sql = $this->db->prepare("SELECT * FROM `users` WHERE login=:user AND pass=:password") or die ($db->errorInfo());
  4. $sql->bindValue(':user', $value_login, PDO::PARAM_STR);
  5. $sql->bindValue(':password', $value_password, PDO::PARAM_STR);
  6. $sql->execute();
  7. $row = $sql->fetch(PDO::FETCH_ASSOC);
  8. if($sql->rowCount()!=0){
  9. $test = 'supper';
  10. }
  11. return $sql;
  12. }


ajax.php:

  1. if($_POST['action'] == 'user_login'){
  2.  
  3. if($cos->AjaxLogin($value_login, $value_password)){
  4. var_dump($sql);
  5. }


Gdzie i jak powinno wyglądać czy user znajduje się w bazie? w strukturalnym to bym przeleciał pętlą while i sprawdził czy jest większy od 0 i stosowny komunikat.
Tylko jak to teraz połączyć tą klase z wstawieniem tego do Ajax. Czy mógłbyś pomóc?

Ten post edytował casperii 7.05.2016, 19:42:21
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 7.10.2025 - 02:18