Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Problem z panelem logowania
o2w5n778
post
Post #1





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 10.12.2009

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


Witam!
Mam problem z panelem logowania. Chodzi mi o to że jak wpiszę się się jakiś login i hasło w formularzu HTML, prześlę się postem do skryptu i jeśli wielkość liter w loginie lub haśle jest inna niż przypisana do usera to zwraca mi że hasło jest niepoprawne.
Chodzi mi o to że jeżeli login przypisany do jakiegoś użytkownika jest JaNeK a ja w formularzu wpiszę Janek to i tak ma mnie zalogować.
Co mam zrobić?


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
zavada
post
Post #2





Grupa: Zarejestrowani
Postów: 68
Pomógł: 6
Dołączył: 15.06.2009
Skąd: Kraków

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


Zrób, żeby porównywało z bazy mysql i z formularza if, ale musisz zamienić wszystkie na małe litery. Wtedy na przykład JaNeK zamieni się na janek, a jak będziesz miał w mysql JAneK to też zamieni na janek.
Poczytaj też o strtolower();

  1. $login_mysql = strtolower($tutaj_poda_nick_z_bazy_mysql);
  2. $login_form = strtolower($_POST['nazwa_pola_w_formularzu']);
  3. if ($login_mysql == $login_form) {
  4. echo ('Zalogowany!');
  5. }
  6. else {
  7. echo ('Niepoprawna nazwa użytkownika lub hasło!');
  8. }
  9.  
Go to the top of the page
+Quote Post
mortus
post
Post #3





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


@zavada A jak niby kolega ma wybrać login tego użytkownika z bazy danych, skoro właśnie login mu się nie zgadza?
  1. $login = strtolower($_POST['login']);
  2. $password = $_POST['password'];
  3. $query = "SELECT * FROM users WHERE LOWER(login) = {$login} AND password={$password}";

Oczywiście trzeba to jeszcze zabezpieczyć.

Poza tym nie wiem, po co Ci taki zabieg. Dla mnie JaNeK to nie janek, czy JaneK, to po prostu trzech różnych użytkowników.
Go to the top of the page
+Quote Post
o2w5n778
post
Post #4





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 10.12.2009

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


Możesz mi wytłumaczyć tą linijkę?
  1. $query = "SELECT * FROM users WHERE LOWER(login) = {$login} AND password={$password}";


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





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 28.05.2011

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


Troche dziwne masz pomysly, haslo to haslo, im wiecej znakow specialnych lub duzych liter tym bezpieczniejsze jest haslo.
Dla mnie to nie ma sensu.



$query = "SELECT * FROM users WHERE LOWER(login) = {$login} AND password={$password}";

LOWER(login) -> to zamienia wszystkie znaki w zmiennej $login i $password na male, wiec jesli ktos wpisze w formularzu TomOjeHASLO to zamieni wszystko na tomojehaslo.

Lecz musisz tez Inserta dac na LOWER, jak ktos sie rejestruje
Go to the top of the page
+Quote Post
mortus
post
Post #6





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Cytat(Websky @ 28.05.2011, 12:17:37 ) *
LOWER(login) -> to zamienia wszystkie znaki w zmiennej $login i $password na male, wiec jesli ktos wpisze w formularzu TomOjeHASLO to zamieni wszystko na tomojehaslo.

Nie no bzdury. To zapytanie służy do sprawdzenia, czy dany użytkownik w naszej tabeli użytkowników istnieje przy czym zawartość kolumny login w tabeli bazy danych jest zamieniana na małe litery. Podobnie zresztą, jak zawartość z pola login formularza logowania, ale za to odpowiada linijka:
  1. $login = strtolower($_POST['login']);
Go to the top of the page
+Quote Post
Websky
post
Post #7





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 28.05.2011

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


Ups troche sie pomylilem wink.gif racja, tylko ze tlumaczylem funkcje ktora jest w kodzie SQL.

Sorrka za pomylke wink.gif
Go to the top of the page
+Quote Post
o2w5n778
post
Post #8





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 10.12.2009

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


Panowie, ale ja nie chciałem żeby tak się działo z hasłem tylko samym loginem smile.gif
Bo dziwne by było że jak wpiszesz login z małej a nie dużej litery i zaliczy go jako niepoprawny.


--------------------
Go to the top of the page
+Quote Post
Websky
post
Post #9





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 28.05.2011

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


Możesz zrobić tak jak kolega wcześniej pisał za pomocą funkcji strtolower() lub SQL LCASE(nazwa kolumny) np:


  1. $login = strtolower($_POST[login]);


  1. SELECT LCASE(nazwa kolumny) FROM tabela


Pozdrawiam


Go to the top of the page
+Quote Post
kadlub
post
Post #10





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


Cytat(o2w5n778 @ 28.05.2011, 19:48:07 ) *
Panowie, ale ja nie chciałem żeby tak się działo z hasłem tylko samym loginem smile.gif
Bo dziwne by było że jak wpiszesz login z małej a nie dużej litery i zaliczy go jako niepoprawny.

spytam z ciekawości czy w panelu rejestracji gdy użytkownik podaje login to czy sprawdzając w bazie danych czy taki istnieje bierzesz pod uwagę duże litery. Bo chyba login nie może się powtarzać, a jak bierzesz tego pod uwagę to możesz mieć w bazie np
Janek
janek
JaneK

i przypuśćmy że np dwóch jakimś tam cudem ma takie samo hasło całkiem przypadkiem np pomysl
i jak myślisz na którego sie zalogujesz
Go to the top of the page
+Quote Post
Websky
post
Post #11





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 28.05.2011

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


Dlatego lepiej żeby nie powtarzały się loginy no i lepiej zapisywac je z malych liter lub duzych jak kto woli. W bazie danych można ustawić kolumnę login na UNIQUE ( login ) wtedy nie będzie duplikatu, baza automatycznie sprawdza czy jest taki login i zwraca komunikat jeżeli już jest wpisany rekord a poprzez LCASE lub UCASE mozesz ustawic w INSERT zapis z malej lub duzej litery.

Hasła mogą się powtarzać ,ale prawdopodobieństwo, że tak będzie jest małe.

Możesz również napisać skrypt w php, który będzie sprawdzał bazę danych przed rejestracja czy już jest podobny login.

Ten post edytował Websky 29.05.2011, 09:15:15
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: 22.08.2025 - 00:05