Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] Logowanie, sesje, baza danych, nie wiem jak się zabrać by pobierał dane z bazy...
jacke
post
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 1
Dołączył: 15.03.2010

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


Hej, mam taki oto banalnie prosty skrypt logowania:
  1. <?php session_start();
  2.  
  3. $login = "test";
  4. $pass = "test";
  5.  
  6. if(isset($_SESSION['zalogowany']))
  7. {
  8. echo "You are logged on. <br />";
  9. echo "<a href=\"?logout=true\">Log out</a><br />";
  10. if(@$_GET['logout'] == "true")
  11. {
  12. echo "You are now logged off. Reload page.";
  13. }
  14. }
  15. else
  16. {
  17. if(isset($_POST['zaloguj']))
  18. {
  19. if($_POST['login'] == $login && $_POST['pass'] == $pass)
  20. {
  21. echo "You have just been logged on, reload page";
  22. $_SESSION['zalogowany'] = $login;
  23. }
  24. else
  25. {
  26. echo "incorrect data";
  27. }
  28. }
  29. else
  30. {
  31. echo "You aren ot logged on, please login";
  32. echo "<form method=\"post\">";
  33. echo "Login: <input type=\"text\" name=\"login\">";
  34. echo "Password: <input type=\"text\" name=\"pass\">";
  35. echo "<input type=\"submit\" name=\"zaloguj\" value=\"zaloguj\">";
  36. echo "</form>";
  37. }
  38. }
  39. ?>


Teraz, jak się mam zabrać za to, aby login oraz hasło było pobierane z bazy danych? Na chwilę obecną jest pre-definiowane na początku skryptu, a taki układ nie jest żadnym rozwiązaniem.

Próbowałem na kilka sposobów, ale chyba za każdy się zabierałem od d^py strony bo nic mi z tego nie wyszło.

Potrzebuję waszej pomocy! blinksmiley.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
emajl22
post
Post #2





Grupa: Zarejestrowani
Postów: 273
Pomógł: 21
Dołączył: 28.11.2010

Ostrzeżenie: (10%)
X----


google > logowanie mysql/php = "Około 15,200,000 wyników"


--------------------
Go to the top of the page
+Quote Post
jacke
post
Post #3





Grupa: Zarejestrowani
Postów: 41
Pomógł: 1
Dołączył: 15.03.2010

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


Akurat ten punkt przebrnąłem i jak by to było rozwiązaniem, nie pisałbym. Jestem w sumie trochę zielony...

Jak pod to podstawić wynik z zapytania mysql?
  1. {
  2. if(isset($_POST['zaloguj']))
  3. {
  4. if($_POST['login'] == $login && $_POST['pass'] == $pass)
  5. {
  6. echo "You have just been logged on, reload page";
  7. $_SESSION['zalogowany'] = $login;
  8. }


Nie pytam o gotowca, bo nie w tym rzecz polega, wiem również że pewnie jest to jedna z bardziej podstawowych rzeczy, ale po prostu nie wiem jak się mam za to zabrać. Przebrnąłem przez naprawdę wiele skryptów logowania, ale albo były sesje bez pobierania rekordów z mysql, albo były skryty kombajny, albo były zwykłe logowania bez sesji. Dlatego też przyszedłem pytać tutaj o pomoc.
Go to the top of the page
+Quote Post
PanGuzol
post
Post #4





Grupa: Zarejestrowani
Postów: 353
Pomógł: 50
Dołączył: 28.07.2005
Skąd: Łaziska Górne

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


http://wortal.php.pl/Wortal/Artykuly/PHP/P...orial-PHP-MySQL


--------------------
Sposób na życie? Uśmiech na twarzy :D
"Widzę więcej, wiem więcej, tak to jest mniej więcej"
"NIE kradnij, rząd nielubi konkurencji"
Go to the top of the page
+Quote Post
d3ut3r
post
Post #5





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

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


  1. {
  2. if(isset($_POST['zaloguj']))
  3. {
  4. /*
  5.   W tym miejscu robisz zapytanie do bazy:
  6.   SELECT login,haslo FROM uzytkownicy WHERE login = $login
  7.   gdzie zmienna $login pochodzi z formularza (tylko ją zabezpiecz żeby atak nie był podatny na SQL Injection
  8.   następnie pobierasz rekord i w warunku zamiast $login i $pass wstawiasz swoje wartości podane z bazy
  9.   */
  10. if($_POST['login'] == $login && $_POST['pass'] == $pass)
  11. {
  12. echo "You have just been logged on, reload page";
  13. $_SESSION['zalogowany'] = $login;
  14. }


Dodałem komentarz gdzie możesz pobrać dane ale hasło nie szyfrowane ? od razu lepiej sobie odpuścić i na samym początku hashować hasła np przez sha1.


--------------------
http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
Go to the top of the page
+Quote Post
jacke
post
Post #6





Grupa: Zarejestrowani
Postów: 41
Pomógł: 1
Dołączył: 15.03.2010

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


Heh, jak zwykle im później tym mózg bardziej trzeźwy. Jakoś sobie w końcu dałem radę.

Wklejam kod, jakby jakaś zaginiona dusza kiedyś czegoś podobnego szukała.

  1. <?php session_start();
  2.  
  3. require "req/dbconnect.php";
  4. connection();
  5.  
  6. @$login = $_POST['login'];
  7. @$pass = $_POST['pass'];
  8.  
  9. @$sql = mysql_query("SELECT login, password FROM users WHERE password='$pass' and login='$login'");
  10. $num = mysql_num_rows($sql);
  11.  
  12. if(isset($_SESSION['zalogowany']))
  13. {
  14. echo "You are logged on. <br />";
  15. echo "<a href=\"?logout=true\">Log out</a><br />";
  16. if(@$_GET['logout'] == "true")
  17. {
  18. echo "You are now logged off. Redirecting.";
  19. header("Refresh: 1; URL=index.php");
  20. }
  21. }
  22. else
  23. {
  24. if(isset($_POST['zaloguj']))
  25. {
  26. if($num == "1")
  27. {
  28. echo "You have just been logged on. Redirecting";
  29. $_SESSION['zalogowany'] = $login;
  30. header("Refresh: 1; URL=index.php");
  31. }
  32. else
  33. {
  34. echo "incorrect data";
  35. }
  36. }
  37. else
  38. {
  39. echo "You aren ot logged on, please login";
  40. echo "<form method=\"post\">";
  41. echo "Login: <input type=\"text\" name=\"login\">";
  42. echo "Password: <input type=\"text\" name=\"pass\">";
  43. echo "<input type=\"submit\" name=\"zaloguj\" value=\"zaloguj\">";
  44. echo "</form>";
  45. }
  46. }
  47. ?>


O, a odpowiedzi nie zauważyłem.

Owszem, kodowanie dorzucę, haszowanie, zabezpieczenia przed sql injection, wszystko w swoim czasie. Choć z drugiej strony, nie robię tego pod konkretny projekt, stronę or whatever. Po prostu bawię się mysqlem i php ;)
Go to the top of the page
+Quote Post
Mephistofeles
post
Post #7





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


  1. @$sql

Co to za składnia? Do czego ta @?

Zapomnij o mysql_, dzisiaj od tego jest PDO.
Go to the top of the page
+Quote Post

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: 20.08.2025 - 00:02