login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[OOP-PHP] Login systeempje (Opgelost)

Offline shibble - 21/05/2008 14:47 (laatste wijziging 21/05/2008 14:53)
Avatar van shibbleMySQL interesse Hallo allemaal,

Ik ben net begonnen met OOP, alleen nu zit ik al vast.
Ik weet ook niet of ik het goed doe maar ga er wel vanuit.
Ik ben bezig met een loginsysteempje alleen weet ik niet hoe ik dat nu dus verder kan maken.

users.class.php:
http://shibble....class.phps

hoe kan ik hem nu verder erop uit brijden doe ik het fout of doe ik het wel goed...

Mvg,

shibble

14 antwoorden

Gesponsorde links
Offline marten - 21/05/2008 14:54
Avatar van marten Beheerder Wat ik mezelf altijd aanleer om alleen de get methodes public te maken. Dus bv je load methode maak je private ( of protected ) en probeer je vervolgens de data die hij oplevert met een get terug te sturen.
Offline shibble - 21/05/2008 15:05
Avatar van shibble MySQL interesse omdat ik me load hoogstwaarschijnlijk nergens anders zal gebruiken dan binnen de users class is dat dus beter om private te maken, maar de set functies ook private/protected maken of??? misschien iets meer uitleg erover..

maar op deze manier doe ik het dus niet fout?
Offline Stijn - 21/05/2008 22:00
Avatar van Stijn PHP expert Hierbij geef ik enkele opmerkingen en tips zodat je een goede OO structuur hebt.

1) Maak al je properties private. Je kan de waarde ophalen via getters of een getter.
2) Al je properties zijn waarden van een rij uit je database.
3) Je constructor heeft weinig nut want je properties zijn al leeg.
4) Je gebruikt object overloading, blijf dit gebruiken.

Nu komen de tips.

1) Maak een database clas (data objecten) voor de gebruikers tabel.
2) In je User class pas je de constructor aan. Je geeft hem de parameter $userid mee en roept de methode load aan.
3) Een login class doet beroep op tip 1 (dit is structuur) en geeft enkele methodes aan de programmeur om in te loggen.

Even wat code fragmentjes geven ter illustratie:

  1. class MySQL implements DatabaseInterface
  2. { //een interface gebruiken kan handig zijn als je andere Databases als PostgreSQL enzo wilt gebruiken.
  3. ...
  4. }


  1. class RasGebruikers implements DataObjectInterface
  2. { //zelfde als hierboven
  3.  
  4. private $db;
  5. ...
  6.  
  7. public function __construct( MySQL $db ) //ipv MySQL kan je ook de interface meegeven
  8. { ...}
  9.  
  10. ...
  11.  
  12. }


  1. class User
  2. {
  3.  
  4. private $rasGebruiker;
  5.  
  6. ....
  7.  
  8. public function __construct( RasGebruikers $rg )
  9. { ... }
  10.  
  11. ...
  12.  
  13. }


En de class Login kan dan ook hiervan gebruik maken. De Login class kan ook een opslag class gebruiken om bijvoorbeeld cookies te plaatsen of sessies.
Offline shibble - 22/05/2008 00:50
Avatar van shibble MySQL interesse ik snap ernu fftjes helmaaaaal niks meer met dat databaseinterface en implements 
Offline Stijn - 22/05/2008 01:40
Avatar van Stijn PHP expert Gebruik dan geen interfaces. Het zorgt voor meer structuur.
Offline shibble - 29/05/2008 00:08 (laatste wijziging 29/05/2008 00:31)
Avatar van shibble MySQL interesse Ik heb het nu dus zo werkend gekregen:

login.php:
http://shibble....login.phps

users.class.php:
http://shibble....class.phps

en

config.inc.php:
http://shibble....g.inc.phps

doe ik het zo ook goed?
Offline Stijn - 29/05/2008 00:23
Avatar van Stijn PHP expert Er is niets verandert in je user class en je login.phps bestaat niet.
Offline shibble - 29/05/2008 00:31
Avatar van shibble MySQL interesse Owh mijn fout had de verkeerde links nu zijn het de goede links !
Offline jvs - 29/05/2008 11:04
Avatar van jvs HTML beginner Ik ken nog niet zo heel veel van OOP maar volgens mij maak je een beetje een omweg. Je kan toch beter werken met een DB classe die je aanroept in je login classe want nu moet je eerst connectie maken en dan kan je pas je login object aanmaken... Of zie ik dat verkeerd (kan want ik ben er nog niet zo lang mee bezig). Je sluit trouwens nergens je db connectie in princiepe is dit niet echt nodig maar is het niet beter dat je dit wel doet?
Offline shibble - 30/05/2008 08:01
Avatar van shibble MySQL interesse over dat db classe dat vertelde stijn volgens mij ook al =) moet er binnenkort maar is ff 1 maken dan vandaag ofzo maar nu eerst slapen maar het gaat mij er niet om of ikeen omweg maak of wat dan ook waar het mij omgaat is, of ik het goed doe.
Offline jvs - 30/05/2008 13:09
Avatar van jvs HTML beginner Als je een omweg maakt doe je het niet goed denk ik  dat is juist heel het princiepe van OOP
Offline shibble - 30/05/2008 14:00 (laatste wijziging 10/06/2008 15:20)
Avatar van shibble MySQL interesse UPDATE

Eindelyk heb ik dan een Database class aangemaakt tijd niet gecodeerd, maar moet nu er hard mee aan de slag, klopt mijn database class zo of.. moet het nog anders..

http://195.240....class.phps
Offline nemesiskoen - 10/06/2008 15:34
Avatar van nemesiskoen Gouden medaille

PHP expert
Het doet niet echt veel hé... de naam $table is ook niet echt strategisch gekozen.
Offline jvs - 11/06/2008 13:59
Avatar van jvs HTML beginner Als je de class enkel gaat gebruiken om te connecteren met je databank en om een tabel te selecteren kan je beter gewoon een functie maken. Denk dat het meer de bedoeling is dat objecten kan aanmaken met querie's in, waarop je dan doormiddel van andere functies binnen de class num_rows of fetch array functies mee kan uitvoeren. Het kan zijn dat ik het verkeerd bekijk hoor ben er zelf ook nog niet helemaal in.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.215s