Vinnaren i pepparkakshustävlingen!
2020-12-15, 14:29
  #1
Medlem
DataKonnys avatar
Hej, jag behöver hjälp. Jag och min polare håller på att göra en inloggning med hjälp av PHP och SQL. Problemet vi har funnit är att man inte kan logga in om man enbart vill ha siffor i användarnamnet. Vi kan tyvärr inte så mycket om PHP och SQL så vi utgick från en tutorial på youtube. Vi tror att problemet ligger i att koden tror det är en ID som matas in. För det går att logga in med Primär nyckeln men inte med ett användarnamn med enbart siffror. Är det någon som vet hur vi kan lösa detta? Bifogar en länk med koden som vi tror är relevant till problemet. Vi tror problemet kommer redan på rad 3 men vi vet inte hur ska på något sätt åtgärda problemet. Tack på förhand!

https://pastebin.com/RtaXhn15
Citera
2020-12-15, 14:32
  #2
Medlem
SockAccounts avatar
Mja det står ju

Kod:
$field = (is_numeric($user)) ? 'id' 'username'

så om det är nummer tror den du vill logga in med ID och inte namn
Kod:
$field 'username'

lär fixa det, kolla upp https://stitcher.io/blog/shorthand-comparisons-in-php
Du jämnför om det är bara nummer, då blir $field strängen Id, annars username.
Citera
2020-12-15, 14:43
  #3
Medlem
DataKonnys avatar
Vi tänkte också på det. Men vi provade att göra som du tänkte men vi fick ett följdfel att ingenting händer när man trycker sedan logga in. Koden körs då vi får ut en echo i IF satsen men man kommer inte in på sidan. Skriver man medvetet fel lösenord med rätt användarnamn beter den sig som normalt och skriver ut "Sorry, log in failed" precis som vi tänkte. Men skriver man ut rätt användarnamn och lösenord händer ingenting.
Citera
2020-12-15, 15:15
  #4
Medlem
SockAccounts avatar
Svårt att veta exakt utan mer kod.

$user = $this->find($username);


Letar ju efter användaren, och nu via fältet username.
Så om det är true borde det funka

Hur kallar du login metoden?
Är du säker på att inkommande användare/pass inte tappas någonstans
Citera
2020-12-15, 17:34
  #5
Medlem
DataKonnys avatar
Citat:
Ursprungligen postat av SockAccount
Svårt att veta exakt utan mer kod.

$user = $this->find($username);


Letar ju efter användaren, och nu via fältet username.
Så om det är true borde det funka

Hur kallar du login metoden?
Är du säker på att inkommande användare/pass inte tappas någonstans

Vi kom på en tillfällig lösning till problemet, men tack för hjälpen då det behövdes
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback