• 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

  • Beta-testers gezocht voor Crypto-oefenplatform

    Syntax 29 januari 2026 om 16:11
  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Syntax 19 januari 2026 om 09:34
  • Developer Gezocht

    Mikevdk 10 januari 2026 om 18:57
  • Op zoek naar de legends

    Syntax 5 januari 2026 om 13:50
  • [FREE] WeFact Hosting module

    Jeroen.G 13 oktober 2025 om 14:09
  • Help testers nodig voor android app Urgent

    urgentotservices 26 september 2025 om 10:21
  • Versio vervanger

    Jeroen.G 25 augustus 2025 om 15:56
  • Afspraken systeem met planbeperking

    Lijno 1 augustus 2025 om 23:04

Marktplaats

  • 321 Nieuwe Domeinnamen December 2025

    shiga 1 januari 2026 om 10:26
  • Meerdere mafia game template te koop

    Syntax 26 december 2025 om 00:07
  • Van een pixelige afbeelding naar een strakke, moderne website

    Syntax 21 december 2025 om 17:05

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

  • Fijne feestdagen

    tcbhome 28 december 2025 om 13:55
  • Kritieke update voor Really Simple Security-plug-in

    K.Rens 16 november 2024 om 16:12
  • ING Nederland streeft naar ondersteuning van Google Pay tegen eind februari

    K.Rens 2 november 2024 om 16:09

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