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
Mehis
post
Post #2





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

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


database.php
  1. <?php
  2. $server = 'localhost';
  3. $user = 'root';
  4. $pass = '';
  5. $db = 'sk_login';
  6.  
  7. $Database = new mysqli($server,$user,$pass,$db);


m_auth.php
  1. class Auth {
  2. private $salt = 'e3Gde4';
  3.  
  4. function __construct(){
  5. }
  6.  
  7. function validateLogin($user, $pass){
  8. global $Database;
  9.  
  10. if($stmt = $Database->prepare("SELECT * FROM users WHERE username = ? AND password = ?")){
  11.  
  12. $stmt->bind_param("ss", $user,md5($pass.$this->salt));
  13. $stmt->execute();
  14. $stmt->store_result();
  15.  
  16. if($stmt->num_rows >0){
  17. $stmt->close();
  18. return TRUE;
  19. }else{
  20. $stmt->close();
  21. return FALSE;
  22. }
  23. }else{
  24. die();
  25. }
  26. }
  27.  
  28. function checkLoginStatus(){
  29. if(isset($_SESSION['loggedin'])){
  30. return true;
  31. }else{
  32. return false;
  33. }
  34. }
  35.  
  36. function logout(){
  37. }
  38. }

login.php
  1. <?php
  2. /**
  3.  * Created by IntelliJ IDEA.
  4.  * User: Dawid
  5.  * Date: 20.09.2015
  6.  * Time: 10:40
  7.  */
  8. @include("includes/database.php");
  9. @include("includes/init.php");
  10.  
  11. if(isset($_POST['submit'])){
  12.  
  13. $Template->setData('input_user',$_POST['username']);
  14. $Template->setData('input_pass',$_POST['password']);
  15.  
  16. if($_POST['username'] == '' || $_POST['password'] == ''){
  17. $Template->setAlert('Uzupełnij wymagane pola', 'error');
  18. $Template->load("views/v_login.php");
  19. }else if($Auth->validateLogin($Template->getData('input_user'), $Template->getData('input_pass')) == false){
  20. $Template->setAlert("Złe dane logowania", 'error');
  21. $Template->load("views/v_login.php");
  22. }else{
  23. $_SESSION['username'] = $Template->getData('input_user');
  24. $_SESSION['loggedin'] = true;
  25. $Template->setAlert('Witaj '. $Template->getData('input_user'));
  26. $Template->redirect('users.php');
  27. }
  28.  
  29. }else{
  30. $Template->load("views/v_login.php");
  31. }


v_login.php
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>login</title>
  5. <meta charset="UTF-8">
  6. <link rel="stylesheet" type="text/css" href="views/style.css"/>
  7. </head>
  8. <body>
  9. <h1>Logowanie</h1>
  10.  
  11. <form action="" method="post">
  12. <?php
  13. $alerts = $this->getAlerts();
  14. if($alerts!=''){
  15. echo '<ul class="alerts">' .$alerts .'</ul>';
  16. }
  17. ?>
  18. <p>
  19. <label for="username"> Użytkownik: </label>
  20. <input type="text" name="username" value="<?php echo $this->getData('input_user');?>"/>
  21. </p>
  22. <p>
  23. <label for="password"> Hasło: </label>
  24. <input type="password" name="password" value="<?php echo $this->getData('input_pass');?>"/>
  25. </p>
  26. <p>
  27. <input type="submit" name="submit" class="submit" value="Wyślij"/>
  28. </p>
  29. </form>
  30. </body>
  31. </html>
  32.  


Edytowałem tylko te 4 pliki. Tworzenie obiektu Auth jest w init.php: $Auth = new Auth();

W phpMyAdmin mam bazę danych sk_login z tablicą users i jednym rekordem admina.

Ten post edytował Mehis 30.09.2015, 08:05:48
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 7.10.2025 - 18:37