Opzet OOP
sinds kort ben ik bezig met OOP, maar ik vind vooral de opzet moeilijk, heb de tut al gelezen.
Maar nu heb ik een opzet gemaakt voor een paar systemen dat ik ga gebruiken in mijn website maar willen jullie even kijken of mijn opzet goed is?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Inlog systeem
Authentic (let niet op die naam)
username
password
email
ip
date
- Setters
- Getters
Registreren
- checkUsername
Check of de gebruikersnaam niet in gebruik is, return FALSE or TRUE
- checkMail
Checkt of het mail-adres niet in gebruik is, return FALSE or TRUE
- similarPassword
Checkt of de 2 wachtwoorden gelijk aan elkaar zijn, return FALSE or TRUE
- saveAccount
saved het account in de database, als alle checks zijn uitgevoerd en allemaal TRUE geven.
Inloggen
- checkUsernamePasswordcomb
Checkt of de combinatie username/password goed is
Security
safetyValue
value
- setValue
- dbSecurityCheck
- Tegen mysqlinjectie d.m.v. mysql_real_escape_string()
- htmlSecurityCheck
- Tegen XSS d.m.v htmlspecialchars();
Ban-systeem
ip
time
-setIP
-setTime
-addIP
-checkIP
-deleteIP
Authentic (let niet op die naam)
username
password
ip
date
- Setters
- Getters
Registreren
- checkUsername
Check of de gebruikersnaam niet in gebruik is, return FALSE or TRUE
- checkMail
Checkt of het mail-adres niet in gebruik is, return FALSE or TRUE
- similarPassword
Checkt of de 2 wachtwoorden gelijk aan elkaar zijn, return FALSE or TRUE
- saveAccount
saved het account in de database, als alle checks zijn uitgevoerd en allemaal TRUE geven.
Inloggen
- checkUsernamePasswordcomb
Checkt of de combinatie username/password goed is
Security
safetyValue
value
- setValue
- dbSecurityCheck
- Tegen mysqlinjectie d.m.v. mysql_real_escape_string()
- htmlSecurityCheck
- Tegen XSS d.m.v htmlspecialchars();
Ban-systeem
ip
time
-setIP
-setTime
-addIP
-checkIP
-deleteIP
Gewijzigd op 01/01/1970 01:00:00 door Peter Wessels
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
class gebruiker{
//hierin haal je gwn de info van de gebruiker op
//hierin pas je info aan
}
class authentic{
// hierin verwerk je alles en als de gebruiker ingelogd is maak je gebruiker aan met andere class
->omdat je waarschijnlijk ook profielen enzo zal moeten weergeven..
// hier sla je maak je een functie die een $var met class gebruiker kan opslaan
}
?>
class gebruiker{
//hierin haal je gwn de info van de gebruiker op
//hierin pas je info aan
}
class authentic{
// hierin verwerk je alles en als de gebruiker ingelogd is maak je gebruiker aan met andere class
->omdat je waarschijnlijk ook profielen enzo zal moeten weergeven..
// hier sla je maak je een functie die een $var met class gebruiker kan opslaan
}
?>
Ben niet zeker, want ben ook nog maar begonnen.
Hopelijk kun je hier wat mee ;)
Gewijzigd op 01/01/1970 01:00:00 door Manaus
Bannen op IP? Niet aan te raden.
Waarop wel dan?
Verder heb ik nog wat suggesties voor de user class. Ten eerste zou ik er voor zorgen dat er ook opgeslagen kan worden als de gebruiker al bestaat, zodat je de mogelijkheid hebt dingen aan te passen. De functie similarPassword vind ik persoonlijk een beetje 'over-the-top'. En sla je trouwens het ip adress op van de gebruikers?
Geloof dat dat het voor zo ver wel was :P
Succes
Ik zou de tutorial nog een keertje doorlezen, want je hebt het idee nog niet helemaal te pakken.
Dan snap ik helemaal niets meer van, ik heb nou zoveel tutorials doorgelezen. Misschien wil jij een voorbeeld geven, van mijn classes?
Om je gebruikers op te slaan heb je een opslag-systeem nodig. Okee, je hebt een database, maar dat weet je User-klasse lekker niet. Daarvoor hebben we een klasse UserStorage. UserStorage kan gebruikers opslaan en ophalen, en heeft dus methods als getUserByID(int $id) en put(User $user) waarmee hij instanties van de User-klasse opslaat en terughaalt. Ook heeft hij een method getUserByNameAndPassword($name, $password) waarmee je een gebruiker kan ophalen met de combinatie van gebruikersnaam & wachtwoord. Klopt de combinatie niet, dan is er geen gebruiker die voldoet aan de voorwaarden, en geeft de method dus 'false' terug.
Nu zou je nog een klasse kunnen maken die een sessie representeert, maar PHP doet al een aardig trucje wat betreft sessies. De instantie van de ingelogde User in $_SESSION stoppen zal voorlopig wel voldoen.
Security is een klasse, het is een verzamelnaam, niets concreets zoals bijvoorbeeld User of Session wel is. Zolang je er 'een' voor kan denken, is het bijna altijd geschikt om een klasse van te maken. "Een Security" klinkt niet, gaat niets worden :)
De beveiliging tegen SQL Injection zou ik afvangen door prepared statements te gebruiken of beveiliging in je al dan niet zelfgemaakte database-klasse te stoppen. Het hoort nergens anders thuis aangezien de beveiligingsmaatregelen afhangen van de opslagmethode die je gebruikt. XSS beveiliging zou ik ook niet in een algemene klasse doen maar ergens in de buurt van je HTML, je presentatie, regelen aangezien het specifiek daar nodig is.
De ban-klasse kan je daarna nog doen, wanneer je de inlogprocedure gaat vangen in een klasse. Maar daar heb je eerst die gebruikers-klasse voor nodig, dus ik zou daarmee beginnen.
Kijk ook wat rond in deze categorie van het forum, er staan hier al een heleboel voorbeelden van hoe je gemakkelijk kan beginnen. Autheticatie is al wat lastiger, als je wilt beginnen met OOP omdat je het wilt begrijpen als hoofdzakelijk doel, dan raad ik je aan om te beginnen met iets simpels als een gastenboek. Klinkt simpel en cliché, maar volgens mij vind je daar heel goed de basis en niets meer dan de uitgeklede basis in terug.
Peter schreef op 10.08.2008 20:17:
Gebruiker?Waarop wel dan?