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%)
-----


@com czy mógłbyś mi wytłumaczyć jak powinna wyglądać komunikacja pomiędzy dwoma plikami? :

  1. <?php
  2. class cos{
  3. private $db;
  4.  
  5. function __construct($con){
  6. $this->db = $con;
  7.  
  8. }
  9. public function AjaxLogin($value_login, $value_password) //
  10. {
  11. $sql = $this->db->prepare("SELECT * FROM `users` WHERE login=:user OR email=:mail AND pass=:password") or die ($db->errorInfo());
  12. $sql->bindValue(':user', $value_login, PDO::PARAM_STR);
  13. $sql->bindValue(':mail', $value_login, PDO::PARAM_STR);
  14. $sql->bindValue(':password', $value_password, PDO::PARAM_STR);
  15. $sql->execute();
  16. return $sql->fetch(PDO::FETCH_ASSOC);
  17. }
  18. }
  19. ?>


oraz plik ajaxowy.php do którego odwołuje się w pliku index.php. Wiem, że najłatwiej było by po prostu w w pliku ajaxowym bez kombinowania zrobić zapytanie i w zależności czy user istnieje czy nie lub plucie komunikatem jeśli czegoś user nie wpisał i jsonem lub echem wysłać do indexa stosowny komunikat.
Ale ja chce to zrobić na classach które są wczytywane do pliku ajaxowego z pliku class.php , czyli musi być komunikacja pomiędzy dwoma plikami ajaxowy.php , class.php a stosowny komunikat wyświetlić w index.php poprzez json lub echo.

ajaxowy.php
  1. if($_POST['action'] == 'user_login'){
  2. //tu trzeba pobrać klase AjaxLogin ze stosownym komunikatem.
  3. }


Rozumiem, że jeśli user nie wpisze loginu lub hasła to mogę pluć komunikatem bezpośrednio z pliku ajaxowy.php np.

  1. if(empty($value_login)){
  2. //tu json lub echo
  3. }
  4. elseif(empty($value_password)){
  5. //tu json lub echo
  6. }


ale jak zrobić tą komunikację pomiędzy ajaxowy.php a class. że ajaxowy pobierze wartości przekaże je do class.php i w zależności jeśli user istnieje zwróci zalogowany==true i wtedy ajaxowy tworzyłby sesje? a jeśli user nie istnieje klasa AjaxLogin zwróci zalogowany==false do pliku ajaxowy.php i tu sobie wyświetle odpowiedni komunikat.

Myślę, że dobrze kombinuje ?
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: 4.10.2025 - 04:50