zegt dat username en password altijd klopt.
Ik was de heletijd bezig met mijn login script maar ik deed dus altijd mijn goede wachtwoord dus nooit getest, als ik een verkeerd wachtwoord had ingevuld dat de error dan zou verschijnen. nee hij logt dan nog steeds in.
dit is mijn login functie..
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
function login($username, $password) {
global $con;
$user_id = user_id_from_username($username);
$username = sanitize($username);
$password = md5($password);
return mysqli_query($con, "SELECT `user_id` FROM `users` WHERE `username` = '$username' AND `password` = '$password'") ? $user_id : false;
}
?>
function login($username, $password) {
global $con;
$user_id = user_id_from_username($username);
$username = sanitize($username);
$password = md5($password);
return mysqli_query($con, "SELECT `user_id` FROM `users` WHERE `username` = '$username' AND `password` = '$password'") ? $user_id : false;
}
?>
dit is error handeling..
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$login = login($username, $password);
if ($login == false) {
$error[] = 'This username / password combination is incorrect.';
}
?>
$login = login($username, $password);
if ($login == false) {
$error[] = 'This username / password combination is incorrect.';
}
?>
hij geeft geen error mee maar hij logt gewoon in.
En wat geeft mysqli_query() terug?
False bij mislukken.
Maar bij niks gevonden geeft ie GEEN false want de query zelf is niet mislukt.
Toevoeging op 15/09/2014 17:32:04:
Oooh wow. dit vind ik raar want het was natuurlijk weer dat ik
moest doen. ik dacht dat ik dat eerder al had gedaan sorry jongens
Is het al opgelost?
Snelle Jaap ja alleen kan het nou niet zo snel meer bekijken wat het was ik zal later eff voor je kijken wat het was. naja en voor degene die er wat aan zullen hebben.
Mathieu Posthumus op 22/09/2014 10:57:54:
Snelle Jaap ja alleen kan het nou niet zo snel meer bekijken wat het was ik zal later eff voor je kijken wat het was. naja en voor degene die er wat aan zullen hebben.
Ik ben wel benieuwd.
Waar controleer je of het ingevoerde paswoord gelijk is aan het paswoord in de database ?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
function login($username, $password) {
global $con;
$user_id = user_id_from_username($username);
$username = sanitize($username);
$password = md5($password);
return mysqli_fetch_assoc(mysqli_query($con, "SELECT `user_id` FROM `users` WHERE `username` = '$username' AND `password` = '$password'")) ? $user_id : false;
}
?>
function login($username, $password) {
global $con;
$user_id = user_id_from_username($username);
$username = sanitize($username);
$password = md5($password);
return mysqli_fetch_assoc(mysqli_query($con, "SELECT `user_id` FROM `users` WHERE `username` = '$username' AND `password` = '$password'")) ? $user_id : false;
}
?>
Ik zie hier echt alleen maar toekenningen en geen enkele vergelijking.
Bij het begin had ik de mysqli_fetch_assoc() functie niet gebruikt en dat moest wel. in de tutorial maken die ik gebruik. gebruiken zij dus mysql_ en ik moet van mijn leraal in mysqli_ werken. en in de tutorial gebruiken ze geen result functies daarom.
Wie weet zie je dan fouten tevoorschijn komen.
Ook is het handig om geen md5 te gebruiken, maar dat ligt aan jouw wat je wilt.
Mebus Hackintosh op 23/09/2014 16:57:34:
@Mathieu Posthumus, alleen al het gebruik van backticks (`````````) zorgt voor problemen. Zoek tutorials waar deze niet gebruikt worden en PDO gebruiken is beter (zijn hier op phphulp tutorials over PDO). Je kan ook dit stukje code bovenaan je script neerzetten:
Wie weet zie je dan fouten tevoorschijn komen.
Wie weet zie je dan fouten tevoorschijn komen.
Ik heb eerder een vraag gesteld dat met sql te maken had op dit forum en toen werd mij verteld dat er juist wel backsticks bij moesten om precies te zijn ofz.
Toevoeging op 23/09/2014 17:52:51:
Sam van Broemsen op 23/09/2014 17:01:16:
Ook is het handig om geen md5 te gebruiken, maar dat ligt aan jouw wat je wilt.
Dat heb ik voor nu eff gedaan wanneer ik alles af heb ga ik de password hash pas echt goed zetten. want ik vind het een beetje lastig om het te gebruiken maar mijn leraar die geeft binnenkort een workshop daarover. daarom
Je controleert het resultaat van het uitvoeren van de queryfunctie.
Dat lukt: de query is met succes uitgevoerd.
Maar je controleert niet wat het resultaat van die query is.
Dat kan namelijk zijn: na een met succes uitgevoerde controle weten we dat deze gebruiker of dit wachtwoord niet voorkomt in de database.
dat doe ik voor dat stukje code het is niet mijn gehele code ik vind het overbodig om dat hier te plaatsen. Ward dat controleer ik dus wel.
Hoe moeten we je dan helpen?
Ward het is allemaal al gefixt!?!
Mathieu Posthumus op 23/09/2014 17:51:52:
Ik heb eerder een vraag gesteld dat met sql te maken had op dit forum en toen werd mij verteld dat er juist wel backsticks bij moesten om precies te zijn ofz.
Toevoeging op 23/09/2014 17:52:51:
Dat heb ik voor nu eff gedaan wanneer ik alles af heb ga ik de password hash pas echt goed zetten. want ik vind het een beetje lastig om het te gebruiken maar mijn leraar die geeft binnenkort een workshop daarover. daarom
Mebus Hackintosh op 23/09/2014 16:57:34:
@Mathieu Posthumus, alleen al het gebruik van backticks (`````````) zorgt voor problemen. Zoek tutorials waar deze niet gebruikt worden en PDO gebruiken is beter (zijn hier op phphulp tutorials over PDO). Je kan ook dit stukje code bovenaan je script neerzetten:
Wie weet zie je dan fouten tevoorschijn komen.
Wie weet zie je dan fouten tevoorschijn komen.
Ik heb eerder een vraag gesteld dat met sql te maken had op dit forum en toen werd mij verteld dat er juist wel backsticks bij moesten om precies te zijn ofz.
Toevoeging op 23/09/2014 17:52:51:
Sam van Broemsen op 23/09/2014 17:01:16:
Ook is het handig om geen md5 te gebruiken, maar dat ligt aan jouw wat je wilt.
Dat heb ik voor nu eff gedaan wanneer ik alles af heb ga ik de password hash pas echt goed zetten. want ik vind het een beetje lastig om het te gebruiken maar mijn leraar die geeft binnenkort een workshop daarover. daarom
Weet niet wie deze persoon is die zei dat je beter backticks kon gebruiken, maar in één van je andere topics word er ook al gevraagd waarom je backticks gebruikt: http://www.phphulp.nl/php/forum/topic/van-mysql-naar-mysqli/95886/#689008
En dan ook nog eens door een Moderator.
Dat terzijde, als je niet meer code post wat relevant zou kunnen zijn kunnen we je niet verder helpen of maakt het dat voor ons stukken lastiger, terwijl dat als je al eens wat meer code had geplaatst we er nu al misschien uit hadden kunnen zijn met wat het probleem is.
En nogmaals wil ik zeggen dat het misschien handig is als je eerst nog wat MySQL/PDO/PHP tutorials doorneemt. En het liefst niet waar backticks in voorkomen en tutorials die niet ouder zijn dan ~3 jaar.
Gewijzigd op 23/09/2014 22:16:35 door Mebus Hackintosh
Tevens wil ik iedereen er op wijzen dat het probleem in dit topic 2 weken geleden al is opgelost en hij alleen nog hier staat door een onnodig bump bericht van snelle jaap. Gelieve alleen kaar reageren als je iets significants kan bijdragen aan de code van de topicstarter.
Wouter J op 23/09/2014 23:49:22:
Een moderator heeft niet meer of minderbkennis van php dan een normale gebruiker, dus dat maakt geen verschil.
Tevens wil ik iedereen er op wijzen dat het probleem in dit topic 2 weken geleden al is opgelost en hij alleen nog hier staat door een onnodig bump bericht van snelle jaap. Gelieve alleen kaar reageren als je iets significants kan bijdragen aan de code van de topicstarter.
Tevens wil ik iedereen er op wijzen dat het probleem in dit topic 2 weken geleden al is opgelost en hij alleen nog hier staat door een onnodig bump bericht van snelle jaap. Gelieve alleen kaar reageren als je iets significants kan bijdragen aan de code van de topicstarter.
Dat deed ik, gebruik geen backticks.
Wouter J op 23/09/2014 23:49:22:
Een moderator heeft niet meer of minderbkennis van php dan een normale gebruiker, dus dat maakt geen verschil.
Tevens wil ik iedereen er op wijzen dat het probleem in dit topic 2 weken geleden al is opgelost en hij alleen nog hier staat door een onnodig bump bericht van snelle jaap. Gelieve alleen kaar reageren als je iets significants kan bijdragen aan de code van de topicstarter.
Tevens wil ik iedereen er op wijzen dat het probleem in dit topic 2 weken geleden al is opgelost en hij alleen nog hier staat door een onnodig bump bericht van snelle jaap. Gelieve alleen kaar reageren als je iets significants kan bijdragen aan de code van de topicstarter.
Sorry hoor, was gewoon benieuwd of het was opgelost en hoe. Zo kunnen we allemaal wat bijleren toch. Ofniet.