• Login
  • Register
  • Zoek
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • More Options

ICTscripters

Dé plek voor IT

Dé plek voor IT

Login

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • Het Grote Vibe Code Topic

    Syntax 25 maart 2026 om 11:46
  • PWYL source gezocht

    Syntax 25 maart 2026 om 11:44
  • Ictscripters Chat

    Frenzo.Brouwer 9 maart 2026 om 21:31
  • Help testers nodig voor android app Urgent

    Servertjee 20 februari 2026 om 12:07
  • Partner Gezocht om meerdere NFT Collecties op Open Sea te Plaatsen

    Servertjee 20 februari 2026 om 12:06
  • Afspraken systeem met planbeperking

    Jeffrey.Hoekman 20 februari 2026 om 11:52
  • Developer Gezocht

    Servertjee 19 februari 2026 om 17:31
  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Servertjee 18 februari 2026 om 16:57

Marktplaats

  • Domeinportfolio uitkuis

    Syntax 19 maart 2026 om 10:18
  • Heel wat sterke domeinen > 2 letters, 3 letters, premiums

    Michael DW 11 maart 2026 om 12:12
  • 367 Nieuwe Domeinnamen Februari 2026

    shiga 1 maart 2026 om 14:50

OOP Denkwijze Inlogsysteem

  • Victor
  • 11 juni 2013 om 21:34
  • Victor
    Master
    Ontvangen Reacties
    102
    Berichten
    1.680
    • 11 juni 2013 om 21:34
    • #1

    Beste ICT'ers,

    Ik ben op zoek naar een tutorial of script van een inlogsysteem die in OOP is gemaakt.
    Er is geen budget beschikbaar, het enige doel van het script is de denkwijze te leren begrijpen.
    Heb al op het internet gezocht, maar vind veel tegenstrijdigheid.
    Ik heb deze tutorial gevolgd. Hierin staat dat elke class een zelfstandig naamwoord is, bijvoorbeeld 'User' dus. Nu zie ik veel scripts op internet die dit niet volgen.

    Hoe moet het wel? Een opbouw in classes zou al genoeg zijn.


    Groeten,

    Victor

    Met vriendelijke groet,

    Victor
    Beheerder ICTscripters

  • Stefan.J
    Master
    Ontvangen Reacties
    9
    Berichten
    2.358
    • 11 juni 2013 om 21:51
    • #2

    Wat er in de tutorial wordt gezegd over de zelfstandige naamwoorden is waar. Alle objecten zijn object (Sherlock), en objecten duid je aan met zelfstandige naamwoorden.

    Als jij een loginsysteem maakt heb je te maken met een user. Dit object zul je vrijwel zeker nodig hebben. De user zal alleen hoogstwaarschijnlijk een domeinobject zijn, en daarom niet zelf de methode login() kennen. Kun je geen andere casus bedenken? Deze is een beetje te technisch.

  • Victor
    Master
    Ontvangen Reacties
    102
    Berichten
    1.680
    • 11 juni 2013 om 22:06
    • #3

    Ik snap de simpele dingen wel en wil graag verder naar wat nieuws. Het is nu alleen zo dat ik niet weet hoe te beginnen. Ik zou natuurlijk allemaal classes aan kunnen maken.

    User

    Premium_User extends User

    Maar op internet staat bijvoorbeeld gewoon:

    Inloggen

    Registreren


    Ik zou graag eens een goed voorbeeld zien zodat ik wat naslag werk heb.

    Met vriendelijke groet,

    Victor
    Beheerder ICTscripters

  • Stefan.J
    Master
    Ontvangen Reacties
    9
    Berichten
    2.358
    • 11 juni 2013 om 22:55
    • #4

    Oké, we kunnen eens een poging wagen.

    We hebben in ieder geval een gebruiker, en deze zal een gebruikersnaam, wachtwoord en bijvoorbeeld e-mail adres hebben. Daarnaast hebben we om in te loggen een loginformulier. Als dit formulier wordt verzonden, levert dit een request op. Het request dient beantwoord te worden met een response. Laten we voor het afhandelen en het beantwoorden van requests een controller in het leven roepen (denk aan MVC). Dan kunnen we nu maken, een user en een repository waar de users uit worden gehaald en in worden opgeslagen:

    PHP
    class User {
         private $username;
         private $password;
         private $email;
    
    
         public function getUsername() {
              return $this->username;
         }
         
         public function getPassword() {
             return $this->password;
         }
    
    
         public function getEmail() {
             return $this->email;
         }
    }
    
    
    class UserRepository {
        
        public function getUserByUsername($username) {
            // Get user from some datasource
        }
    }
    Toon Meer

    Vervolgens een representatie van de request, response en de view:

    PHP
    class Request {
            
        public function getParameter($name) {
            return ($_SERVER['REQUEST_METHOD'] == 'POST') ? $_POST[$name] : $_GET[$name];
        }
        
        public function isPostRequest() {
            return $_SERVER['REQUEST_METHOD'] == 'POST';
        }
    }
    
    
    class Response {
        
        public function writeResponse(View $view) {
            $view->render();
        }
    }
    
    
    class View {
        private $viewName;
        private $viewData;
        
        function __construct($viewName, $viewData) {
            $this->viewName = $viewName;
            $this->viewData = $viewData;
        }
    
    
        public function render() {
            extract($this->viewData);
            include('views'. $this->viewName .'.php');
        }
    }
    Toon Meer

    En dan nog de echte code, de UserController:

    PHP
    class UserController {
        
        private UserRepository $userRepository;
        
        public function login($request, $response) {
            $succeed = false;
            if($request->isPostRequest()) {
                $user = $this->userRepository->getUserByUsername($request->getParameter('username'));
                
                if($user->getPassword() == $request->getParameter('password')) {
                    $succeed = true;
                }
                
                $response->writeResponse(new View('user/login', array('succeed' => $succeed)));
            }
        }
    }
    Toon Meer

    Allemaal 'dingen', zoals je ziet. Kun je hier iets mee?

  • Tim
    Enlightened
    Ontvangen Reacties
    77
    Berichten
    3.686
    • 11 juni 2013 om 23:13
    • #5

    Hallo,

    Probeer eens CodeIgniter in samenhang met een inlog tutorial voor het framework.
    Dat gaat dan mooi in samenhang met wat Stefan zojuist heeft uitgelegd.

    Mvg,
    Tim

    Master student IT-recht en Master student Ondernemingsrecht & software ingenieur
    My Personal profile
    My professional profile (LinkedIn/CV)

  • Victor
    Master
    Ontvangen Reacties
    102
    Berichten
    1.680
    • 12 juni 2013 om 15:36
    • #6

    Okee, bedankt! Ik heb nu al een beter idee van hoe ik verder moet gaan. :)

    Ik heb nu even wat geprobeerd met het MVC pattern. Denk ik nu in de juiste richting? Dit is natuurlijk wel de absolute basis en de class User heb ik bijvoorbeeld nog niet toegevoegd.

    index.php

    PHP
    <?php 
    
    
    include 'controller/loginController.class.php';
    
    
    ?>
    
    
    <!DOCTYPE html>
    
    
    <head>
    	<title></title>
    </head>	
    
    
    <body>
    
    
    <?php
    
    
    $loginController = new Login_Controller();
    $loginController->uitvoeren();
    
    
    ?>
    
    
    </body>
    
    
    </html>
    Toon Meer


    controller/loginController.class.php

    PHP
    <?php
    
    
    include 'model/loginModel.class.php';
    
    
    class Login_Controller {
    
    
    	public $loginModel;
    	
    	public function __construct() {
    
    
    		$this->loginModel = new Login_Model();
    
    
    	}
    	
    	public function uitvoeren() {
    	
    		if($this->loginModel->login() == TRUE)
    		{
    			include 'view/na.php';
    		}
    		else
    		{
    			include 'view/voor.php';
    		}
    	
    	}
    
    
    }
    
    
    ?>
    Toon Meer


    model/loginModel.class.php

    PHP
    <?php
    
    
    class Login_Model {
    
    
    	public function login() {
    	
    		return TRUE; // Hier komt het checken van gegevens met database
    	
    	}
    
    
    }
    
    
    ?>
    Toon Meer

    En natuurlijk een voor en na het inloggen pagina.

    Met vriendelijke groet,

    Victor
    Beheerder ICTscripters

    Bewerkt één keer, laatst door victor (12 juni 2013 om 20:44).

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!

Maak een account aan Login

ICT Nieuws

  • Samsung zal miljoenen verdienen aan Apple iPhone Fold dankzij zijn 12GB RAM

    ICTscripters 11 maart 2026 om 22:42
  • Apple heeft zojuist iOS 26.4 Beta 4 vrijgegeven: hier is de verwachte lanceerdatum.

    ICTscripters 11 maart 2026 om 12:01
  • Kritieke kwetsbaarheid in Nginx UI bedreigt gevoelige data

    ICTscripters 10 maart 2026 om 18:29

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37

Gebruikers die dit topic bekijken

  • 1 Gasten
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacy Policy
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen | Beste Zetes eid kaartlezer webshop
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design