• 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

  • 350 Nieuwe Domeinnamen Januari 2026

    shiga 1 februari 2026 om 14:21
  • 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

OOP aan het leren

  • FrankY
  • 24 mei 2009 om 16:24
  • Closed
  • FrankY
    Another one bites the dust.
    Ontvangen Reacties
    3
    Berichten
    598
    • 24 mei 2009 om 16:24
    • #1

    Beste mensen ik ben oop aan het leren, nou vroeg ik me af wat er beter kon aan het volgende script:

    PHP
    <?PHP
    ob_start();
    session_start();
    
    
    include("config.php");
    
    
    class Login {
    	var $naam;
    	var $wachtwoord;
    	
    	function login() {
    		$this->naam = $_POST['login'];
    		$this->wachtwoord = $_POST['wachtwoord'];
    		
    		$l = "SELECT *
    				FROM user
    				WHERE naam=". $this->naam ." &&
    				wachtwoord=". $this->wachtwoord ."
    			";
    		$query = mysql_query($l);
    		$sql = mysql_fetch_array($query);
    		$result = mysql_num_rows($query);
    	
    		if($result == "1") {
    			$_SESSION['login'] == $this->naam;
    			$_SESSION['ingelogd'] == TRUE;
    			header("Location: http://www.unitedwar.nl/ingame.php");
    		}
    	}
    }
    
    
    $login = new Login;
    $login->login();
    ob_end_flush();
    ?>
    <form method="POST">
    	<input type="text" name="login" size="25">
    	<input type="password" name="wachtwoord" size="25">
    	<input type="submit" name="submit" value="Login!">
    </form>
    Toon Meer

    Alvast bedankt.

    Bezig met cms:)

  • NielsB
    Junior (Web)Developer
    Berichten
    948
    • 24 mei 2009 om 16:41
    • #2

    Probeer de namen anders te doen van de function of class.
    Ik zelf vind het irritant als je 2 dezelfde namen achter elkaar hebt: $login->login.

    Verder zou je best ook meerdere functions kunnen maken.
    Zoals je dat deed met die query kan je ook makkelijk in functie zetten. Staat netter want dan krijg je meer overzicht.

    Verder ob_start en ob_end_flush hoef je volgens mij niet eens echt te gebruiken, kan iemand mij uitleggen waarom hij dat wel zou moeten, zover ik zie doe je dit alleen als je fout hebt en waardoor de mensen die niet kunnen zien want ze worden dan gelijk doorgestuurd.?

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.

    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML

    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • dragontje124
    Student
    Berichten
    75
    • 24 mei 2009 om 16:43
    • #3

    kan je niet gewoon een constructor gebruiken ofzo (is niet heel goed in OOP)
    zoiets:

    PHP
    class Login { 
        var $naam; 
        var $wachtwoord; 
         
        function _constructor() { 
            $this->naam = $_POST['login']; 
            $this->wachtwoord = $_POST['wachtwoord']; 
             
            $l = "SELECT * 
                    FROM user 
                    WHERE naam=". $this->naam ." && 
                    wachtwoord=". $this->wachtwoord ." 
                "; 
            $query = mysql_query($l); 
            $sql = mysql_fetch_array($query); 
            $result = mysql_num_rows($query); 
         
            if($result == "1") { 
                $_SESSION['login'] == $this->naam; 
                $_SESSION['ingelogd'] == TRUE; 
                header("Location: http://www.unitedwar.nl/ingame.php"); 
            } 
        } 
    }
    Toon Meer


    zodat je met:

    PHP
    $login = new login;


    gelijk al de functie: _constructor uitvoert

  • NielsB
    Junior (Web)Developer
    Berichten
    948
    • 24 mei 2009 om 16:52
    • #4

    Verder is het niet mooier en beter als je gewoon een database class maakt in de config.

    Zodat je dan simpel weg korte code krijg in het script om dingen uit te voeren, o ja nog slimmer is om ook gelijk proberen mysqli te leren.

    Dit aangezien in php 6 mysql eruit wordt gehaald en omdat mysqli veel sneller werkt dan mysql in Object Oriënterend Programmering, Object Orientated Programming (oop).

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.

    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML

    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • FrankY
    Another one bites the dust.
    Ontvangen Reacties
    3
    Berichten
    598
    • 24 mei 2009 om 16:52
    • #5

    Ah oke.. Mooi om te weten:) Maar voor de rest is die wel goeD?

    Bezig met cms:)

  • Darsstar
    Vreemd
    Berichten
    1.173
    • 24 mei 2009 om 16:58
    • #6

    NielsB het is __construct()

    1. een classe is niet gelijk OOP
    2. laat $_GET en $_POST zo veel mogelijk buiten classes, geef ze mee als argumenten, dan kun je deze class voor meerdere doeleinden (her)gebruiken.
    3. niet alles selecteren, je hebt niets nodig, dus haal alleen het id op.
    4. zet niet de naam in een sessie, maar het id.
    5. niet de naam en wachtwoord opslaan in de classe.
    6. de 'var' namespace is voor PHP 4, protected, private en public zijn voor PHP 5 (static ook nog, maar deze kan bij een van de andere drie)

    miauw!

  • dragontje124
    Student
    Berichten
    75
    • 24 mei 2009 om 17:07
    • #7
    Citaat

    NielsB het is __construct()


    ik denk dat je @ dragontje124 bedoelt :P

    Darsstar edit: inderdaad, foutje, sorry niels.

  • Stefan.J
    Master
    Ontvangen Reacties
    9
    Berichten
    2.358
    • 24 mei 2009 om 17:22
    • #8

    Oke, daar gaan we!

    - Maak geen onnodig gebruik van ob_start(): Dit is alleen maar sloom, wanneer je goed programmeert heb je ob_start(); niet nodig om errors te voorkomen.
    - Geef je variabele geen nietszeggende namen. $1 zegt niks.
    - Als je uitvoer van de functionaliteit wilt scheiden, doe het dan goed: Een header is toch echt uitvoer!
    - Gebruik nooit dezelfde functienaam als klassenaam, dan wordt de functie namelijk als de constructor gezien (De hoofdletter voorkomt dat denk ik in het voorbeeld).
    - Encrypt je wachtwoorden!
    - Al eerder gezegd houd de invoer gescheiden van de functionaliteit.
    - MySQLi werd al genoemd: Mijn aanrader is een PDO klasse (evt. een uitbreiding daarop).
    - '$sql = mysql_fetch_array($query);' Deze code gebruik je verder niet meer. Waarom staat hij er dan nog?
    - Ook al eerder gezegd: Go PHP 5! Functies en variabelen zijn tegenwoordig public, private of protected.

    Niet negatief bedoeld, maar dit is nog lang niet OO.

    Alle kritiek is bedoeld als opbouwende kritiek, vind een eigen klasse juist een leuk initiatief. :)

  • FrankY
    Another one bites the dust.
    Ontvangen Reacties
    3
    Berichten
    598
    • 24 mei 2009 om 17:36
    • #9

    Heb je gelijk in killingdevil.. Voor de rest ga ik er wat mee doen. Ik ga vandaag/morgen signup maken, die laat ik dan ook checken..

    En iedereen bedankt voor tips kritiek!

    Bezig met cms:)

  • Pim
    Love Me Two Times
    Berichten
    2.039
    • 24 mei 2009 om 17:41
    • #10

    Misschien kan je ook eens PDO gebruiken ;)

    Edit by Killingdevil:
    Mijn reactie niet gelezen ofzo?:p

  • FrankY
    Another one bites the dust.
    Ontvangen Reacties
    3
    Berichten
    598
    • 24 mei 2009 om 17:52
    • #11

    Zal eens kijken:) Eerst wil ik OOP een beetje onder de knie krijgen.. Wil ik al een tijdje dus.. daarna ga ik dan wel PDO en als ik dat snap ga ik dan toch eindleijk KOHANA doen.... OMdat dat dos dat zo graag wil -.-

    Bezig met cms:)

  • NielsB
    Junior (Web)Developer
    Berichten
    948
    • 24 mei 2009 om 17:59
    • #12

    Je kan beter gewoon pdo en oop gelijke tijd leren.
    Dit omdat je voor pdo heel andere wijze van connecten moet doen.

    Dan is het beter als je gelijke tijd dit leert, dan maak jezelf ook makkelijker voor het geval dat je eindelijk alles snapt en je het opeens anders moet doen.

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.

    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML

    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

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