Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [MySQL][PHP] Rejestracja dlugosc hasla
mrk9109
post 29.01.2018, 19:23:37
Post #1





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


Witam to mój kolejny temat i etap nauki smile.gif a więc zacząłem od rejestracji użytkowników i mam pytanie jak zrobić by minimu hasło miało 5 liter zrobiłem warunek który nie działa i nie wiem jak to ugryźć . I czy muszę mieć 2x else echo ? do loginu i email
  1. <?php
  2.  
  3. if (isset($_POST['rejestruj']))
  4. {
  5. $login = $_POST['login'];
  6. $haslo1 = $_POST['haslo1'];
  7. $haslo2 = $_POST['haslo2'];
  8. $email = $_POST['email'];
  9. $imie = $_POST['imie'];
  10. $nazwisko = $_POST['nazwisko'];
  11. $ulica = $_POST['ulica'];
  12. $miejscowosc = $_POST['miejscowosc'];
  13. $kod = $_POST['kod'];
  14. $telefon = $_POST['telefon'];
  15. $firma = $_POST['firma'];
  16. $nip = $_POST['nip'];
  17. $ip = $_SERVER['REMOTE_ADDR'];
  18.  
  19.  
  20. $loginy = mysqli_query($polaczenie,"SELECT login FROM uzytkownicy WHERE login = '".$login."';");
  21. $nazwa_login = mysqli_num_rows($loginy);
  22. $maile = mysqli_query($polaczenie,"SELECT login FROM uzytkownicy WHERE email = '".$email."';");
  23. $nazwa_email = mysqli_num_rows($maile);
  24.  
  25. if ($nazwa_email == 0 ) // Sprawdzanie czy e-mail jest w bazie
  26. if ($nazwa_login == 0 ) // Sprawdzanie czy login jest w bazie
  27. {
  28. if ($haslo1 == $haslo2 || $haslo1 > 4) // Sprawdzanie czy hasla sa takie same
  29. {
  30. $zapytanie = $polaczenie->query("INSERT INTO `uzytkownicy` (`login`, `haslo`, `email`, `rejestracja`, `logowanie`, `ip`)
  31. VALUES ('".$login."', '".md5($haslo1)."', '".$email."', '".time()."', '".time()."', '".$ip."');");
  32.  
  33. echo "Konto zostało utworzone! <br /><br /><br /><br />";
  34. }
  35. else echo "Hasła nie są takie same // Lub hasło nie ma minimu 5 znaków";
  36. }
  37. else echo "Podany login / e-mail jest już zajęty.";
  38. else echo "Podany login / e-mail jest już zajęty.";
  39.  
  40. }
  41.  
  42. // Formularz Rejestracji
  43. include ("templatki/rejestracja.html");
  44.  
  45. ?>


I chciałem zrobić jeszcze coś takiego do include i tez mam error

  1. if($zapytanie)
  2. 3 {
  3. 4 echo "Konto zostało utworzone! <br /> Zapraszamy do <a href='index.php?strona=logowanie'>Logowanie</a>";
  4. 5 }
  5. 6 else
  6. 7 {
  7. 8 include ("templatki/rejestracja.html");
  8. 9 }


Ten post edytował mrk9109 29.01.2018, 19:14:24
Go to the top of the page
+Quote Post
SmokAnalog
post 29.01.2018, 20:14:16
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Twój warunek rejestracji jest zły z dwóch powodów:

  1. if ($haslo1 == $haslo2 || $haslo1 > 4) {
  2. // Zarejestruj użytkownika
  3. }


Po pierwsze, jednocześnie muszą zajść oba warunki, a nie tylko jeden z nich. Zamiast operatora || powinieneś użyć &&. Po drugie, do sprawdzania długości stringa służy funkcja mb_strlen. Taka jeszcze mała rada, że jeśli wymagana długość to 5, zapisz to jako >= 5, a nie > 4. Bardziej naturalnie dla osoby czytającej kod będzie widzieć minimalną wymaganą liczbę znaków, a nie maksymalną niepoprawną.
Go to the top of the page
+Quote Post
mrk9109
post 30.01.2018, 11:55:43
Post #3





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


dziękuje smile.gif ale to sprawdza ilość liczb ? a by sprawdzał łącznie znaki itp , mam jeszcze jedno pytanie a jak zrobić by sprawdzał czy w email jest @ warunek

Ten post edytował mrk9109 30.01.2018, 12:00:33
Go to the top of the page
+Quote Post
nospor
post 30.01.2018, 12:08:23
Post #4





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Cytat
ale to sprawdza ilość liczb ? a by sprawdzał łącznie znaki itp
przeciez SmokAnalog podal ci w swojej odpowiedzi jakiej funkcji masz uzyc by sprawdzic ilosc znakow. Napisal to po polsku, funkcje pogrubil, jego post jest naprawde krotki a mimo to i tak zgignorowales polowe informacji ktorych ci udzielil :/


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mrk9109
post 30.01.2018, 12:48:27
Post #5





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


dziękuję smile.gif użyłem preg_matc i właśnie tego co kolega napisał smile.gif i mam efekt który chciałem


Ten post edytował mrk9109 30.01.2018, 13:10:38
Go to the top of the page
+Quote Post
viking
post 30.01.2018, 14:32:46
Post #6





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Do sprawdzania maila php ma wbudowaną funkcję http://php.net/manual/en/function.filter-var.php


--------------------
Go to the top of the page
+Quote Post
mrk9109
post 30.01.2018, 15:08:29
Post #7





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


Dzieki smile.gif Teraz mam inny problem z logowaniem :< co robię źle ?

  1. <?php
  2.  
  3. $login = $_POST['login'];
  4. $haslo = $_POST['haslo'];
  5.  
  6. $zapytanie = "SELECT * FROM uzytkownicy WHERE login='$login' AND haslo='$haslo'"
  7. if ($sprawdzamy = $polaczenie->query($zapytanie))
  8. {
  9. $ile_uzytkownikow = $wynik->num_rows;
  10. if($ilu_uzytkownikow>0)
  11. {
  12. echo "zalogowany";
  13.  
  14. } else {
  15. echo "bledne dane logowania";
  16. }
  17. }
  18.  
  19.  
  20. ?>

Parse error: syntax error, unexpected 'if' (T_IF) in C:\Users\PC_ACER\xampp\htdocs\Mrk/zaloguj.php line 7

Ten post edytował mrk9109 30.01.2018, 15:09:03
Go to the top of the page
+Quote Post
nospor
post 30.01.2018, 15:12:55
Post #8





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Masz napisane ze masz NIEOCZEKIWANY IF w linii 7. Patrzysz wiec linie wczesniej i czego na koncu brakuje?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
viking
post 30.01.2018, 15:15:58
Post #9





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Źle masz też ewidentnie fakt, że sprawdzasz użytkownika i hasło. Oznacza to ze hasło jest gołym tekstem. Do tego i tak zbędne bo aż się prosi o włamanie. Stosuj prepared statements.


--------------------
Go to the top of the page
+Quote Post
mrk9109
post 31.01.2018, 13:35:15
Post #10





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


Zrobiłem to trochę inaczej jak rejestracje i przepraszam z góry bo się uczę mam jeszcze jeden błąd w lini 16

Undefined variable: ip in

  1. <?php
  2.  
  3. session_start(); //rozpoczęcie sesji
  4.  
  5. if (isset($_POST['loguj']))
  6. {
  7.  
  8. $login = $_POST['login'];
  9. $haslo = $_POST['haslo'];
  10.  
  11. // sprawdzamy czy login i hasło są dobre
  12.  
  13. $zapytanie = mysqli_query($polaczenie,"SELECT login, haslo FROM uzytkownicy WHERE login = '".$login."' AND haslo = '".md5($haslo)."';");
  14. $sprawdzamy = mysqli_num_rows($zapytanie);
  15.  
  16. if ($sprawdzamy > 0 )
  17. {
  18. $zapytanie = $polaczenie->query("UPDATE `uzytkownicy` SET (`logowanie` = '".time().", `ip` = '".$ip."'') WHERE login = '".$login."';");
  19.  
  20. $_SESSION['zalogowany'] = true;
  21. $_SESSION['login'] = $login;
  22.  
  23. echo "zalogowany <br />
  24. Zapraszamy do <a href='index.php?strona='>link</a>
  25. <br /><br /><br />";
  26. }
  27. else echo "Wpisano zle dane";
  28. }
  29.  
  30. ?>


Ten post edytował mrk9109 31.01.2018, 13:53:27
Go to the top of the page
+Quote Post
nospor
post 31.01.2018, 13:43:35
Post #11





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Zacznij w koncu czytac komunikaty bledow. Przeciez wyraznie masz napisane ze zmienna $ip nie istnieje!
Czego nie rozumiesz w tym komunikacie bledu?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mrk9109
post 31.01.2018, 13:52:18
Post #12





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


Oki spokojnie uczę się już gotowe i po prostu nie zauważyłem smile.gif to już moje chyba ostatnie pytanie i mam gotowe rejestracje logowanie testowe . A więc jak to zrobić chciałem na sesji gdy jest zalogowany wyświetla text a gdy nie formularz przez include no ale lipa jakaś mi wychodzi już bez błędów

  1. <?
  2. session_start(); //rozpoczęcie sesji
  3.  
  4. if (isset($_SESSION['zalogowany']) && ($_SESSION['zalogowany']==true)))
  5. {
  6. {
  7. echo "Witaj ".$Slogin." ";
  8. }
  9. else
  10. {
  11. include("templatki/logowanie.html");
  12. }
  13. }
  14.  
  15. ?>


Ten post edytował mrk9109 31.01.2018, 13:55:28
Go to the top of the page
+Quote Post
nospor
post 31.01.2018, 13:56:04
Post #13





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Cytat
ę już gotowe i po prostu nie zauważyłem
Jak mogles nie zauwazyc komunikatu bledu, ktory sam nam pokazales i wstawiles w poscie?

No i co ci teraz nie dziala z ta sesja? Nie wyswietla sie text czy formularz logowania?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mrk9109
post 31.01.2018, 13:57:45
Post #14





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


Przepraszam

nic się nie wyświetla ani text ani formularz
Go to the top of the page
+Quote Post
nospor
post 31.01.2018, 14:01:38
Post #15





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




obok
include("templatki/logowanie.html");

daj
  1. if (!file_exists("templatki/logowanie.html")) echo 'NIE ISTNIEJE';
  2. else echo 'A JEDNAK ISTNIEJE';
  3.  
  4. die('Teraz cos widzisz?');
  5. include("templatki/logowanie.html");


edit: dobra, masz w ogole PARSE ERROR.... wlacz wyswietlanie wszystkich bledow tudziez sprawdzaj logi bo teraz skrypt php ci sie w ogole wykrzacza bo masz blad nawiasow {} w IF


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mrk9109
post 31.01.2018, 14:11:26
Post #16





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


poprawiłem nawiasy
i wkleiłem i nie mam nic czyste tło
  1. <?
  2. session_start(); //rozpoczęcie sesji
  3.  
  4. if ((isset($_SESSION['zalogowany'])) && ($_SESSION['zalogowany']==true))
  5. {
  6. {
  7. echo "Witaj ".$Slogin." ";
  8. }
  9. else
  10. {
  11. include("templatki/logowanie.html");
  12. if (!file_exists("templatki/logowanie.html")) echo 'NIE ISTNIEJE';
  13. else echo 'A JEDNAK ISTNIEJE';
  14.  
  15. die('Teraz cos widzisz?');
  16. include("templatki/logowanie.html");
  17. }
  18. }
  19.  
  20. ?>

Go to the top of the page
+Quote Post
nospor
post 31.01.2018, 14:12:34
Post #17





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Nie wiem co poprawiles, ale na pewno nie nawiasy {}. Nadal masz za duzo jak miales


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mrk9109
post 31.01.2018, 14:48:38
Post #18





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


dalej źle ? sad.gif

  1. <?
  2. session_start(); //rozpoczęcie sesji
  3. session_register("zalogowany");
  4.  
  5. if ((isset($_SESSION['zalogowany'])) && ($_SESSION['zalogowany']==true))
  6. {
  7. echo "Witaj ".$Slogin." ";
  8. }
  9. else
  10. {
  11. include("templatki/logowanie.html");
  12. }
  13.  
  14.  
  15. ?>
Go to the top of the page
+Quote Post
nospor
post 31.01.2018, 14:58:22
Post #19





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Nadal biala strona? TO wstaw teraz moj kod co podalem ci pare postow wczesniej


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mrk9109
post 31.01.2018, 15:09:06
Post #20





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


ale błąd tongue.gif brak u gory "<?php" ale mam błąd że nie mam nie zdefiniowaną zmienną $login why sesja mi ją nie przekazuje ?

a w zaloguj mam

  1. $_SESSION['zalogowany'] = true;
  2. $_SESSION['login'] = $login;
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 26.04.2024 - 06:34