Bestelling afhandelen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Junior .NET developer

Functie Als junior .NET developer start jij in een development team met twee ervaren software ontwikkelaars. Jouw persoonlijke ontwikkeling is voor ons erg belangrijk en jij gaat dan ook meelopen met onze Senior .NET ontwikkelaar die jou met zijn kennis en ervaring een goede begeleiding kan aanbieden. Als team zijn jullie verantwoordelijk voor het schrijven van software voor onze toonaangevende Automatiseringssystemen. Jij gaat aan de slag met de onderhoud van de kernsoftware, ondersteund de software van derden door het gebruik van onze webservices en als team zijn jullie verantwoordelijk voor het ontwikkelen van onze backend oplossingen. Wij maken op dit

Bekijk vacature »

Back end Node.js developer

Functie Het ontwikkelteam bestaat momenteel uit 5 (back-end) Developers, 2 systeembeheerders, 1 DevOps engineer, 1 Tech Lead en 2 Scrum Masters. Samen wordt er doorontwikkeld aan twee SaaS-platformen die in een hoog tempo doorontwikkeld moeten worden. Omdat innovatie een belangrijk speerpunt binnen de organisatie is, wordt er ook continu naar snellere en slimmere oplossingen te bedenken en realiseren. Als Back-end Developer hou jij je dagelijks bezig met vraagstukken zoals: API-development, high volume datastromen, het ontwikkelen van Bots aan de hand van A.I. Daarnaast denk en werk jij mee aan de onlineapplicaties voor klanten. Er wordt zelfstandig en in teamverband gewerkt

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar start jij een team met 12 programmeurs. Jullie zijn verantwoordelijk voor het huidige platform van deze organisatie. Als team werken jullie in tweewekelijkse sprints en starten jullie iedere dag met een stand-up. Jij werkt samen met jouw team aan het uitbreiden van het huidige platform door middel van nieuwe features. Daarnaast zorg jij er samen met jouw team voor dat het platform veilig is en gebruiken jullie de nieuwste technieken om deze veiligheid te waarborgen. Zo maken jullie gebruik van C# .NET, .NET Core, React, Azure, Kubernetes, ASP.NET, MVC. Jij gaat aan het werk in

Bekijk vacature »

Senior Mobile Developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als Senior Mobile Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel

Bekijk vacature »

Fullstack developer

Functie omschrijving We are looking for a dutch native speaker Wil jij werken als Senior Developer en werken aan een applicatie die duizenden marketingcampagnes automatisch aanstuurt? Dit is je kans! Kom werken voor onze opdrachtgever en in deze rol zul je veel vrijheid en verantwoordelijkheid krijgen om gezamenlijk de applicatie naar een hoger plan te tillen. Wat ga je verder doen: Optimaliseren, beheren en uitbreiden van onze applicatie; Het bouwen van aansluitingen op de systemen van partners middels API’s; Meedenken over de technische/ontwikkel-standaarden; Proactief verbeterpunten voorstellen. Bedrijfsprofiel Het is een organisatie die met een team van verschillende developers én marketeers

Bekijk vacature »

Junior .NET developer

Functie Wij hebben drie scrumteams. Het eerste team focust zich op het stukje hardware wat wij in huis doen. Zij maken als team o.a. gebruik van C++. De andere twee scrumteams zijn allebei bezig met data verwerking en maken hierbij in de backend gebruik van C# .NET / .NET Core. Het verschil tussen deze teams is dat één team de data verwerking doet voor de mobiele applicatie. Zij werken hierbij dus ook met Xamarin. Het andere team focust zich op de webapplicaties en maakt hierbij ook gebruik van ASP.NET MVC. Op basis van jouw ambities en kwaliteiten kijken wij samen

Bekijk vacature »

Full Stack Developer

Ben jij een kei van een full-stack developer? Heb je ambitie om te groeien en jezelf te ontwikkelen binnen een ambitieus bedrijf? Gaat jouw hart sneller kloppen van transpilers of frameworks zoals Angular, Vue of React? Dan ben jij de persoon die wij zoeken! Voor onze opdrachtgever zijn wij op zoek naar een full-stack developer om onderdeel te zijn van een team dat bestaat uit gedreven developers. Ieders met hun eigen specialiteiten en kennis van de projecten en behoeften vanuit de product owners. We zoeken iemand die met zijn/haar huidige competenties en domeinen dit team wil begeleiden, stimuleren en tevens

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Junior .NET developer

Functie Ons programma is voor afgestudeerde enthousiastelingen die het als een uitdaging zien om met een klein dynamisch team bij de grootste bedrijven van Nederland aan de slag te gaan. Tijdens jouw dienstverband word jij begeleid door een talent manager. Het ontwikkelen van jouw talent staat hierbij centraal. Het programma doorloop je met een team van circa 8 Mede- trainees. De eerste maand start je met een fulltime inhouse opleiding. Deze staat geheel in het teken van de werkzaamheden die jij verder in het programma zult uitvoeren. Na deze opleidingsmaand ga je aan de slag in een dynamische omgeving bij

Bekijk vacature »

UX Writer (m/v/d)

UX Writer (m/v/d) Everything we do, starts with you. Together with you, we build the most human-centric fintech. We have the ambition to create the next. And - with Bertelsmann - a strong foundation to start from. Let’s make it new – for society and for yourself. Wij zijn op zoek naar een UX Writer (m/v/d) Fulltime - Op ons kantoor in Amsterdam of Heerenveen / deels vanuit huis Als UX Writer bij Riverty hou jij je bezig met onze strategie om daar te zijn waar onze gebruikers zijn en op de manier waarop zij ons nodig hebben, terwijl wij

Bekijk vacature »

Software developer (PHP) - Utrecht centrum

Functie Ieder onderdeel van de software draait op aparte servers en het bestaat dus echt uit verschillende componenten. Het team bestaat uit 4 developers, een klein team dus met korte lijnen. Alles in intern ontwikkeld en je werkt aan alle facetten. Van uitbreiding van de core tot maatwerk voor de klant. Ook liggen er verschillende uitdagingen op servervlak en databases. Je zult de eerste periode veel samenwerken met de lead developer om vervolgens echt je gang te gaan binnen de software. In het team streven ze naast de hoogst haalbare kwaliteit. Hiervoor werken ze nauw met elkaar samen en levert

Bekijk vacature »

Java Developer (Training And Simulation)

Wat jij doet Je zou onze Java Developer zijn en nauw samenwerken met je Product Owner, Software System Engineer, Scrum Master en andere Developers. Samen draag je bij aan een multidisciplinair en zelf organiserend Agile team. De rol is zeer afwisselend en bestaat uit, maar is zeker niet beperkt tot: de-risk en prototype onbewezen simulatietechnologieën; simulatiekaders ontwikkelen voor gebruik door andere teams; je bent goed in het begrijpen van ingewikkelde ideeën; heeft de mogelijkheid om nauw samen te werken met grote internationale klanten, leveranciers en overheden om onze oplossingen, vastleggingsvereisten, enz. te definiëren en te presenteren. Ben jij het? Wij

Bekijk vacature »

Full-stack Developer

As a Full-stack developer at KUBUS, you will develop the (web)applications and services of BIMcollab. You will work on both the front- and back-end. As a software company, KUBUS is in a unique position. We build our own products that are used by tens of thousands of users worldwide. Our company is just the right size: big enough to make a real impact in the market, but small enough that as an individual developer you can have an impact and really make a difference. Our development team consists of over 40 developers, testers, scrum masters and product owners, divided over

Bekijk vacature »

Back-End Developer in Laravel / PHP

Functie omschrijving Wij zijn op zoek naar een Medior PHP Laravel Developer voor een gaaf bedrijf in de omgeving van Amsterdam! Voor een enthousiast team die zich graag bezig houdt met softwareontwikkeling zijn wij op zoek naar versterking. Je werkt in een klein ontwikkelteam en bent zeer betrokken bij alle aspecten van de softwareoplossingen. Van het ontwerpen tot de oplevering. Binnen deze functie ga je aan de slag met het aanpassen, verbeteren en vernieuwen van de logistieke oplossingen. Je krijgt veel te maken met koppelingen naar systemen en de verzoeken van de klant. Je komt terecht in een team, waarbij

Bekijk vacature »

C#.NET-developer - JUNIOR

Functie omschrijving Voor een leuke opdrachtgever in omgeving Brielle zijn wij op zoek naar een junior developer. Werk jij graag met de volgende tools & technieken? C#, .NET, ASP.NET, MVC en SQL? Kijk dan snel of dit iets voor jou is! Als programmeur bij een productiebedrijf zal je voornamelijk nieuwe software schrijven maar ook bestaande software verbeteren. Verder werk je veel samen in back end projecten met leuke collega's. Bedrijfsprofiel Met een team van ruim 130 personen staan ze elke dag weer klaar om IT en Business te combineren door het ontwikkelen van producten op maat. Er zijn 3 teams,

Bekijk vacature »
Matthijs PHPHULP

Matthijs PHPHULP

29/11/2010 20:55:33
Quote Anchor link
Mijn eerste post op dit forum, dus daarom zal ik mij eerst even kort voorstellen:
Naam: Matthijs
Leeftijd: 16
School: VWO 5e klas
Programmeertalen: HTML, CSS, (PHP beetje) en aan het leren.

Tot zover over mij :p

Nu mijn vraag, ik ben bezig met een webwinkel, alleen moet ik nu zelf wat codes gaan schrijven om alles netjes af te handelen, etc. Maar ik ben nog niet zo lang bezig met PHP, ik ben zeg maar net uit de fase "scripts bewerken" gekomen en ben net beland in de zelf script bouw fase.

Maar natuurlijk zijn daar in het begin wat problemen mee, dus vandaar deze vraag.

Ik ben bezig met het bestellingsysteem, en ik heb dus eerst een scriptje geschreven om de database te updaten als er een bestelling is gedaan. Daarvoor gebruik ik het volgende script: (zoals ik al zei, eerste volledig zelf geschreven script, dus waarschijnlijk veel onhandige dingen, graag tips om te verbeteren :))

Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
session_start();

include "header.php";

if( $_SESSION['winkelwagen'] ) {
    echo "<table border=2 cellpadding=0 cellspacing=0>";
    echo "<tr><td><b>Aantal</b></td><td><b>Naam</b></td><td><b>Prijs in &euro;</b></td></tr>"; // bovenste regel
    $totaal = 0;

//Haalt klant ID op.
    $info = $login->get_login_info('alles');
    $klantid = $info['id'];
//Maakt een nieuwe Bestelling ID aan, en doet daarin de Klant ID
    $sql = "INSERT INTO Bestelling (KLANT_ID) VALUES ($klantid)";
        if (!mysql_query($sql)) { // voer SQL code uit
        echo "Toevoegen bestelling mislukt!";
//haalt de zojuist ingevoerde bestelling id op om vervolgens te gebruiken voor de tabel order (zie omschrijving onder) Ik denk zelf dat het hier fout gaat.
        $bestellingid = mysql_insert_id();
    
// Dus voor ieder product in het winkelmandje moet er een regel worden aangemaakt in Order
    foreach ( $_SESSION['winkelwagen'] as $key=>$val ) {
    
    $sql = "SELECT * FROM Artikel WHERE ARTIKEL_ID=$key";
    $resultaat = mysql_query($sql);
    
    while ($rij = mysql_fetch_array($resultaat)) {
        echo "<tr>";
        echo "<td>$val</td>";
        echo "<td>".$rij["Naam"]."</td>";
        echo "<td>".number_format($rij["Prijs"], 2, ',', ' ')."</td>";
        echo "</tr>";
        $totaal = $totaal + ($rij["Prijs"] * $val);
        $prijs = $rij["Prijs"];
        $datum = date("d-m-Y", time());
        
// hier worden de artikelen in de Tabel Orders gezet.
    $sql = "INSERT INTO Orders (BESTELLING_ID, ARTIKEL_ID, Aantal, Prijs, Datum) VALUES ($bestellingid, $key, $val, $prijs, NOW())";
    if (!mysql_query($sql)) { // voer SQL code uit
        echo "Toevoegen bestelling deel 2 mislukt!";
        }
}
}
}
}


include "footer.php";

?>


De bedoeling van dit script is dat de artikelen uit het winkelwagentje allemaal in de database komen. In de tabel Bestelling (namen hadden beter gekund :p) komt de Bestelling ID en de Klant ID, dit is dus de "koppel" tabel. In de tabel Klant staan alle gegevens van de klant, maar dat is verder hier niet van belang.

In de tabel Order moeten de producten die in een bepaalde bestelling zitten bij elkaar komen, dus voor ieder product moet een aparte Order ID, maar de Bestelling ID moet bij ieder product van één bestelling hetzelfde blijven.

Bij hoe het script nu is wordt er voor ieder product in de winkelmandje een aparte Bestelling ID aangemaakt. Dus er klopt iets niet.

Als jullie ook andere fouten zien in het script, graag ook melden want daar leer ik natuurlijk ook van.

Als jullie nog andere scripts of extra informatie nodig hebben, vraag het dan.

Alvast bedankt,
Matthijs
Gewijzigd op 29/11/2010 20:56:03 door Matthijs PHPHULP
 
PHP hulp

PHP hulp

28/04/2024 10:38:02
 
Kris Peeters

Kris Peeters

30/11/2010 11:27:34
Quote Anchor link
Werkt dit script?
Op het eerste zicht, lijkt de accolade op lijn 16 wat vreemd.
Die block code, wordt die enkel uitgevoerd als de insert mislukt is?


Verder vind ik het er proper uit zien. Goed bezig, lijkt me.

Let nog een beetje op indentering (het aantal spaties aan het begin van de lijn).
Zorg dat de sluitende accolade op de plaats komt die overeen komt met de lijn waar de accolade geopend is. Binnen de accolades laat je de code twee spaties meer naar rechts starten
bv.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
   while ($i < 10) {
     $sqr = $i * $i;
     if ($i > 25) {
       ...
     }
   }

?>


Meer lees je hier:
http://drupal.org/coding-standards

Er zijn andere coding standards, maar hier hou ik me toch liefst aan.
 
John D

John D

30/11/2010 13:02:42
Quote Anchor link
check eerst je datamodel. Tips:
tabel orders key=id, foreignkey=klant_id
tabel orderregels key=id en foreignkey=order_id
tabel klanten key=id
tabel producten key=id
tabel product_prijs key=id en foreignkey=product_id, belangrijk attribuut: datum_tot
Gewijzigd op 30/11/2010 13:06:04 door John D
 
Matthijs PHPHULP

Matthijs PHPHULP

30/11/2010 17:44:46
Quote Anchor link
Hehe eindelijk gelukt! Bedankt Kris, ik was er echt al een tijd mee bezig, allerlei andere omslachtige manieren proberen en dan lukt het op deze manier gewoon, een simpele accolade. Nou ja zo is dat altijd bij programmeren :)

En @John, maar wat is er dan mis met de database? (behalve de namen Orders en Bestelling?)

En verder is dit script makkelijk te omzeilen of te "hacken" of op welke andere manier dan ook dit te verstoren? Injection ofzo? En zo ja wat kan ik daar tegen doen?

Heel erg bedankt voor de rest, nu ga ik werken aan het script om dit mooi weer te geven, dus waarschijnlijk heb ik daar vanavond ook nog wel wat vragen over :p



Matthijs
Gewijzigd op 30/11/2010 17:45:41 door Matthijs PHPHULP
 
Kris Peeters

Kris Peeters

30/11/2010 17:51:19
Quote Anchor link
Matthijs Thoolen op 30/11/2010 17:44:46:
... En verder is dit script makkelijk te omzeilen of te "hacken" of op welke andere manier dan ook dit te verstoren? Injection ofzo? ...


Lijkt me niet. Ik zie toch niet direct iets gevaarlijks.

Over het algemeen is injection een probleem van data die van de gebruiker komt en in een sql string terecht komt.

Hier zie ik niets van $_GET of $_POST variabelen, laat staan dat ze in een sql string zijn verwerkt.
 

30/11/2010 19:01:21
Quote Anchor link
Matthijs Thoolen op 30/11/2010 17:44:46:
(...)
En @John, maar wat is er dan mis met de database? (behalve de namen Orders en Bestelling?)
(...)

Ik heb het even snel doorgekeken, volgens mij kan er redunantie ontstaan. Ik zag ergens dat je alleen een klantid insert, dat kan per definitie niet goed zijn, want wat zegt dat? Niks. Die zou bij bestellingen in kunnen.
Zie ook normaliseren.

Kris Peeters op 30/11/2010 17:51:19:
Matthijs Thoolen op 30/11/2010 17:44:46:
... En verder is dit script makkelijk te omzeilen of te "hacken" of op welke andere manier dan ook dit te verstoren? Injection ofzo? ...


Lijkt me niet. Ik zie toch niet direct iets gevaarlijks.

Over het algemeen is injection een probleem van data die van de gebruiker komt en in een sql string terecht komt.

Hier zie ik niets van $_GET of $_POST variabelen, laat staan dat ze in een sql string zijn verwerkt.

Je kunt je afvragen of die $_SESSION data veilig is.
Dat kunnen wij nu niet controleren.
 
Matthijs PHPHULP

Matthijs PHPHULP

30/11/2010 19:22:02
Quote Anchor link
Ik insert de Klant_ID, en die klantID is gekoppeld aan de Klant tabel, met daarin alle gegevens. Maar wat ik begrijp uit de wikipedia stukjes is dat ik niet steeds in iedere tabel apart alle gegevens moet opslaan. Dat doe ik toch juist niet nu ik alles link? Of begrijp ik hier iets fout?

En over die $_SESSION, hoe kan ik zorgen dat die wel veilig is dan? Of hoe moet ik het controleren, laten controleren?

Bedankt
 

30/11/2010 19:39:31
Quote Anchor link
Zie hierboven wat John heeft gepost. Dat verduidelijkt het misschien ook wat.

In principe is $_SESSION niet gevaarlijk (zoals $_GET / $_POST / $_COOKIE), maar je moet je afvragen waar die data vandaan komt die in de session zit. Als die bij de gebruiker vandaan komt, dan is die gevaarlijk.
Maar sowieso is dat niet eens erg belangrijk, alle data die je in de database zou je door mysql_real_escape_string moeten halen, niet alleen voor hacks, maar ook gewoon om te zorgen dat er geen verkeerde data in de db komt.
Functies als htmlentities gooi je over je data als je het uit de db trekt.
 
Piet Verhagen

Piet Verhagen

30/11/2010 19:49:39
Quote Anchor link
Wat betreft je HTML ...
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
border=2 cellpadding=0 cellspacing=0
Dat hoor je heden anno 2010 toch wel zo ongeveer met CSS te regelen ...
Gewijzigd op 30/11/2010 19:50:07 door Piet Verhagen
 
Matthijs PHPHULP

Matthijs PHPHULP

30/11/2010 19:53:16
Quote Anchor link
Piet Verhagen op 30/11/2010 19:49:39:
Wat betreft je HTML ...
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
border=2 cellpadding=0 cellspacing=0
Dat hoor je heden anno 2010 toch wel zo ongeveer met CSS te regelen ...


Mee eens, maar ben eerst bezig met code, en wou even snel een makkelijke opmaak. Als ik het script ga afronden ga ik het met CSS doen, hele site draait met CSS :)

Maar toch bedankt, voor het zelfde geld deed ik de hele site zo :)
 
Aad B

Aad B

30/11/2010 20:22:17
Quote Anchor link
In de tabel Order moeten de producten die in een bepaalde bestelling zitten bij elkaar komen, dus voor ieder product moet een aparte Order ID, maar de Bestelling ID moet bij ieder product van één bestelling hetzelfde blijven.
Is fout, check de tips van John, je kan beter werken met een tabel orders en een tabel orderregels. Dit is zo ongeveer les 1 in datamodellering. Uiteraard mag het ook heten: tabel bestellingen en tabel bestelregels. Overigens heb ik altijd geleerd om tabelnamen niet in meervoud te maken: tabel order, orderregel, bestelling, bestelregel. Vaak onstaat er dan discussie van tegenstanders die dan gaan beweren dat er meer orders in de tabel order kunnen en daarom de tabel orders moet heten maar dat is nou precies de foute opvatting.
 
Matthijs PHPHULP

Matthijs PHPHULP

30/11/2010 21:06:40
Quote Anchor link
Oké bedankt dan zou ik daar nog is naar gaan kijken.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.