• 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

  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Syntax 30 december 2025 om 22:29
  • Developer Gezocht

    K.Rens 30 december 2025 om 12:32
  • Op zoek naar de legends

    Jeffrey.Hoekman 9 december 2025 om 09:41
  • [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
  • Partner Gezocht om meerdere NFT Collecties op Open Sea te Plaatsen

    NFT Art Designer 1 maart 2025 om 14:08

Marktplaats

  • 321 Nieuwe Domeinnamen December 2025

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

    Syntax 28 december 2025 om 21:20
  • Van een pixelige afbeelding naar een strakke, moderne website

    Syntax 21 december 2025 om 17:05

Nieuw OOP testje

  • Patrick
  • 11 juni 2009 om 06:59
  • Closed
  • Patrick
    Back in the game
    Ontvangen Reacties
    52
    Berichten
    1.417
    • 11 juni 2009 om 06:59
    • #1

    weer een nieuwe dit x ben ik van plan een (secure) login system er mee te maken ik heb al een opzet en wil weten wat jullie er van vinden:


    PHP
    <?php
    
    
    class loginsystem {
    
    
    	protected $password = null;
    	
    	public function CheckLogin() {
    
    
    	if (!$_SESSION['id']) { return false }
    	else {
    			
    			$match = mysql_query("SELECT expire FROM users WHERE expire={$_SESSION['id']} LIMIT=1") or die(mysql_error());
    			if (mysql_num_rows($match) > 0) { return true }
    			else { return false }
    			
    		}
    	
    	}
    
    
    	public function doregister($name, $pass, $email) {
    		
    		if ($this->checklogin() == true) { return }
    		
    		$password = md5($pass);
    	
    		$match = mysql_query("SELECT username FROM users WHERE username={$name} LIMIT=1") or die(mysql_error());
    		if (mysql_num_rows($match) > 0) { return false }
    		else {
    			
    			mysql_query("INSERT INTO users 
    			VALUES(null,'{$name}', '{$password}', '{$email}')") or die(mysql_error());
    			
    		}
    		
    	}
    	
    }
    
    
    ?>
    Toon Meer

  • Pim
    Love Me Two Times
    Berichten
    2.039
    • 11 juni 2009 om 07:22
    • #2

    Ziet er goed uit ;) Nu je toch met classes kan werken raad ik je ook PDO aan ;)

  • Patrick
    Back in the game
    Ontvangen Reacties
    52
    Berichten
    1.417
    • 11 juni 2009 om 08:02
    • #3

    ik heb er even naar gekeken en PDO lijkt me toch iets waar ik me op moet storten wanneer ik classes volledig onder de knie heb :P

    Nieuwe reactie samengevoegd met originele reactie op 11.06.09 08:17:34:

    PHP
    class register_check extends loginsystem {
    
    
    	protected $sql_data = null;
    	protected $email = null;
    
    
    	public function email_check ($mail) {
    	
    		$this->email = explode($mail, "@");
    		
    		if (!$email[1]) { return false }
    		else {
    		
    			$this->do_sql("insert", "users", $email);
    			return true;
    			
    		}
    	
    	}
    
    
    	protected function do_sql ($type, $table_name, $input) {
    	
    		$this->sql_data = addslashes(htmlspecialchars($input));
    	
    		if ($type == "insert") {
    		
    			mysql_query("INSERT INTO {$table_name}
    			VALUES ('{$this->sql_data}')") or die(mysql_error());
    		
    			return;
    			
    		}
    		
    		elseif ($type == "select") {
    		
    			$query = mysql_query("SELECT * FROM {$table_name}")
    			return $query;
    			
    		}
    	
    	}
    }
    Toon Meer

    toevoeging ervan enige opmerkingen?

  • NielsB
    Junior (Web)Developer
    Berichten
    948
    • 11 juni 2009 om 10:28
    • #4

    Probeer zowiezo variabelen uit de {} te halen dus gewoon simpel weg zo: '". $this->sql_data ."'

    Verder heb ik even snel gekeken ernaar en het ziet er wel goed uit;)

    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

  • Patrick
    Back in the game
    Ontvangen Reacties
    52
    Berichten
    1.417
    • 12 juni 2009 om 11:54
    • #5

    weer update nu zullen er wel fouten in zitten (ik kan het nog steeds niet testen -.-)

    maar goed comments:

    PHP
    <?php
    
    
    class loginsystem {
    
    
    	protected $password = null;
    	
    	public function CheckLogin() {
    
    
    	if (!$_SESSION['id']) { return false }
    	else {
    			
    			$match = mysql_query("SELECT expire FROM users WHERE expire={$_SESSION['id']} LIMIT=1") or die(mysql_error());
    			if (mysql_num_rows($match) > 0) { return true }
    			else { return false }
    			
    		}
    	
    	}
    	
    }
    
    
    class register_check extends loginsystem {
    
    
    	protected $name = null;
    	protected $email = null;
    
    
    	
    	public function do_register ($username, $mail, $password) {
    	
    		if($this->email_check($username, $mail) == false) { return "email_error"; }
    		
    		elseif ($this->username_check($username) == false) { return "username_error"; }
    		elseif ($this->password_check($password) == false) { return "password_error"; }
    	
    		else {
    		
    		mysql_query("INSERT INTO users 
    		VALUES(null,'{$this->username}', '{$this->password}', '{$this->email}')") or die(mysql_error());
    		
    		}
    		
    	}
    	
    	protected function email_check ($username, $mail) {
    	
    		$this->email = explode($mail, "@");
    		
    		if (!$email[1]) { return false }
    		else {
    		
    			$this->email = htmlspecialchars(mysql_escape_string($mail));
    			$this->name = htmlspecialchars(mysql_escape_string($username));
    			
    			mysql_query("UPDATE users SET email={$mail} WHERE username={$name} LIMIT=1") or die(mysql_error());
    			return true;
    			
    		}
    	
    	}
    	
    	protected function username_check($name) {
    
    
    		protected $username = htmlspecialchars(mysql_escape_string($name));
    	
    		$check = mysql_query("SELECT username FROM users WHERE username={$username}") or die(mysql_error());
    		
    		if (mysql_num_rows($check) > 0) { return false }
    		else { return true }
    	
    	}
    	
    	protected function password_check($pass) {
    	
    		if (strlen($pass) < 3) { return false }
    		else { 
    		
    			$this->password = md5($pass);
    			return true;
    
    
    		}
    	
    	}
    	
    }
    
    
    ?>
    Toon Meer

  • alexruter
    Prostart B.V
    Berichten
    1.272
    • 12 juni 2009 om 11:59
    • #6

    Beste,

    Ik heb geen verstand van OOP. Maar zoals het er uitziet ziet het er mooi uit. Tevens vindt ik dat je duidelijk en overzichtelijk werkt. Ga zo door:D

    Met vriendelijke groet,
    A. Ruter
    (PS Ik geef nog 4 gratis hostingpakketten weg indien u 1 wilt voor gebruik kan dat. Ik ondersteun MysQL en PHP 5.:}

    Project Starter : 40%

    Voor meer informatie kunt u contact met ons opnemen via: http://<woltlab-metacode-marker data-name="b" data-uuid="9968e8cf-c21e-4616-83a2-1b7dbe424ef3" data-source="W2Jd" /><woltlab-metacode-marker data-name="i" data-uuid="6afb9ec5-726a-4117-99f8-5ce4efc057f1" data-source="W2ld" />mailto:<woltlab-metacode-marker data-uuid="6afb9ec5-726a-4117-99f8-5ce4efc057f1" data-source="Wy9pXQ==" /><woltlab-metacode-marker data-uuid="9968e8cf-c21e-4616-83a2-1b7dbe424ef3" data-source="Wy9iXQ==" />

  • Stefan.J
    Master
    Ontvangen Reacties
    9
    Berichten
    2.358
    • 12 juni 2009 om 12:28
    • #7

    De classes zien er wel leuk uit. Alleen de do_sql functie vind ik niet echt op zijn plaats. Volgens mij is dat niet echt de verantwoordelijkheid van een login class. Daarnaast vind ik het sowieso een nutteloze functie.:p

  • Patrick
    Back in the game
    Ontvangen Reacties
    52
    Berichten
    1.417
    • 12 juni 2009 om 12:44
    • #8

    do_sql heb ik ook er uit gehaald in mn laatste code update :P

    Nieuwe reactie samengevoegd met originele reactie op 12.06.09 12:49:15:
    updated code (again) :P

  • Stefan.J
    Master
    Ontvangen Reacties
    9
    Berichten
    2.358
    • 12 juni 2009 om 19:19
    • #9

    Let wel op dat in je huidige systeem sessies makkelijk gestolen kunnen worden. Je kunt deze beter aan een IP-adres koppelen.

    Wel goed gebruik van [func]public[/func] en [func]protected[/func]!:)

  • Patrick
    Back in the game
    Ontvangen Reacties
    52
    Berichten
    1.417
    • 12 juni 2009 om 23:07
    • #10

    ja ik kan geen manier bedenken waarbij ik het systeem echt secure kan maken, aan een IP binden is ook niet te beste methode weet iemand een betere methode hiervoor?

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

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