zegt dat username en password altijd klopt.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Mathieu Posthumus

Mathieu Posthumus

15/09/2014 17:07:24
Quote Anchor link
Hey mensen,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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;
    
}

?>


dit is error handeling..

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$login
= login($username, $password);
if ($login == false) {
    $error[] = 'This username / password combination is incorrect.';
}

?>


hij geeft geen error mee maar hij logt gewoon in.
 
PHP hulp

PHP hulp

09/11/2024 03:01:55
 
- SanThe -

- SanThe -

15/09/2014 17:21:57
Quote Anchor link
return mysqli_query(....)

En wat geeft mysqli_query() terug?
False bij mislukken.
Maar bij niks gevonden geeft ie GEEN false want de query zelf is niet mislukt.
 
Mathieu Posthumus

Mathieu Posthumus

15/09/2014 17:26:48
Quote Anchor link
nee hij geeft de user_id mee dat gaat allemaal ook gewoon goed, maar op deze maneer moet ie wanneer ik een fout wachtwoord mee geef false aangeven? dat lijkt mij iniedergeval

Toevoeging op 15/09/2014 17:32:04:

Oooh wow. dit vind ik raar want het was natuurlijk weer dat ik
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
return mysqli_fetch_assoc(mysqli_query(....)) ? $user_id : false;
?>


moest doen. ik dacht dat ik dat eerder al had gedaan sorry jongens
 
Snelle Jaap

Snelle Jaap

22/09/2014 10:32:06
Quote Anchor link
Is het al opgelost?
 
Mathieu Posthumus

Mathieu Posthumus

22/09/2014 10:57:54
Quote Anchor link
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.
 
Snelle Jaap

Snelle Jaap

22/09/2014 11:53:10
Quote Anchor link
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.
 
Pipo Clown

Pipo Clown

22/09/2014 12:42:01
Quote Anchor link
Waar controleer je of het ingevoerde paswoord gelijk is aan het paswoord in de database ?
 
Mathieu Posthumus

Mathieu Posthumus

23/09/2014 09:02:18
Quote Anchor link
Dit is het stukje van het controleren alleen ben ik vergeten wat ik eerst deed :)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
    
}

?>
 
Pipo Clown

Pipo Clown

23/09/2014 09:05:15
Quote Anchor link
Ik zie hier echt alleen maar toekenningen en geen enkele vergelijking.
 
Mathieu Posthumus

Mathieu Posthumus

23/09/2014 09:09:09
Quote Anchor link
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.
 
Mebus  Hackintosh

Mebus Hackintosh

23/09/2014 16:57:34
Quote Anchor link
@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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
ini_set('display_errors', 1); error_reporting(E_ALL);


Wie weet zie je dan fouten tevoorschijn komen.
 
Sam van Broemsen

Sam van Broemsen

23/09/2014 17:01:16
Quote Anchor link
Ook is het handig om geen md5 te gebruiken, maar dat ligt aan jouw wat je wilt.
 
Mathieu Posthumus

Mathieu Posthumus

23/09/2014 17:51:52
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
ini_set('display_errors', 1); error_reporting(E_ALL);


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
 
Ward van der Put
Moderator

Ward van der Put

23/09/2014 18:02:12
Quote Anchor link
Je maakt, nog steeds, dezelfde logicafout.

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.
 
Mathieu Posthumus

Mathieu Posthumus

23/09/2014 19:02:25
Quote Anchor link
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.
 
Ward van der Put
Moderator

Ward van der Put

23/09/2014 19:07:35
Quote Anchor link
Lastig hoor. Een controle werkt niet, maar je wilt de controle niet posten.

Hoe moeten we je dan helpen?
 
Mathieu Posthumus

Mathieu Posthumus

23/09/2014 19:40:41
Quote Anchor link
Ward het is allemaal al gefixt!?!
 
Mebus  Hackintosh

Mebus Hackintosh

23/09/2014 22:11:47
Quote Anchor link
Mathieu Posthumus op 23/09/2014 17:51:52:
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
ini_set('display_errors', 1); error_reporting(E_ALL);


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
 
Wouter J

Wouter J

23/09/2014 23:49:22
Quote Anchor link
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.
 
Mebus  Hackintosh

Mebus Hackintosh

24/09/2014 11:38:44
Quote Anchor link
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.


Dat deed ik, gebruik geen backticks.
 
Snelle Jaap

Snelle Jaap

25/09/2014 11:53:09
Quote Anchor link
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.

Sorry hoor, was gewoon benieuwd of het was opgelost en hoe. Zo kunnen we allemaal wat bijleren toch. Ofniet.
 

Pagina: 1 2 volgende »



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.