Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][MySQL][PHP]logowanie
mattii
post
Post #1





Grupa: Zarejestrowani
Postów: 133
Pomógł: 0
Dołączył: 29.01.2010

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


mam taki kod do logowania

  1. <?php
  2. require_once 'dbconnect.php';
  3.  
  4.  
  5.  
  6.  
  7. if (isset($_SESSION['userSession'])!="") {
  8. header("Location: home.php");
  9. }
  10.  
  11. if (isset($_POST['btn-login'])) {
  12.  
  13. $email = strip_tags($_POST['email']);
  14. $password = strip_tags($_POST['haslo']);
  15.  
  16. $email = $DBcon->real_escape_string($email);
  17. $password = $DBcon->real_escape_string($password);
  18.  
  19. $query = $DBcon->query("SELECT idUser, email, haslo FROM User WHERE email='$email'");
  20.  
  21.  
  22.  
  23. $row=$query->fetch_array();
  24.  
  25. $count = $query->num_rows; // if email/password are correct returns must be 1 row
  26.  
  27. if (password_verify($password, $row['haslo']) && $count==1) { -------- tutaj jest warunek if'a, ktory sprawdzam ponizej poprzez echo $row['haslo'], "a", $password, "b", $count,"c"; i się zgadza wszystko kazda zmienna wynosi 1
  28. $_SESSION['userSession'] = $row['idUser'];
  29. header("Location: home.php");
  30. } else {
  31.  
  32. // echo $row['haslo'], "a", $password, "b", $count,"c";
  33.  
  34. $msg = "<div class='alert alert-danger'> &nbsp; Zły user lub pass !
  35.  
  36.  
  37.  
  38. </div>";
  39. }
  40. $DBcon->close();
  41. }
  42. ?>



-------- powyższy warunek if'a, ktory sprawdzam ponizej poprzez echo $row['haslo'], "a", $password, "b", $count,"c"; i się zgadza wszystko kazda zmienna wynosi 1

ale od razu przerzuca do elsa i dostaje informacje Zły user lub pass ! - całe popołudnie na to patrzę i już nie widzę błędu..ale dalej coś nie działa.

Ten post edytował mattii 22.09.2016, 19:54:44
Go to the top of the page
+Quote Post
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


  1. isset($_SESSION['userSession'])!=""

true/false!="" - co to za warunek?

Sprawdź var_dump($count); co zwraca. A jeśli $row['haslo'] == 1 to słabo.

Ten post edytował viking 22.09.2016, 20:06:48
Go to the top of the page
+Quote Post
mattii
post
Post #3





Grupa: Zarejestrowani
Postów: 133
Pomógł: 0
Dołączył: 29.01.2010

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


var_dump($count) zwraca:


int(1) - jesli poprawne dane logowania

int(0) - jesli niepoprawne

po małej przeróbce


  1. $pasuje= password_verify ($password, $row['haslo']);
  2.  
  3. if ($pasuje && $count==1) ...


var_dump($pasuje)-- zawsze zwraca false..?
Go to the top of the page
+Quote Post
viking
post
Post #4





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Skoro się hasła nie zgadzają to chyba wiesz gdzie szukać problemu?
Go to the top of the page
+Quote Post
mattii
post
Post #5





Grupa: Zarejestrowani
Postów: 133
Pomógł: 0
Dołączył: 29.01.2010

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


problemem było, że ta funkcja współpracuje z hashed_password, a ja na dodatek w bazie mialem stirnga 45 znaków tylko wiec moglem szukac i szukac w kodzie...


ale cos jest nie tak, bo teraz juz loguje, ale po wykonaniu warunku ifa powinien:

  1. {
  2. $_SESSION['userSession'] = $row['idUser'];
  3. header("Location:home.php");
  4. }


przeniesc na strone home.php


a tu firefox wyrzuca blad:

Nieprawidłowe przekierowanie

Firefox wykrył, że serwer przekierowuje żądanie tego zasobu w sposób uniemożliwiający jego ukończenie.

Problem ten może się pojawić w wyniku zablokowania lub odrzucenia ciasteczek.

i nawet nie moge wrocic z powrotem na index.php... musze wyczyscic pamiec podreczna i ciasteczka i wtedy dopiero index.php dziala



Go to the top of the page
+Quote Post
viking
post
Post #6





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Poprawiłeś tego ifa? Jakie masz przekierowania w home?
Go to the top of the page
+Quote Post
mattii
post
Post #7





Grupa: Zarejestrowani
Postów: 133
Pomógł: 0
Dołączył: 29.01.2010

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


nie nie poprawiałem ifa.

w homie taeraz sa przekierwoania (bo dodałem uzytkownika z uprawnieniami admina jeszcze):

  1. if ((isset($_SESSION['userSession'])) && ($_SESSION['userSession']==true))
  2. {
  3. if ($_SESSION['admin'] == 1)
  4. {
  5. header('Location: admin.php');
  6. exit();
  7. }
  8.  
  9. }


problem , że nie kierował mnie już rozwiązałem,


miałem:

  1.  
  2. {
  3. $_SESSION['userSession'] = $row['idUser'];
  4. header("Location:home.php");
  5. }
  6.  


na końcu dodałem

  1. exit();



i teraz działa jak trzeba.

przyznam szczerze, że nie wiem czy słusznie i dla czego bez tego exita nie działało..
Go to the top of the page
+Quote Post
viking
post
Post #8





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


header nie kończy wykonywania skryptu. Ustawia tylko nagłówek.
Go to the top of the page
+Quote Post

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: 24.08.2025 - 06:57