login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Functie inloggen - beginnersvraag

Offline sjemmie - 25/07/2006 08:53 (laatste wijziging 25/07/2006 08:55)
Avatar van sjemmieNieuw lid Ik heb een functie om in te loggen

  1. <? public function login($p_sLoginnaam, $p_sWachtwoord)
  2. {
  3. $bResult = false;
  4. $objDB = clsDBSingleton::Instantiate();
  5. $this->m_sLoginnaam = $p_sLoginnaam;
  6. $this->m_sWachtwoord = $p_sWachtwoord;
  7. $sSQL = "SELECT * from gebruiker where login = '".$p_sLoginnaam."' AND wachtwoord = '".$p_sWachtwoord."'";
  8.  
  9. try
  10. {
  11. if ($objDB->executeSQL($sSQL))
  12. {
  13. if(!$objDB->eof())
  14. {
  15. $this->m_sLoginnaam["login"] = $rs["login"];
  16. $this->m_sWachtwoord["wachtwoord"] = $rs["wachtwoord"];
  17. $bResult = true;
  18. $objDB->dbClose();
  19. }
  20. }
  21. }
  22.  
  23. catch (Exception $e)
  24. {
  25. // iets ging fout, database exception
  26. throw new Exception ("clsGebruikerList::login\n".$e->getMessage(), $e->getCode());
  27. }
  28. return $bResult;
  29. }?>


En zo roep ik de functie op

  1. <? if((isset($_POST["userlogin"]))&&(isset($_POST["wachtwoordlogin"])))
  2. {
  3. $userlogin=$_REQUEST["userlogin"];
  4. $wachtwoordlogin=md5($_REQUEST["wachtwoordlogin"]);
  5.  
  6. try
  7. {
  8. $objLogin = new clsGebruikersList();
  9. $bLogin = $objLogin->login($userlogin,$wachtwoordlogin);
  10. if($bLogin===true)
  11. {echo "juist";}
  12. else
  13. {echo "onjuist";}
  14. }
  15. catch (Exception $e)
  16. {
  17. // iets ging fout, database exception
  18. $e->getMessage();
  19. $e->getCode();
  20. }
  21.  
  22. }
  23. ?>


Maar of ik nu juiste of onjuiste gegevens invoer , ik beland steeds inde else statement van "onjuist"
Ik heb nog veel te leren ,dus kan iemand me vertellen wat ik verkeerd doe in mn login functie ?

4 antwoorden

Gesponsorde links
Offline Thomas - 25/07/2006 12:22
Avatar van Thomas Moderator Zet $sSQL eens in een die()-statement, om te kijken hoe je query er uit ziet? En controleer dit met je database, of dit resultaten op zou moeten leveren.
Offline sjemmie - 25/07/2006 13:50
Avatar van sjemmie Nieuw lid de sql klopt
Offline Thomas - 25/07/2006 15:56
Avatar van Thomas Moderator Zet elders in je code or die()-statements om te kijken waar bepaalde if-statements false opleveren waar deze true zouden moeten zijn.

In plaats van:
  1. ...
  2. $bLogin = $objLogin->login($userlogin,$wachtwoordlogin);
  3. if($bLogin===true)
  4. ...


zou het volgende ook voldoende moeten zijn:
  1. ...
  2. if($objLogin->login($userlogin,$wachtwoordlogin))
  3. ...


Je hoeft een boolean (true, false) niet zelf nog eens te controleren of deze true of false is...
Offline sjemmie - 25/07/2006 18:04 (laatste wijziging 28/07/2006 19:15)
Avatar van sjemmie Nieuw lid bedankt voor je hulp, het werkt, ook met nog een kleine aanvulling op de functie zelf ;)

In mn functie heb ik een if else statement toegepast en ik was een fetchArray() vergeten toe te voegen

De functie ziet er dus nu als volgt werkend uit:

  1. <?
  2. public function login($p_sLoginnaam, $p_sWachtwoord)
  3. {
  4. $bResult = false;
  5. $objDB = clsDBSingleton::Instantiate();
  6. $this->m_sLoginnaam = $p_sLoginnaam;
  7. $this->m_sWachtwoord = $p_sWachtwoord;
  8. $sSQL = "SELECT * from gebruiker where login = '".$p_sLoginnaam."' AND wachtwoord = '".$p_sWachtwoord."'";
  9.  
  10. try
  11. {
  12. if ($objDB->executeSQL($sSQL))
  13. {
  14. //als de inloggegevens over1komen met de gegevens in de database, geef een 'true' terug
  15. if(!$objDB->eof())
  16. {
  17. //de fetchArray(); vergat ik toe te voegen
  18. $rs = $objDB->fetchArray();
  19. $this->m_sLoginnaam["login"] = $rs["login"];
  20. $this->m_sWachtwoord["wachtwoord"] = $rs["wachtwoord"];
  21. $bResult = true;
  22. }
  23. //als de inloggegevens niet kloppen, geef een false terug
  24. else
  25. {
  26. $bResult = false;
  27. }
  28. $objDB->dbClose();
  29. }
  30.  
  31. }
  32.  
  33. catch (Exception $e)
  34. {
  35. // iets ging fout, database exception
  36. throw new Exception ("clsLoginList::login\n".$e->getMessage(), $e->getCode());
  37. }
  38. return $bResult;
  39. }
  40. ?>


Zo heb ik het opgelost, als iemand denkt dat het beter kan, vertel het me maar, ook ik ben nog lerende.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.21s