Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Problem z metoda prepare
Mehis
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 29.09.2015

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


Hej,
Uczę się tworzyć CMS i mam problem z jedną metodą.
Próbuję zrobić autoryzację podczas logowania, według kursu ze strefy kursów.
Wszystko jest ok, do momentu linijki z funkcją prepare().

  1. function validateLogin($user, $pass){
  2. global $Database;
  3.  
  4. if($stmt = $Database->prepare("SELECT * FROM users WHERE username = ? AND password = ?")){
  5.  
  6. $stmt->bind_param("ss", $user,md5($pass.$this->salt));
  7. $stmt->execute();
  8. $stmt->store_result();
  9.  
  10. if($stmt->num_rows >0){
  11. $stmt->close();
  12. return TRUE;
  13. }else{
  14. $stmt->close();
  15. return FALSE;
  16. }
  17. }else{
  18. die();
  19. }
  20. }


$Database było tworzone w innym pliku :
  1. $server = 'localhost';
  2. $user = 'root';
  3. $pass = '';
  4. $db = 'sk_login';
  5.  
  6. $Database = new mysqli($server,$user,$pass,$db);


Plik generuje błąd:
Warning: mysqli::prepare(): Couldn't fetch mysqli in ...

Function Location
prepare ( ) ..\m_auth.php:18


Szukałem odpowiedzi na stackoverflow itp. ale nic mi to nie pomogło.
Ktoś wie, gdzie jest błąd i jak się go pozbyć?
z góry wielkie dzięki:)

Ten post edytował Mehis 29.09.2015, 20:16:33
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
KsaR
post
Post #2





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

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


1. Bledów się nie wycisza tylko naprawia.
  1. /*
  2. @include("includes/database.php");
  3. @include("includes/init.php");
  4. */
  5. # tak powinno być:
  6.  
  7. include 'includes/database.php';
  8. include 'includes/init.php';

I w tym byc moze blad...... Jak cos wyskoczy to popraw sciezke.
--

Przy okazji:

  1. /* if(isset($_SESSION['loggedin'])){
  2. return true;
  3. }else{
  4. return false;
  5. }
  6. */
  7. # to samo ale krocej:
  8. return isset($_SESSION['loggedin']);
  9. #...
  10. /* if($stmt->num_rows >0){
  11. $stmt->close();
  12. return TRUE;
  13. }else{
  14. $stmt->close();
  15. return FALSE;
  16. }*/
  17. # tu tez to samo ale krocej:
  18. return ($stmt->num_rows>0);
  19. // $stmt->close pominiete bo zbedne i tak chyba, ewentualnie mozesz jesli potrzebujesz...
  20. $numRows=$stmt->num_rows;
  21. $stmt->close();
  22. return ($numRows>0);
  23. #...
  24. /**
  25. * if($_POST['username'] == '' || $_POST['password'] == ''){
  26. */
  27. // powinno byc:
  28. if(!isset($_POST['username'][0], $_POST['password'][0])){
  29. #...
  30. /**
  31. * <?php echo 'coś' ?>
  32. * mozna jako: <?='coś'?>, od php 5.4 domyslnie wlaczone. ;)
  33. */

I to tylko przyklady bo podobne rzeczy robisz w kilku miejscach (IMG:style_emoticons/default/tongue.gif)

Ten post edytował KsaR 30.09.2015, 08:36:02
Go to the top of the page
+Quote Post
Pyton_000
post
Post #3





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Cytat(KsaR @ 30.09.2015, 09:27:41 ) *
1. Bledów się nie wycisza tylko naprawia.
  1. /**
  2. * if($_POST['username'] == '' || $_POST['password'] == ''){
  3. */
  4. // powinno byc:
  5. if(!isset($_POST['username'][0], $_POST['password'][0])){


Jak już to

  1. if(empty($_POST['username']) || empty($_POST['password'])){
Go to the top of the page
+Quote Post
KsaR
post
Post #4





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

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


Cytat(Pyton_000 @ 30.09.2015, 09:48:04 ) *
Jak już to

  1. if(empty($_POST['username']) || empty($_POST['password'])){

To jest to samo (IMG:style_emoticons/default/tongue.gif) ja mam inne podejscie niz inni.
(mb_)strlen(); itp to uzywam tylko gdy potrzebuje pokazac ilosc, a nie sprawdzic dlugosc.
empty uzywam na nieznanej zawartosci, np. Tablicy.
Bo jak znam to uzywam isset() np. czy nie pusta isset($tablica['x'][0]); - czyli pierwszy znak jest ;p

Ten post edytował KsaR 30.09.2015, 08:55:35
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: 3.10.2025 - 05:38