Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Pytanie] - Logowanie MYSQL
Forum PHP.pl > Forum > Przedszkole
BUKKICIK
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. ?>
Kshyhoo
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.
BUKKICIK
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>
Kshyhoo
To jakiś gotowiec, czy sam płodziłeś?
BUKKICIK
Cytat(Kshyhoo @ 23.04.2015, 11:06:00 ) *
To jakiś gotowiec, czy sam płodziłeś?



Sam to zrobiłem.
Kshyhoo
Musisz zrobić coś w stylu:
  1. if (!isset($_POST['login']) && !isset($_POST['password']) {
BUKKICIK
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?
Kshyhoo
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
BUKKICIK
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:
Kshyhoo
To źle szukałeś, dlatego Ci pomogłem.

PS. Nie musisz cytować wszystkich odpowiedzi, tym bardziej w całości.
BUKKICIK
Niestety nie wiem jak to zrobić POMOCY!
viking
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?
BUKKICIK
OK JUŻ SOBIE PORADZIŁEM! DZIĘKI!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.