Php login probleem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jeroen de wilde

Jeroen de wilde

17/07/2019 12:54:00
Quote Anchor link
Beste,

Ik gebruik deze query: SELECT * FROM leden where (email = '$veiligeloginemailnew' OR nickname = '$veiligeloginnew') AND password = '$passwordnew'

voor de login van mijn script. maar nu merk ik als 2 leden het zelfde wachtwoord hebben dat ze op het zelfde profiel komen.

hopelijk kunnen jullie me helpen.
 
PHP hulp

PHP hulp

28/03/2024 22:06:39
 
Christian k

christian k

17/07/2019 12:59:00
Quote Anchor link
Als het goed is is het niet mogelijk dat twee leden dezelfde email hebben. Je zult bij het registeren moeten controleren of het gebruikte email adres al in gebruik is. En niet toestaan dat een email twee keer gebruikt wordt.
 
Jeroen de wilde

Jeroen de wilde

17/07/2019 13:27:25
Quote Anchor link
Bedankt voor uw reactie.
Ik heb een controle op een uniek e-mail.
ook al zijn het verschillende login's ik kom telkens op het profiel het hetzelfde wachtwoord.
 
- SanThe -

- SanThe -

17/07/2019 15:00:51
Quote Anchor link
Het kan zijn dat nickname leeg is en dat $veiligeloginnew leeg is.
Dan kom je op dezelfde user uit.
 
- Ariën  -
Beheerder

- Ariën -

17/07/2019 15:57:02
Quote Anchor link
Ik heb het even uitgetest, maar wel gevulde waardes krijg ik echt de juiste gebruiker waarmee ik mee inlog.
Maar moet de invoer niet uit éénzelfde variabele komen? Je gebruikt nu $veiligeloginemailnew én $veiligeloginnew.

Je moet een gedeelde input hebben met username/mailadres.
Gewijzigd op 17/07/2019 15:57:35 door - Ariën -
 
Jan R

Jan R

17/07/2019 16:14:01
Quote Anchor link
Christian k op 17/07/2019 12:59:00:
Als het goed is is het niet mogelijk dat twee leden dezelfde email hebben.


Wat doe je dan bij gezinsleden welke de e-mail delen?
In de schaakwereld gebeurd dit meermaals. Ook voor de overheid gebruiken gezinspartners regelmatig hetzelfde e-mailadres.
Ook controleren op ID, wat bij goede normalisatie wel uniek is, zou beter zijn.

Jan
 
- Ariën  -
Beheerder

- Ariën -

17/07/2019 16:17:40
Quote Anchor link
Die zijn al lang tegen deze steen aan gestoten en hebben wel een eigen mailadres.
Bijna iedereen met een eigen telefoon heeft wel een eigen mailadres.

Met unieke mailadressen hou je een hoop ellende buiten de deur.
Gewijzigd op 17/07/2019 16:18:20 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

17/07/2019 23:04:19
Quote Anchor link
Als e-mail of nickname beide een gebruiker kunnen identificeren dan zouden deze beide uniek moeten zijn. Je hebt in ieder geval ten minste één uniek identificerend attribuut nodig.

En wat uniek is... hangt af van hoe je dit controleert. En hoe er gecontroleerd wordt bepaalt de collation. Vergelijk:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
> SELECT ('Henk' COLLATE utf8mb4_general_ci = 'HENK') AS `match`;
+-------+
| match |
+-------+
|     1 |
+-------+
1 row in set (0.00 sec)

> SELECT ('Henk' COLLATE utf8mb4_bin = 'HENK') AS `match`;
+-------+
| match |
+-------+
|     0 |
+-------+
1 row in set (0.00 sec)


Standaard is de collation voor databases, tabellen en kolommen case insensitive. Dus als je een account met nickname Henk hebt, en een met HENK, grote kans dat er dan verwarring tussen de twee ontstaat. Met deze constructie betrek je ook het wachtwoord in de identificatie van een gebruiker, en dat lijkt mij ook niet echt wenselijk.

Wat mij verontrust is dat je wachtwoorden in de query vergelijkt. Ik hoop van harte dat deze versleuteld zijn opgeslagen, bijvoorbeeld met password_hash(). Dit zou dan ook moeten inhouden dat je deze controleert met password_verify(). Op dit moment zijn je wachtwoorden mogelijk niet eens case sensitive!
Gewijzigd op 17/07/2019 23:06:06 door Thomas van den Heuvel
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.