{"id":305,"date":"2019-09-30T07:49:06","date_gmt":"2019-09-30T07:49:06","guid":{"rendered":"https:\/\/stud.hosted.hr.nl\/0980417\/?p=305"},"modified":"2020-01-17T19:56:25","modified_gmt":"2020-01-17T19:56:25","slug":"back-end-block","status":"publish","type":"post","link":"https:\/\/stud.hosted.hr.nl\/0980417\/2019\/09\/30\/back-end-block\/","title":{"rendered":"Back-end Block"},"content":{"rendered":"\n<p>De back-end is het hart van je web-applicatie. De server verwerkt en bewaart alle informatie op \u00e9\u00e9n plek, waardoor meerdere clients van dezelfde data gebruik kunnen maken. De applicatie biedt de mogelijkheid tot het beheren van de content met een CMS.<br><br>Informatie moet op een veilige manier opgeslagen worden en toegankelijk zijn. Onderdelen als authenticatie en autorisatie, hashing en controle van de data zijn enkele voorbeelden.<br><br>Deze basis moet stabiel en robuust zijn, daarom willen we er zo min mogelijk aan veranderen. Bij het uitwerken van de code is het belangrijk dat er nagedacht wordt over de kwaliteit van de code. Het moet voor een programmeur niet te veel tijd kosten om onderdelen toe te voegen of aanpassingen te doen zonder het systeem helemaal aan te passen.<br><br>Om tot deze kwaliteit te komen is het belangrijk om een ontwerp te maken waarbij functionaliteiten omgezet worden naar technische uitwerkingen. Hoofdonderdelen worden beschreven, de werking van taken wordt technisch toegelicht en ingewikkelde taken worden onderzocht. De keuze voor de uitwerking wordt verantwoord.<br><br>Bij het opzetten van de backend kan gebruik gemaakt worden van onderdelen die al bestaan. Denk aan een bestaande library met tools die te specialistisch zijn om zelf te bouwen of het gebruik van een webservice.<\/p>\n\n\n\n<p><br><br><\/p>\n\n\n\n<p class=\"has-background has-light-green-cyan-background-color\"><strong>Ontwerp<\/strong><br>Je hebt vooraf nagedacht over technische keuzes en dit heb je inzichtelijk gemaakt. Je kan je project technisch documenteren middels minimaal twee diagrammen (bijv. ERD, klassendiagram en\/of flow chart). Je hebt een bestaande library\/API toegevoegd (server side) aan je project om functionaliteiten toe te voegen of om het programmeren makkelijker te maken. Je kunt toelichten waarom dit nuttig is.<\/p>\n\n\n\n<p>Dit is mijn eerste project waarbij back-end echt een grote rol speelt. Vooraf heb ik nagedacht over welke talen ik wilde gebruiken. Uiteraard heb ik voor het verwerken van gevoelige data PHP gebruikt omdat deze data op de server blijft en niet inzichtelijk is voor gebruikers. Ook werk ik met een MySQLi database om deze data op te slaan. Al snel werd duidelijk dat de opdrachtgever ook een log-in-systeem wilde waarmee gebruikers vaker afspraken kunnen inplannen. Hiervoor is het wel nodig om wachtwoorden op te slaan. Dit heb ik gedaan door gebruik te maken van de password hash functie welke in PHP zit. Met deze hash kan ik de wachtwoorden veilig in de database bewaren.<br><br>Ik heb nog niet eerder een flow chart gemaakt maar hieronder heb ik er een geplaatst welke overeen komt met de website. Mochten er dingen onduidelijk zijn kan ik deze mondeling tijdens het beoordelingsgesprek toelichten.<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/Flowchart-CLE2.png\"><img width=\"1024\" height=\"640\" src=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/Flowchart-CLE2-1024x640.png\" alt=\"\" data-id=\"1340\" data-full-url=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/Flowchart-CLE2.png\" data-link=\"https:\/\/stud.hosted.hr.nl\/0980417\/2019\/09\/30\/back-end-block\/flowchart-cle2\/\" class=\"wp-image-1340\" srcset=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/Flowchart-CLE2-1024x640.png 1024w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/Flowchart-CLE2-300x188.png 300w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/Flowchart-CLE2-768x480.png 768w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/Flowchart-CLE2-1536x960.png 1536w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/Flowchart-CLE2-2048x1280.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p><br><br><\/p>\n\n\n\n<p>Tijdens de lessen hebben we beperkt uitleg gehad wat ERD&#8217;s en Joins betreft. Met wat hulp van studiegenoten en YouTube tutorials is het me gelukt om de huidige website in een entity relationship diagram te plaatsen. Zoals het systeem nu werkt is bovenaan de afbeelding te zien. Pas nadat ik mijn structuur had gebouwd en al deels toegepast kregen we uitleg over de verschillende soorten relaties die er zijn. In het vervolg zou ik het anders hebben opgebouwd. Omdat ik aan wil tonen dat ik weet hoe dit moet heb ik daar ook een uitwerking van gemaakt, deze is aan de onderzijde van de afbeelding hieronder te zien.<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-ERD.png\"><img width=\"1024\" height=\"780\" src=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-ERD-1024x780.png\" alt=\"\" data-id=\"1342\" data-full-url=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-ERD.png\" data-link=\"https:\/\/stud.hosted.hr.nl\/0980417\/2019\/09\/30\/back-end-block\/bb-erd\/\" class=\"wp-image-1342\" srcset=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-ERD-1024x780.png 1024w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-ERD-300x228.png 300w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-ERD-768x585.png 768w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-ERD-1536x1170.png 1536w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-ERD-2048x1559.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p><br><br><\/p>\n\n\n\n<p>Een user story (could have) welke ik gemaakt had was het werken met geautomatiseerde e-mails. Wanneer een klant een account aanmaakt en een reservering plaatst was het de bedoeling dat deze een bericht zou ontvangen met de relevante informatie. Omdat het werken met een externe emailserver redelijk wat werk met zich meebrengt heb ik ervoor gekozen om met PHPMailer te werken. Dit is een library welke via PHP (server side) werkt.<br>Deze library heb ik in mijn mappenstructuur opgenomen en door middel van een &#8216;require once&#8217; roep ik deze op. Vervolgens heb ik de basis variabelen in een functie geplaatst zodat ik het makkelijk kan oproepen als ik ergens een e-mail wil verzenden. Hieronder heb ik afbeeldingen van mijn code met in de code annotaties ter verduidelijking.<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-4-PHPMailer.png\"><img width=\"1024\" height=\"640\" src=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-4-PHPMailer-1024x640.png\" alt=\"\" data-id=\"1351\" data-full-url=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-4-PHPMailer.png\" data-link=\"https:\/\/stud.hosted.hr.nl\/0980417\/2019\/09\/30\/back-end-block\/bb-4-phpmailer\/\" class=\"wp-image-1351\" srcset=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-4-PHPMailer-1024x640.png 1024w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-4-PHPMailer-300x188.png 300w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-4-PHPMailer-768x480.png 768w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-4-PHPMailer-1536x960.png 1536w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-4-PHPMailer-2048x1280.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"blocks-gallery-item__caption\">Library + gemaakte HTML e-mail templates met variabelen %variabel%<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-1-include-PHPMailer-functie.png\"><img width=\"1024\" height=\"775\" src=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-1-include-PHPMailer-functie-1024x775.png\" alt=\"\" data-id=\"1345\" data-full-url=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-1-include-PHPMailer-functie.png\" data-link=\"https:\/\/stud.hosted.hr.nl\/0980417\/2019\/09\/30\/back-end-block\/bb-1-include-phpmailer-functie\/\" class=\"wp-image-1345\" srcset=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-1-include-PHPMailer-functie-1024x775.png 1024w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-1-include-PHPMailer-functie-300x227.png 300w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-1-include-PHPMailer-functie-768x581.png 768w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-1-include-PHPMailer-functie-1536x1163.png 1536w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-1-include-PHPMailer-functie-2048x1550.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"blocks-gallery-item__caption\">PHPMailer includen en in functie zetten met vooraf gevulde data en variabelen<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-2-PHPMailer-functie-registreren.png\"><img width=\"1024\" height=\"495\" src=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-2-PHPMailer-functie-registreren-1024x495.png\" alt=\"\" data-id=\"1346\" data-full-url=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-2-PHPMailer-functie-registreren.png\" data-link=\"https:\/\/stud.hosted.hr.nl\/0980417\/2019\/09\/30\/back-end-block\/bb-2-phpmailer-functie-registreren\/\" class=\"wp-image-1346\" srcset=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-2-PHPMailer-functie-registreren-1024x495.png 1024w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-2-PHPMailer-functie-registreren-300x145.png 300w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-2-PHPMailer-functie-registreren-768x371.png 768w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-2-PHPMailer-functie-registreren-1536x742.png 1536w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-2-PHPMailer-functie-registreren-2048x989.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"blocks-gallery-item__caption\">E-mail versturen d.m.v. gemaakte PHPMailer functie na registratie<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-3-PHPMailer-functie-reserveren.png\"><img width=\"1024\" height=\"779\" src=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-3-PHPMailer-functie-reserveren-1024x779.png\" alt=\"\" data-id=\"1347\" data-full-url=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-3-PHPMailer-functie-reserveren.png\" data-link=\"https:\/\/stud.hosted.hr.nl\/0980417\/2019\/09\/30\/back-end-block\/bb-3-phpmailer-functie-reserveren\/\" class=\"wp-image-1347\" srcset=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-3-PHPMailer-functie-reserveren-1024x779.png 1024w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-3-PHPMailer-functie-reserveren-300x228.png 300w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-3-PHPMailer-functie-reserveren-768x584.png 768w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-3-PHPMailer-functie-reserveren-1536x1169.png 1536w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-3-PHPMailer-functie-reserveren-2048x1558.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"blocks-gallery-item__caption\">E-mail naar klant + eigenaar versturen d.m.v. gemaakte PHPMailer functie na maken afspraak<\/figcaption><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p><br><br><br><\/p>\n\n\n\n<p class=\"has-background has-light-green-cyan-background-color\"><strong>Data<\/strong><br>Je hebt een webapplicatie gebouwd op de server die gevoed wordt door een database. De database inhoud kan gelezen, bewerkt en verwijderd worden.<\/p>\n\n\n\n<p>Het reserveringssysteem haalt en stuurt alle data via een MySQLi database door middel van query&#8217;s. Ik maak gebruik van veel querytypes. Denk hierbij aan select, insert, update en delete. Hieronder staan enkele stukken code waarbij de werking van de code en database zichtbaar is. Ook de database zelf is te zien.<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB2-quere-select-delete.png\"><img width=\"1024\" height=\"643\" src=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB2-quere-select-delete-1024x643.png\" alt=\"\" data-id=\"1304\" data-full-url=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB2-quere-select-delete.png\" data-link=\"https:\/\/stud.hosted.hr.nl\/0980417\/bb2-quere-select-delete\/\" class=\"wp-image-1304\" srcset=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB2-quere-select-delete-1024x643.png 1024w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB2-quere-select-delete-300x188.png 300w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB2-quere-select-delete-768x482.png 768w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB2-quere-select-delete-1536x965.png 1536w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB2-quere-select-delete-2048x1286.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/li><\/ul><\/figure>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB-select-update.png\"><img width=\"1024\" height=\"643\" src=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB-select-update-1024x643.png\" alt=\"\" data-id=\"1303\" data-full-url=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB-select-update.png\" data-link=\"https:\/\/stud.hosted.hr.nl\/0980417\/bb-select-update\/\" class=\"wp-image-1303\" srcset=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB-select-update-1024x643.png 1024w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB-select-update-300x188.png 300w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB-select-update-768x482.png 768w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB-select-update-1536x965.png 1536w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB-select-update-2048x1286.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/li><\/ul><\/figure>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB-query-select-insert-into.png\"><img width=\"1024\" height=\"718\" src=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB-query-select-insert-into-1024x718.png\" alt=\"\" data-id=\"1302\" data-full-url=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB-query-select-insert-into.png\" data-link=\"https:\/\/stud.hosted.hr.nl\/0980417\/bb-query-select-insert-into\/\" class=\"wp-image-1302\" srcset=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB-query-select-insert-into-1024x718.png 1024w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB-query-select-insert-into-300x210.png 300w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB-query-select-insert-into-768x538.png 768w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB-query-select-insert-into-1536x1076.png 1536w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2020\/01\/BB-query-select-insert-into-2048x1435.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/li><\/ul><\/figure>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-DB.png\"><img width=\"1024\" height=\"507\" src=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-DB-1024x507.png\" alt=\"\" data-id=\"1308\" data-full-url=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-DB.png\" data-link=\"https:\/\/stud.hosted.hr.nl\/0980417\/2019\/09\/30\/back-end-block\/bb-db\/\" class=\"wp-image-1308\" srcset=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-DB-1024x507.png 1024w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-DB-300x149.png 300w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-DB-768x380.png 768w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-DB-1536x761.png 1536w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-DB-2048x1014.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p><br><br><br><\/p>\n\n\n\n<p class=\"has-background has-light-green-cyan-background-color\"><strong>Beveiliging<\/strong><br>Een deel van je website is niet toegankelijk zonder in te loggen. Je form invoer wordt op de server gevalideerd en is beveiligd tegen XSS en SQL injecties. Wachtwoorden worden veilig opgeslagen.<\/p>\n\n\n\n<p>De website is enkel te bezoeken als je ingelogd bent. Op de indexpagina moet je jezelf direct registreren of via de onderstaande knop naar de inlogpagina. Zodra je ingelogd bent wordt er een sessie gevuld welke je toegang geeft tot het gebruikersgedeelte van het systeem. Ook is er een admin-omgeving aanwezig, door middel van een in de php-bestanden gecodeerd e-mailadres wordt geverifieerd of er wel\/geen admin inlogt op de website.<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-login-hash-email-vullen.png\"><img width=\"1024\" height=\"520\" src=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-login-hash-email-vullen-1024x520.png\" alt=\"\" data-id=\"1333\" data-full-url=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-login-hash-email-vullen.png\" data-link=\"https:\/\/stud.hosted.hr.nl\/0980417\/2019\/09\/30\/back-end-block\/bb-login-hash-email-vullen\/\" class=\"wp-image-1333\" srcset=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-login-hash-email-vullen-1024x520.png 1024w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-login-hash-email-vullen-300x152.png 300w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-login-hash-email-vullen-768x390.png 768w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-login-hash-email-vullen-1536x780.png 1536w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-login-hash-email-vullen-2048x1040.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"blocks-gallery-item__caption\">Als het password_verify overeenkomt $_SESSION[&#8220;email&#8221;] vullen -&gt; redirect<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-login-checken.png\"><img width=\"1024\" height=\"204\" src=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-login-checken-1024x204.png\" alt=\"\" data-id=\"1332\" data-full-url=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-login-checken.png\" data-link=\"https:\/\/stud.hosted.hr.nl\/0980417\/2019\/09\/30\/back-end-block\/bb-login-checken\/\" class=\"wp-image-1332\" srcset=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-login-checken-1024x204.png 1024w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-login-checken-300x60.png 300w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-login-checken-768x153.png 768w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-login-checken-1536x305.png 1536w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-login-checken-2048x407.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"blocks-gallery-item__caption\">Iedere pagina checkt of de sessie gevuld is, dan krijg je toegang<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-admin-login-check.png\"><img width=\"1024\" height=\"196\" src=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-admin-login-check-1024x196.png\" alt=\"\" data-id=\"1335\" data-full-url=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-admin-login-check.png\" data-link=\"https:\/\/stud.hosted.hr.nl\/0980417\/2019\/09\/30\/back-end-block\/bb-admin-login-check\/\" class=\"wp-image-1335\" srcset=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-admin-login-check-1024x196.png 1024w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-admin-login-check-300x57.png 300w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-admin-login-check-768x147.png 768w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-admin-login-check-1536x294.png 1536w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-admin-login-check-2048x392.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"blocks-gallery-item__caption\">In het menu wordt gecheckt of de admin ingelogd is, dan wordt een extra pagina zichbaar<\/figcaption><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p><br><br><br><\/p>\n\n\n\n<p>Alle input velden (text, date, time) gaan via een MySQLi real escape string naar de database om ervoor te zorgen dat het niet mogelijk is om code te injecteren. Mysqli_real_escape_string(<em>connection, escapestring<\/em>). Ook is er in de MySQLi database aangegeven welk type data verwacht wordt met daarbij een maximum aantal karakters. (Klik op de afbeeldingen om deze fullscreen te openen)<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-2 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-5.png\"><img width=\"1024\" height=\"595\" src=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-5-1024x595.png\" alt=\"\" data-id=\"1321\" data-full-url=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-5.png\" data-link=\"https:\/\/stud.hosted.hr.nl\/0980417\/2019\/09\/30\/back-end-block\/bb-password-hash-5\/\" class=\"wp-image-1321\" srcset=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-5-1024x595.png 1024w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-5-300x174.png 300w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-5-768x446.png 768w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-5-1536x892.png 1536w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-5-2048x1189.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"blocks-gallery-item__caption\">Types en limieten<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-2.png\"><img width=\"1024\" height=\"784\" src=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-2-1024x784.png\" alt=\"\" data-id=\"1318\" data-full-url=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-2.png\" data-link=\"https:\/\/stud.hosted.hr.nl\/0980417\/2019\/09\/30\/back-end-block\/bb-password-hash-2\/\" class=\"wp-image-1318\" srcset=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-2-1024x784.png 1024w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-2-300x230.png 300w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-2-768x588.png 768w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-2-1536x1176.png 1536w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-2-2048x1568.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"blocks-gallery-item__caption\">Alle inputs door de functie halen<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-MySQLi-real-escape-string-functie.png\"><img width=\"1024\" height=\"94\" src=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-MySQLi-real-escape-string-functie-1024x94.png\" alt=\"\" data-id=\"1316\" data-full-url=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-MySQLi-real-escape-string-functie.png\" data-link=\"https:\/\/stud.hosted.hr.nl\/0980417\/2019\/09\/30\/back-end-block\/bb-mysqli-real-escape-string-functie\/\" class=\"wp-image-1316\" srcset=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-MySQLi-real-escape-string-functie-1024x94.png 1024w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-MySQLi-real-escape-string-functie-300x28.png 300w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-MySQLi-real-escape-string-functie-768x70.png 768w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-MySQLi-real-escape-string-functie-1536x141.png 1536w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-MySQLi-real-escape-string-functie-2048x188.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"blocks-gallery-item__caption\">MySQLi_real_escape_string functie<\/figcaption><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p><br><br><br><\/p>\n\n\n\n<p>Wachtwoorden worden uiteraard gehashed voordat deze naar de server gaan. En tijdens het inloggen wordt het door de gebruiker ingevoerde wachtwoord vergeleken met het hashed wachtwoord wat in de database staat. Dit gebeurt door middel van de password_verify functie. (Klik op de afbeeldingen om deze fullscreen te openen)<\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-3 is-cropped\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-1.png\"><img width=\"1024\" height=\"728\" src=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-1-1024x728.png\" alt=\"\" data-id=\"1317\" data-full-url=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-1.png\" data-link=\"https:\/\/stud.hosted.hr.nl\/0980417\/2019\/09\/30\/back-end-block\/bb-password-hash-1\/\" class=\"wp-image-1317\" srcset=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-1-1024x728.png 1024w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-1-300x213.png 300w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-1-768x546.png 768w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-1-1536x1093.png 1536w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-1-2048x1457.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"blocks-gallery-item__caption\">Wachtwoord doorsturen<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-2.png\"><img width=\"1024\" height=\"784\" src=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-2-1024x784.png\" alt=\"\" data-id=\"1318\" data-full-url=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-2.png\" data-link=\"https:\/\/stud.hosted.hr.nl\/0980417\/2019\/09\/30\/back-end-block\/bb-password-hash-2\/\" class=\"wp-image-1318\" srcset=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-2-1024x784.png 1024w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-2-300x230.png 300w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-2-768x588.png 768w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-2-1536x1176.png 1536w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-2-2048x1568.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"blocks-gallery-item__caption\">Regel 22+23 password_hash<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-3.png\"><img width=\"1024\" height=\"407\" src=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-3-1024x407.png\" alt=\"\" data-id=\"1319\" data-full-url=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-3.png\" data-link=\"https:\/\/stud.hosted.hr.nl\/0980417\/2019\/09\/30\/back-end-block\/bb-password-hash-3\/\" class=\"wp-image-1319\" srcset=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-3-1024x407.png 1024w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-3-300x119.png 300w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-3-768x305.png 768w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-3-1536x611.png 1536w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-3-2048x815.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"blocks-gallery-item__caption\">Password verify hash uit database<\/figcaption><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><a href=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-4.png\"><img width=\"1024\" height=\"345\" src=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-4-1024x345.png\" alt=\"\" data-id=\"1320\" data-full-url=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-4.png\" data-link=\"https:\/\/stud.hosted.hr.nl\/0980417\/2019\/09\/30\/back-end-block\/bb-password-hash-4\/\" class=\"wp-image-1320\" srcset=\"https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-4-1024x345.png 1024w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-4-300x101.png 300w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-4-768x259.png 768w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-4-1536x517.png 1536w, https:\/\/stud.hosted.hr.nl\/0980417\/wp-content\/uploads\/2019\/09\/BB-password-hash-4-2048x690.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"blocks-gallery-item__caption\">Hash in de database<\/figcaption><\/figure><\/li><\/ul><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>De back-end is het hart van je web-applicatie. De server verwerkt en bewaart alle informatie op \u00e9\u00e9n plek, waardoor meerdere clients van dezelfde data gebruik&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":230,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/stud.hosted.hr.nl\/0980417\/wp-json\/wp\/v2\/posts\/305"}],"collection":[{"href":"https:\/\/stud.hosted.hr.nl\/0980417\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stud.hosted.hr.nl\/0980417\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stud.hosted.hr.nl\/0980417\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stud.hosted.hr.nl\/0980417\/wp-json\/wp\/v2\/comments?post=305"}],"version-history":[{"count":40,"href":"https:\/\/stud.hosted.hr.nl\/0980417\/wp-json\/wp\/v2\/posts\/305\/revisions"}],"predecessor-version":[{"id":1355,"href":"https:\/\/stud.hosted.hr.nl\/0980417\/wp-json\/wp\/v2\/posts\/305\/revisions\/1355"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/stud.hosted.hr.nl\/0980417\/wp-json\/wp\/v2\/media\/230"}],"wp:attachment":[{"href":"https:\/\/stud.hosted.hr.nl\/0980417\/wp-json\/wp\/v2\/media?parent=305"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stud.hosted.hr.nl\/0980417\/wp-json\/wp\/v2\/categories?post=305"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stud.hosted.hr.nl\/0980417\/wp-json\/wp\/v2\/tags?post=305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}