hallo ik ben bezig met een simpel forum script maar ik heb een probleem met mijn login script, Het script logt je zoizo in, maakt niet uit welk wachtwoord je gebruikt.
Ik heb al geprobeerd met een strcmp() de inkomende wachtwoorden en de wachtwoorden uit de database the vergelijken maar dat maakt niks uit hij logt je gewoon in.
Is er iemand die een andere manier kan aanbevelen die werkt?
Om te controleren of een formulier verzonden is wordt vaak
if($_SERVER['REQUEST_METHOD'] == "POST")
gebruikt.
Waarom buiten de query mysqli_real_escape_string gebruiken?
Wat is het nut van regel 11?
Je vergelijking op regel 20 begrijp ik niet goed.
Je kunt toch controleren of er 1 resultaat is op basis van email / wachtwoord?
Als dat namelijk het geval is, is de combinatie juist. Anders onjuist.
Mag er voor een header een echo zitten? Is het sowieso zinvol (omdat bij een header een nieuwe pagina wordt aangeroepen?)
If you rely on strcmp for safe string comparisons, both parameters must be strings, the result is otherwise extremely unpredictable.
Ben je nagegaan dat beide elementen strings zijn?
Daarnaast: mzou je voor het vergelijken van crypts niet beter hash_equals() kunnen gebruiken (let op vereiste PHP versie)?
Zoals Obelix en Idefix al aangaf rammelt de logica van de code een beetje. Je controleert 2x het wachtwoord, die tweede keer is niet nodig omdat je dit al in de query doet? Even los van het feit dat je eerst escaped-voor-invoeging-in-de-query, en dan een crypt er overheen gooit :/. Het geven van hints wat er mis is met je logininformatie (ww verkeerd ingevoerd?) is ook not done.
Hoe dan ook, op een of andere manier wordt ten onrechte geconstateerd dat foutieve login-informatie klopt. Dit kan maar op een aantal (tweetal?) plaatsen zitten.
Sloop die header er tijdelijk uit, zodat er kan zien wat er tijdens het inloggen gebeurt, anders zijn je meldingen meteen weg...
Weet je ook zeker dat het misgaat, en blijft er geen sessie-data hangen van een vorige login of zoiets sufs? Hoe log je uit? Etc. Tijd om eens te gaan graven in je eigen code.