• Login
  • Register
  • Zoek
Everywhere
  • Everywhere
  • 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. Leden
  3. Stefan.J

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

Posts by Stefan.J

  • [niet opgelost]php/sql select

    • Stefan.J
    • 14 juni 2013 om 12:58

    De MySQL functie MAX() kan je hierbij wel eens uit de brand helpen.

  • [niet opgelost]php/sql select

    • Stefan.J
    • 13 juni 2013 om 16:42

    Je zult moeten groeperen op de topic_id, overigens lijkt mij orderen op ID ook geen goed idee.

  • Request_QUERY foutmelding

    • Stefan.J
    • 13 juni 2013 om 14:47

    In dit geval hoeft isset niet gebruikt te worden. De query-string wordt namelijk (op een hele verkeerde manier) van de string afgehaald met een string replace. Als de query string leeg is, vervang je een lege string met een lege string, niets aan de hand dus.

  • Request_QUERY foutmelding

    • Stefan.J
    • 13 juni 2013 om 14:22

    In de documentatie staat ook iets anders interessants:

    Citaat


    'QUERY_STRING'
    The query string, if any, via which the page was accessed.

    Ik denk dat je daarmee wel uit de voeten kunt..

  • Request_QUERY foutmelding

    • Stefan.J
    • 12 juni 2013 om 23:30

    Volgens de documentatie bestaat de parameter 'REQUEST_QUERY' helemaal niet:

    http://www.php.net/manual/en/reserved.variables.server.php

  • Validation in popup

    • Stefan.J
    • 12 juni 2013 om 18:50

    In JavaScript zijn puntkomma's niet verplicht dus dat maakt niet uit.

    Zou je de HTML ook eens kunnen posten? Heb je JavaScript nog niet helemaal doorgelezen, maar dat zou nog wel eens kunnen helpen.

    @Alexjeee: Met alle respect, maar als je geen echt idee hebt over het probleem is je hulp niet erg nuttig, ook al is het vriendelijk. ;)

  • OOP Denkwijze Inlogsysteem

    • Stefan.J
    • 11 juni 2013 om 22:55

    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?

  • OOP Denkwijze Inlogsysteem

    • Stefan.J
    • 11 juni 2013 om 21:51

    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.

  • OSvendetta

    • Stefan.J
    • 10 juni 2013 om 21:34

    @Fils: Mooie wijziging, en bedankt voor de referentie!

    Ik bedoel met het berekenen van de SALT waar deze vandaan komt. Bijvoorbeeld statisch (daar leek het op, altijd dezelfde), random (opslaan samen met het wachtwoord) of berekent uit gegevens van de gebruiker (gebruikersnaam, id, e-mailadres).

  • OSvendetta

    • Stefan.J
    • 10 juni 2013 om 18:19

    @Fils:

    Citaat

    Ik schrijf niet dat je wel MD5 moet gaan gebruiken. Ik licht alleen toe wat het probleem is met MD5.

    Ik geef niet aan dat je het wel moet gebruiken. Het is zeker beter een sterker hashing algoritme zoals SHA512 te gebruiken. Je hoort mij niet zeggen dat iedereen MD5 moet gebruiken en dat zal ik ook niet doen.

    Wat betreft je pepper en secret key. Als je gebruik maakt van een salt doe je dat met een reden. Namelijk om het gebruik van rainbow-tables en soortgelijke aanvallen tegen te gaan. Als je vanuit daar redeneert kun je simpelweg zeggen dat een pepper en secret key geen toegevoegde waarde hebben. Je kan ze er best bij zetten maar ze hebben geen nut. Als je vervolgens in je blog ervan gebruik maakt, vind ik dat een beetje slordig staan. Daarom probeer ik je uit te leggen waar een salt goed voor is.

    Ps. Hoe bereken je de salt? Of is deze statisch?

  • OSvendetta

    • Stefan.J
    • 10 juni 2013 om 18:06

    @Fils: Ik schrijf niet dat je wel MD5 moet gaan gebruiken. Ik licht alleen toe wat het probleem is met MD5. Daarbij is het overigens ook zo dat er wat problemen in MD5 zijn gevonden die het nog sneller mogelijk maken hashes te berekenen.

    Een zogenaamde pepper heeft geen toegevoegde waarde. Het gaat erom dat je iets aan het wachtwoord plakt (liefs user-specifiek). Of dat nu vooraan, achteraan of in het midden van het wachtwoord staat maakt niet uit. Vooraan en achteraan zetten is dan ook onzin.

  • OSvendetta

    • Stefan.J
    • 10 juni 2013 om 17:55

    Over je SHA1 en MD5 blog:

    Als ik de code bekijk lijkt de "secret key" gewoonweg een salt te zijn. Daarnaast is de "pepper" niet van toegevoegde waarde. Doordat je een salt toevoegd hebben rainbow-tables minder inpakt. Wachtwoorden als test komen namelijk wel voor in rainbow-tables maar testmijnfantastischesalt213 komt hoogstwaarschijnlijk niet voor. Daarbij is een hash nooit te decrypten. Om het wachtwoord te achterhalen heb je nu overigens niet je salt nodig. Je hebt alleen heel veel rekencapaciteit nodig.. Als de salt bekend is wordt het wel iets makkelijker wachtwoorden te achterhalen.

    Overigens zijn er twee redenen waardoor MD5 wordt afgeraden:
    - Er zijn gigantisch veel rainbow-tables beschikbaar voor MD5. Dit kun je echter oplossen met een goede salt.
    - MD5 is voor de huidige computers een extreem snel algoritme. De werkelijke waarde (of een collision) van een 128-bit MD5 salt is daardoor relatief snel gevonden.

  • Laadtijd website

    • Stefan.J
    • 7 juni 2013 om 19:21

    Hoe komt iedereen er bij dat het aan de hosting zou liggen? Het is relatief gezien een hele eenvoudige website.

    Het menu moet ook veel sneller kunnen laden hoor. Maar als je hem even weghaalt kun je ontdekken of daar het probleem in zit.

    Het goede nieuws is, de query's worden uitgevoerd op een database-object ($db in je index). Het aantal uitgevoerde query's zou je eens kunnen tellen, en de query's die worden uitgevoerd zou je eens kunnen loggen.

  • Laadtijd website

    • Stefan.J
    • 6 juni 2013 om 23:57
    Citaat

    Daar ben ik het niet mee eens.

    Ik kan bijvoorbeeld op mijn server, "zware PHP-code's" draaien zonder moeite. Zet ik deze codes op een server met trage hardware, dan krijg ik het zelfde resultaat.

    Dat klopt helemaal. Maar als je de website bekijkt, mag dat nooit een zware pagina zijn om op te bouwen. Dus het probleem ligt dat in de software en niet aan de hardware. Natuurlijk kun je er dan wel een hoop extra hardware onder hangen, maar dat lost het probleem niet op en is zonder van je geld.

    Wat gebeurd er als je het categorieënmenu eens weghaalt? En dan, vanzelfsprekend, ook het laden van de data voor het menu.

  • Laadtijd website

    • Stefan.J
    • 6 juni 2013 om 22:27

    Het ligt aan de laadtijd van de index-pagina, dat is overduidelijk. De server specs zullen daarvan niet de oorzaak zijn, daarvoor is deze laadtijd te lang.

    Drie verschillende oorzaken kan ik bedenken:
    - De PHP-code is erg traag, waarschijnlijk door veel database query's.
    - De database is erg traag, door slechte configuratie of een slecht schema.
    - De server staat onder zware load.

    En dan staan ze op volgorde van waarschijnlijkheid...

    Kun je de PHP code van de index pagina, om eens te beginnen, eens posten?

  • Laadtijd website

    • Stefan.J
    • 6 juni 2013 om 19:16

    De betreffende tool van Ferhat is inderdaad een mooie manier om dit eens te bekijken. Zijn conclusies kloppen alleen wat minder. Als je de resultaten bekijkt, wordt er in mijn geval 15 seconde gewacht op de index-pagina. Bij het opbouwen van die pagina is er dus iets bijzonder traag. Waarschijnlijk ligt dat aan je PHP-code (?) of aan je database.

  • Probleem met if/else

    • Stefan.J
    • 5 juni 2013 om 16:27

    Wat Fils zegt is zeker een goed idee.

    Ik heb je script in ieder geval even opgeknapt, en daarbij ook die syntax error in de if-lus opgelost:

    PHP
    <?php
    
    
    include("connect.php");
    session_start();
    
    
    $_SESSION["projecten_id"] = (int) $_GET["projecten_id"];
    
    
    $projecten = mysql_query("SELECT p.*, a.project_afbeeldingen, b.project_bestand FROM `projecten` AS p, `project_afbeeldingen` AS a, `project_bestanden` AS b WHERE `projecten_id` = ". $_SESSION["projecten_id"] ." AND a.item_id = p.item_id AND p.bestand_id = b.bestand_id");
    if (!$projecten) {
        echo sprintf("Query failed; %s", mysql_error());
    }
    
    
    $project = mysql_fetch_array($projecten);
    
    
    ?>
    <?php echo $project['project_titel']; ?><br>
    <img src="<?php echo $project['project_afbeelding'] ?>" height="250" width="325"><br>
    <?php echo $project['project_langeomschrijving'] ?><br>
    
    
    <?php if ($project['bestand_id'] > 0): ?>
        <a href ="<?php echo $project['project_bestand'] ?>">Download bijlage<br>
    <?php endif ?>
    Toon Meer

    De query heb ik verder niet naar gekeken en een beetje mijn twijfels bij. Ik zou deze in ieder geval omschrijven naar een duidelijke query met joins.

  • PHP kop of munt

    • Stefan.J
    • 4 juni 2013 om 18:35

    Switch-statements zijn voor situaties als deze bedoeld, maar een if-else lus doet ook prima zijn werk.

    Waarom zoveel reacties op zoiets eenvoudigs? En waarom de 'er is iets fout gegaan' melding? Kan een rand() tegenwoordig een waarde retourneren buiten zijn marges? Ik dacht het niet...

  • Hoe maken jullie een android app?

    • Stefan.J
    • 4 juni 2013 om 18:30

    De Eclipse IDE biedt standaard ondersteuning voor Andriod development. Echter, de Eclipse IDE wordt door de meeste Java ontwikkelaars niet ervaren als een goede IDE. Door je Andriod application te bouwen met Maven (een buildtool) kun je ook prima ontwikkelen in een andere IDE zoals Netbeans of IntelliJ, heb ik mij laten vertellen.

    Een blogpost die daarop ingaat:

    http://www.vogella.com/articles/Andro…en/article.html

  • Java & Apk/Ipa

    • Stefan.J
    • 28 mei 2013 om 21:59

    Andriod ontwikkeling is in Java, en ontwikkeling voor de iPhone is Objective-C.

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