Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ Sprawdzanie konkretnego uzytkownika podczas logowania

Napisany przez: marekjurko12 6.06.2019, 01:52:41

Przepraszam bo juz zaraz zwariuje, poniżej znajduje sie moj kod do logowania, prosze niech mi ktoś łaskawie przedstawi If'a który sprawdzi czy login wpisany przez uzytkownika w panelu logowania to np. adam i przeniesie go do pliku adam.php , chodzi o te konkretnego uzytkownika reszta tak jak w skrypcie przenosi sie do pliku panel.php

wiem ,że banalnie proste ale już jest późna godzina a napisanie tego logowania zajeło mi mase czasu
Pozdrawiam serdecznie




  1. <?php
  2.  
  3. http://www.php.net/session_start();
  4.  
  5. if ((!http://www.php.net/isset($_POST['login'])) || (!http://www.php.net/isset($_POST['haslo'])))
  6. {
  7. http://www.php.net/header('Location: index.php');
  8. http://www.php.net/exit();
  9. }
  10.  
  11.  
  12. require_once "connect.php";
  13.  
  14. $polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
  15.  
  16. if($polaczenie->connect_errno!=0)
  17. {
  18. http://www.php.net/echo "Error: ".$polaczenie->connect_errno;
  19. }
  20. else
  21. {
  22. $login = $_POST['login'];
  23. $haslo = $_POST['haslo'];
  24.  
  25. $login = http://www.php.net/htmlentities($login, ENT_QUOTES, "UTF-8");
  26.  
  27.  
  28. if ($rezultat = @$polaczenie->query(
  29. http://www.php.net/sprintf("SELECT*FROM uzytkownicy WHERE user='%s'",
  30. mysqli_real_escape_string($polaczenie,$login))))
  31. {
  32. $ilu_userow = $rezultat->num_rows;
  33. if($ilu_userow>0)
  34. {
  35. $wiersz = $rezultat->fetch_assoc();
  36.  
  37. if(password_verify($haslo, $wiersz['pass']))
  38. {
  39. $_SESSION['zalogowany'] = true;
  40.  
  41. http://www.php.net/unset($_SESSION['blad']);
  42. $rezultat->free();
  43. http://www.php.net/header('Location: panel.php');
  44. }
  45. else
  46. {
  47. $_SESSION['blad'] = '<span style="color:red">Nieprawidłowy login lub haslo!</span>';
  48. http://www.php.net/header('Location: index.php');
  49. }
  50.  
  51. } else {
  52.  
  53. $_SESSION['blad'] = '<span style="color:red">Nieprawidłowy login lub haslo!</span>';
  54. http://www.php.net/header('Location: index.php');
  55.  
  56. }
  57. }
  58.  
  59. $polaczenie->close();
  60. }
  61. ?>

Napisany przez: sratatata 6.06.2019, 07:34:15


Tam gdzie masz warunek z password_verify() dodaj sprawdzenie czy rowniez user to adam.

Napisany przez: marekjurko12 6.06.2019, 10:24:23

nie wychodzi mi właśnie, mogłbys przedstawić to jako kod zebym porównał ?

Napisany przez: Pyton_000 6.06.2019, 10:45:59

Nie wychodzi Ci bo to nie Ty napisałeś ten kod - ot cała zagadka.

Przed przeniesieniem do panel.php musisz dodać warunek sprawdzajączy czy $login === 'adam' i jeśli tak to przekierować do adam.php zamiast panel.php

Napisany przez: sratatata 6.06.2019, 11:47:49

Cytat(marekjurko12 @ 6.06.2019, 10:24:23 ) *
nie wychodzi mi właśnie, mogłbys przedstawić to jako kod zebym porównał ?

No to pokaz co zrobiles.

Napisany przez: marekjurko12 6.06.2019, 21:00:19

  1. if(password_verify($haslo, $wiersz['pass']))
  2. {
  3. if($login == "armand")
  4. http://www.php.net/header('Location: admin.php');
  5.  
  6.  
  7. $_SESSION['zalogowany'] = true;

Napisany przez: sratatata 7.06.2019, 08:27:01

  1. if(password_verify($haslo, $wiersz['pass']) && $login == 'adam')
  2. {
  3. dalej co tam chcesz robic
  4. }

Napisany przez: Tomplus 12.06.2019, 11:23:18

@sratata
Ten twój warunek jest zbędny... bo nie uwzględnia innych użytkowników
Sprawdzenie usera jest już w SQL: "SELECT*FROM uzytkownicy WHERE user='%s'"

A odpowiedź jest prosta, po wpisaniu poprwnego hasła wystarczy poprawić kod:


  1. if($login == 'adam') {
  2. http://www.php.net/header('Location: '.$login.'.php');
  3. } else {
  4. http://www.php.net/header('Location: panel.php');
  5. }


Napisany przez: sratatata 12.06.2019, 12:01:36

Cytat(Tomplus @ 12.06.2019, 11:23:18 ) *
@sratata
Ten twój warunek jest zbędny... bo nie uwzględnia innych użytkowników
Sprawdzenie usera jest już w SQL: "SELECT*FROM uzytkownicy WHERE user='%s'"

A odpowiedź jest prosta, po wpisaniu poprwnego hasła wystarczy poprawić kod:


  1. if($login == 'adam') {
  2. http://www.php.net/header('Location: '.$login.'.php');
  3. } else {
  4. http://www.php.net/header('Location: panel.php');
  5. }


Zbdny czy niezbdny kogo to obchodzi., Wazne ze dziala.

Napisany przez: nospor 12.06.2019, 12:04:00

@sratatata no wlasnie sek w tym, ze z twoim warunkiem dzialalo nie tak jak powinno, bo juz jak Tomplus napisal, nie uwzglednialo reszty uzytkownikow

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)