Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Błąd pętli weryfikacyjnej
Terrorizer
post
Post #1





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 31.03.2012

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


Po kliknięciu przycisku zaloguj za każdym razem wyskakuje mi komunikat "podaj email i hasło"
Natomiast jak wynika z pętli powinno to wyskakiwać tylko wtedy gdy jedno z pól jest empty.
Nie potrafię dojść, z czego to wynika

Streszczony kod:
  1. if (isset($_POST['zaloguj'])) {
  2.  
  3. if (!empty($_POST['email']) || !empty($_POST['pass'])){
  4.  
  5. //tutaj lecą instrukcje weryfikujące poprawność danych
  6.  
  7. } else echo 'podaj email i hasło';
  8. }



Jeśli komuś się chce, zamieszczam poniżej kod bez wycinania:
  1. if (isset($_POST['zaloguj'])) {
  2. if (!empty($_POST['email']) || !empty($_POST['pass'])){
  3.  
  4.  
  5.  
  6. $email = $_POST['logemail'];
  7. $password = $_POST['logpass'];
  8.  
  9. if ((strlen($email) < 4) || (strlen($email) > 40)) {echo '<script>
  10. document.getElementById("nick").value = "niepoprawny email";
  11. document.getElementById("nick").className = "niepoprawnyemail";
  12. </script>';}
  13. if ((strlen($password) < 6) || (strlen($password) > 40)) {echo '<script>
  14. document.getElementById("pass").value = "niepoprawne hasło";
  15. document.getElementById("pass").className = "niepoprawnehasło";
  16. </script>';}
  17. if (filter_var($email, FILTER_VALIDATE_EMAIL)){
  18. $pass = md5(sha1($password));
  19. } else echo '<script>
  20. document.getElementById("nick").value = "niepoprawny email";
  21. document.getElementById("nick").className = "niepoprawnyemail";
  22. </script>';
  23.  
  24. $checkuser = mysql_fetch_assoc(mysql_query(" SELECT id FROM users WHERE email='$email' AND pass='$password' "));
  25. if($checkuser){
  26. $_SESSION = array();
  27. $_SESSION['id'] = $checkuser['id'];
  28. if(!empty($_SESSION['id'])){
  29. header('location: main.php');
  30. }
  31. else header('location: index.php');
  32. }
  33. } else echo '<script> alert("podaj email i hasło")</script>';
  34. }


Ten post edytował Terrorizer 20.09.2014, 14:36:41
Go to the top of the page
+Quote Post
KsaR
post
Post #2





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

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


zamień || (or) na && (i) inaczej walidujesz jak ktoś wpisze tylko hasło lub email.

Ps.
  1. $pass = md5(sha1($password));


tak się nie robi.

Temat: podwójne hashowanie haseł.

Ten post edytował Ksar 20.09.2014, 14:46:13


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





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 31.03.2012

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


Dzięki na pewno się to przyda smile.gif
Tak czy inaczej, wciąż wyskakuje mi alert, żeby podać email i hasło :/

EDIT: pozwoliłem sobie przesunąć całą linijkę 33 na miejsce 3 i teraz można się zalogować normalnie. Chociaż wciąż przy wpisaniu niepoprawnego pola wyskakuje aby podać email i hasło.
W ogóle tego nie ogarniam haha.gif

Ten post edytował Terrorizer 20.09.2014, 14:55:05
Go to the top of the page
+Quote Post
KsaR
post
Post #4





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

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


if (!empty($_POST['email']) (...)
$email = $_POST['logemail'];

Czemu przypisujesz różne pola?.
Tak samo z hasłem.

Prawdo podobnie to jest problem.


--------------------
Go to the top of the page
+Quote Post
Terrorizer
post
Post #5





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 31.03.2012

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


Już wszystko jasne! Bardzo mi pomogłeś dzięki smile.gif

email i pass to zmienne z rejestracji
logemail logpass to zmienne logowania

Zwyczajnie się zaplątałem w tym wszystkim
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: 21.08.2025 - 14:42