Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Pytanie] - Logowanie MYSQL, [Pytanie] - Logowanie MYSQL
BUKKICIK
post 23.04.2015, 09:49:15
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 20.03.2015

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


Witam,
mam pewien problem, ponieważ nie wiem jak ustawić pewną rzecz. Mianowicie: gdy klikam zaloguj się, a inputy są puste to przenosi dalej, a nie powinno! Pomoże ktośquestionmark.gif? Słyszałem o "!empty", ale nie wiem gdzie to dać haha.gif.


  1. <?php
  2.  
  3. include("db_login.php");
  4.  
  5. $login = $_POST["login"];
  6. $haslo = $_POST["password"];
  7.  
  8. $zapytanie = mysql_query("SELECT Login FROM users WHERE Login = '$login' ");
  9. $wynik_zapytania = mysql_fetch_array($zapytanie);
  10.  
  11. if($wynik_zapytania[0] != $login){
  12. header("Location: ../index.html");
  13. }else{
  14.  
  15. $zapytanie = mysql_query("SELECT Haslo FROM users WHERE Login = '$login' ");
  16. $wynik_zapytania = mysql_fetch_array($zapytanie);
  17.  
  18. if($haslo == $wynik_zapytania[0]){
  19.  
  20. $zapytanie = mysql_query("SELECT ID, Login, EMail FROM users WHERE Login = '$login' ");
  21. $wynik_zapytania = mysql_fetch_array($zapytanie);
  22.  
  23. $_SESSION["zalogowany"] = 1;
  24. $_SESSION["user_id"] = $wynik_zapytania[0];
  25. $_SESSION["user_login"] = $wynik_zapytania[1];
  26. $_SESSION["user_mail"] = $wynik_zapytania[2];
  27.  
  28. mysql_query("UPDATE users SET LData = NOW() WHERE Login = '$login' ");
  29.  
  30. header("Location: panel/index.php");
  31. }else{
  32. header("Location: ../index.html");
  33. }
  34. }
  35. ?>


Ten post edytował BUKKICIK 23.04.2015, 10:00:35
Go to the top of the page
+Quote Post
Kshyhoo
post 23.04.2015, 10:01:43
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Może dlatego, że robisz to "po stronie przeglądarki"...
Myślisz też pewnie, że członkowie tego Forum mają problem ze wzrokiem?
Przenoszę.

Pokaż kod formularza.
empty używa się do sprawdzenia, czy zmienne pochodzące z formularza są puste, jeżeli nie, to formularz się przetwarza, jeżeli nie, to pokazuje się formularz.


--------------------
Go to the top of the page
+Quote Post
BUKKICIK
post 23.04.2015, 10:03:50
Post #3





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 20.03.2015

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


Cytat(Kshyhoo @ 23.04.2015, 11:01:43 ) *
Może dlatego, że robisz to "po stronie przeglądarki"...
Myślisz też pewnie, że członkowie tego Forum mają problem ze wzrokiem?
Przenoszę.

Pokaż kod formularza.
empty używa się do sprawdzenia, czy zmienne pochodzące z formularza są puste, jeżeli nie, to formularz się przetwarza, jeżeli nie, to pokazuje się formularz.



Oto kod:

  1. <form method="post" action="login.php">
  2. <input type="text" class="form-control" id="username" name="login" placeholder="Login">
  3. <input type="password" class="form-control" id="password" name="password" placeholder="Hasło">
  4. <BR />
  5. <input type="submit" class="btn btn-primary btn-lg" value="Zaloguj Się" />
  6. </form>


Ten post edytował BUKKICIK 23.04.2015, 10:05:05
Go to the top of the page
+Quote Post
Kshyhoo
post 23.04.2015, 10:06:00
Post #4





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




To jakiś gotowiec, czy sam płodziłeś?


--------------------
Go to the top of the page
+Quote Post
BUKKICIK
post 23.04.2015, 10:06:44
Post #5





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 20.03.2015

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


Cytat(Kshyhoo @ 23.04.2015, 11:06:00 ) *
To jakiś gotowiec, czy sam płodziłeś?



Sam to zrobiłem.
Go to the top of the page
+Quote Post
Kshyhoo
post 23.04.2015, 10:12:20
Post #6





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Musisz zrobić coś w stylu:
  1. if (!isset($_POST['login']) && !isset($_POST['password']) {


--------------------
Go to the top of the page
+Quote Post
BUKKICIK
post 26.04.2015, 11:36:44
Post #7





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 20.03.2015

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


Cytat(Kshyhoo @ 23.04.2015, 11:12:20 ) *
Musisz zrobić coś w stylu:
  1. if (!isset($_POST['login']) && !isset($_POST['password']) {



Ale gdzie to wstawićquestionmark.gif

Ok już mam!

  1. <?php
  2.  
  3. include("db_login.php");
  4.  
  5. if (($_POST['login'] !='') && ($_POST['password']) !=''){
  6.  
  7. $login = $_POST["login"];
  8. $haslo = $_POST["password"];
  9.  
  10. $zapytanie = mysql_query("SELECT Login FROM users WHERE Login = '$login' ");
  11. $wynik_zapytania = mysql_fetch_array($zapytanie);
  12.  
  13. if($wynik_zapytania[0] != $login){
  14. header("Location: ../index.html");
  15. }else{
  16.  
  17. $zapytanie = mysql_query("SELECT Haslo FROM users WHERE Login = '$login' ");
  18. $wynik_zapytania = mysql_fetch_array($zapytanie);
  19.  
  20. if($haslo == $wynik_zapytania[0]){
  21.  
  22. $zapytanie = mysql_query("SELECT ID, Login, EMail FROM users WHERE Login = '$login' ");
  23. $wynik_zapytania = mysql_fetch_array($zapytanie);
  24.  
  25. $_SESSION["zalogowany"] = 1;
  26. $_SESSION["user_id"] = $wynik_zapytania[0];
  27. $_SESSION["user_login"] = $wynik_zapytania[1];
  28. $_SESSION["user_mail"] = $wynik_zapytania[2];
  29.  
  30. mysql_query("UPDATE users SET LData = NOW() WHERE Login = '$login' ");
  31.  
  32. header("Location: panel/index.php");
  33. }else{
  34. header("Location: ../index.html");
  35. }
  36. }
  37. }else{
  38. header("Location: ../index.html");
  39. }
  40. ?>


A jak zrobić, aby wyświetlało błąd, gdy wpisze się zły login, lub hasło?
Go to the top of the page
+Quote Post
Kshyhoo
post 26.04.2015, 11:40:12
Post #8





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Naprawdę, w Internecie jest wiele gotowych skryptów, które można przeanalizować. Przecież nie będziemy pisać po raz X tego samego.
Nie umiesz pracować samodzielnie?
logowanie php mysql


--------------------
Go to the top of the page
+Quote Post
BUKKICIK
post 26.04.2015, 11:41:25
Post #9





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 20.03.2015

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


Cytat(Kshyhoo @ 26.04.2015, 12:40:12 ) *
Naprawdę, w Internecie jest wiele gotowych skryptów, które można przeanalizować. Przecież nie będziemy pisać po raz X tego samego.
Nie umiesz pracować samodzielnie?
logowanie php mysql



dobrze, ale już szukałem D:
Go to the top of the page
+Quote Post
Kshyhoo
post 26.04.2015, 11:43:09
Post #10





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




To źle szukałeś, dlatego Ci pomogłem.

PS. Nie musisz cytować wszystkich odpowiedzi, tym bardziej w całości.


--------------------
Go to the top of the page
+Quote Post
BUKKICIK
post 26.04.2015, 12:02:01
Post #11





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 20.03.2015

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


Niestety nie wiem jak to zrobić POMOCY!
Go to the top of the page
+Quote Post
viking
post 26.04.2015, 12:09:54
Post #12





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

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


Przekirowujesz wszędzie header() jeżeli występują błędy. Wypisz odpowiedni komunikat zamiast tego.
Inne uwagi. SQL Injection, bez sensu klepiesz 3x ten sam select zamiast po prostu raz odpytać, hasło trzymaj w postaci zaszyfrowanej http://php.net/manual/en/function.password-hash.php albo co najmniej sha1() - odradzane.

  1. $wynik_zapytania[0] != $login

To jest świetne. Skoro Select jest login = $login to spodziewasz się innego wyniku?

Ten post edytował viking 26.04.2015, 12:14:37


--------------------
Go to the top of the page
+Quote Post
BUKKICIK
post 26.04.2015, 13:39:50
Post #13





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 20.03.2015

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


OK JUŻ SOBIE PORADZIŁEM! DZIĘKI!
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 08:23