Validator class

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Developer / PHP

Bedrijfsomschrijving Voor een organisatie in regio Eindhoven zijn wij op zoek naar een Software Developer met goede kennis van PHP. Het gaat om een software bedrijf dat te omschrijven is als informeel en open. De mensen die er werken zijn enthousiast, willen graag goede kwaliteit neerzetten, nieuwe technieken worden omarmt en alles is zo ingericht dat nieuwe tools/technieken gemakkelijk geïntegreerd kunnen worden. De organisatie is erg technisch georiënteerd, men gaat echt voor software development en heeft passie voor het vak. Er wordt geïnvesteerd in medewerkers door bijvoorbeeld opleidingen, cursussen en echt tijd voor onderzoek en innoveren. Je krijgt al snel

Bekijk vacature »

Full Stack .NET Developer voor zakelijke vergelijk

Dutch is mandatory for this position. Als Full Stack C#.NET Developer zorg jij ervoor dat het vergelijkingsplatform over de nieuwste functionaliteiten beschikt. Deze applicatie ondersteunt assurantiekantoren in het inzichtelijk maken en vergelijken van verschillende verzekeringsproducenten. Denk hierbij aan de meest actuele gegevens over premies en voorwaarden. Dit doen zij volledig onafhankelijk. Als Developer ben je bedreven in het samenvoegen van verschillende web services en databasen. Samen met jouw collega’s ben je verantwoordelijk voor het volledige ontwikkeltraject. Je schakelt makkelijk met verschillende afdelingen over bestaande en nieuw te ontwikkelen functionaliteiten. Naast het ontwikkelen van nieuwe functionaliteiten, zal je ook de bestaande

Bekijk vacature »

Medior C# Developer

You'll build modern applications for Coolblue back’s office. We have a lot of friends, and they crave well-structured data and user-friendly, task-focused applications. How do I become a Medior C# Developer at Coolblue? You regularly participate in brainstorm sessions about user experience, data, and task flow with the UX Designer, Product Owner, and Data Scientists in your team. Besides that you will create disconnected, highly congruent, and testable code that can easily be maintained and is future-proof. Want to become C# Developer at Coolblue? Read below if the job suits you. You enjoy doing this Working with various types of

Bekijk vacature »

Developer Python Azure Financial Organisation

Bedrijfsomschrijving You will work with a major bank in the Netherlands that is digitalizing very quick. The IT department is facing enormous challenges and works on new initiatives to improve the business. This vacancy is in the IT department that is focused on Risk Enterprises. This department builds systems and models, which help the business to calculate, predict and prevent risks for internal and external customers. You will work in within a team that is end-to-end responsible for the RAP platform, a data lake used for (Credit Risk) Data Modelling purposes. The team is working fully Agile DevOps and has

Bekijk vacature »

WordPress Developer

Bedrijfsomschrijving Voor een grote overheidsinstelling in Den Haag zijn wij opzoek naar een WordPress developer, met kennis en ervaring op het gebied van Javascript, HTML, XML en CSS. De organisatie zit in een grote transitie waarbij de gehele website/online omgeving vernieuwd zal gaan worden. Binnen dit Scrum/Agile team ben je verantwoordelijk voor deze grote migratie/ombouw van de omgeving. De omgeving zal geheel worden vernieuwd en je zal werken met nieuwe tools en technieken zoals React.js en Azure. Je ontwikkeld de website met WordPress en bent verantwoordelijk voor het up-to-date houden van alle WordPress-sites. Functieomschrijving Ben jij een Developer en heb

Bekijk vacature »

Java Software Developer – Smart Logistics

Bouw jij de professionele applicaties die onze klanten zo hard nodig hebben? En wil je graag met de nieuwste technologieën werken binnen een DevOps team? Lees dan snel verder! Wat ga je doen? “Use digital to move smarter De unit Smart Logistics binnen de Transport & Logistics sector van CGI ontwerpt, bouwt en onderhoudt veelal missie-kritische applicaties voor onze klanten uit de transport en logistieke sector. Zonder deze sector worden onze pakketjes niet op tijd afgeleverd, rijden de treinen niet meer van a naar b en varen schepen niet veilig de haven binnen. Om deze transport en logistieke ketens te

Bekijk vacature »

Developer Powershell

Bedrijfsomschrijving Je komt als Developer Powershell te werken in de omgeving Deventer/Apeldoorn bij een nationaal opererende organisatie. Ze blijven constant in beweging en zijn altijd bezig om de laatste innovaties door te voeren. De organisatie werkt met grote hoeveelheden data, zij richten zich zowel op de B2B als B2C markten en zijn pionier binnen hun gebied van expertise. De applicaties draaiende op het platform verwerken per maand aanvragen voor meer dan 6 miljoen gebruikers en jij mag een rol gaan spelen in de complexe technieken en infrastructuur dat schuilt rondom deze applicaties! Je komt in een team waarbij de helft

Bekijk vacature »

Synon applicatie ontwikkelaar

Voor ons hoofdkantoor in Waalwijk zoeken wij een Synon applicatie ontwikkelaar. Als Synon applicatie ontwikkelaar lever je een belangrijke bijdrage aan de automatisering en digitalisering van onze primaire bedrijfsprocessen. Als Synon applicatie ontwikkelaar lever je een belangrijke bijdrage aan de automatisering en digitalisering van onze primaire bedrijfsprocessen. In elke fase van de verdere digitalisering van ons bedrijf lever jij een coördinerende en uitvoerende bijdrage! DMG, een huis vol mogelijkheden. Je bent een belangrijke speler in het analyseren en ontwikkelen van functionaliteit op ons ERP systeem. Onze ERP applicatie is een solide basis voor de belangrijke primaire processen binnen DMG. Het

Bekijk vacature »

Full Stack Developer

Wat ga je doen? Het bouwen van een Corporate website en Community Portal, is dat iets wat jij al eerder hebt gedaan? Ben jij minimaal 32 uur beschikbaar en wil jij graag samenwerken met het ICT Robotics & Applications Team van Yource? Word onze nieuwe Full Stack Developer! Als Full Stack Developer ga jij je bezig houden met alles wat met web-ontwikkeling te maken heeft. Onder andere het bouwen en de doorontwikkeling van onze Corporate websites en Community Portal, deze zijn cruciaal in onze strategie. De Portal is dé plaats van waaruit we met potentiele kandidaten, onze members en partners

Bekijk vacature »

FrontEnd Developer NodeJS

Vanwege succes en ter uitbreiding zijn wij namens onze klant op zoek naar een Back-End Developer NodeJS die zich bezig zal houden met het schaalbaar maken en houden van diverse innovatieve, IT-gedreven oplossingen. Naast het bouwen aan de verschillende applicaties zorgt de Back-End Developer NodeJS ook een stuk voor de architectuur en overige. Bedrijfsomschrijving Key-Account van Michael Page Bekend A-merk in Europa Omschrijving Werken bij onze klant zorgt ervoor dat je als Back-End Developer nieuwe applicaties zult bouwen, meedenkt over de architectuur, performance en informatie analyse. Je werkt aan code kwaliteit, schaalbaarheid van de applicaties en consumenten oplossingen. Ook zul

Bekijk vacature »

New Business Developer ICT - Noord-Holland - &euro

Wat ga je doen? Als New Business Developer ICT ben jij de verbindende schakel tussen je werkgever en nieuwe klanten. De diensten die jij aan te bieden hebt variëren van klant tot klant. Je helpt je klanten met het vinden van de juiste oplossingen voor hun vraagstukken in de Logistiek dmv een prachtige software tool. Juist deze oplossingen die jij je klanten aan kan bieden zijn uniek omdat alles volledig aangepast kan worden naar de vraag van de klanten. De focus ligt niet op het waarmaken van de klantverwachtingen, je wordt verwacht om altijd te streven naar het overtreffen van

Bekijk vacature »

Senior C# Developer

You'll build modern applications for Coolblue back’s office. We have a lot of friends, and they crave well-structured data and user-friendly, task-focused applications. How do I become a Senior C# Developer at Coolblue? You regularly participate in brainstorm sessions about user experience, data, and task flow with the UX Designer, Product Owner, and Data Scientists in your team. Besides that you will create disconnected, highly congruent, and testable code that can easily be maintained and is future-proof. Want to become Senior C# Developer at Coolblue? Read below if the job suits you You enjoy doing this Working with various types

Bekijk vacature »

GEO-ICT/Smallworld GIS Ontwikkelaar - Utilities

Bij onze klanten vormen Geographical Information System (GIS) systemen de basis van Asset Data Management. Zie jij het als een uitdaging om als onderdeel van een DevOps team de systemen van onze klanten mee te helpen vormgeven en continu te verbeteren? Wat ga je doen? Ons team heeft als doel nog relevanter te worden voor onze klantengroep van netbeheerders. Wij hebben een grote GEO-ICT practice en daarmee zijn we in staat een fundamenteel deel van de basisregistratie van assets voor onze klanten vorm te geven. Dat doen we door het bedenken van concepten, onze klanten te adviseren op GEO-ICT gebied

Bekijk vacature »

Java Developer

Bedrijfsomschrijving You will work at a large and progressive financial organization with offices in the Netherlands and abroad. You work within the domain that is responsible for delivering several daily banking processes used by all our customers. The processes are fixed around life cycle management for the current accounts and packages, such as opening and closing an account. Your colleagues are all driven Engineers, who like to stay up-to-date with the latest technologies. You are going to work in a team that believes in the DevOps way of working. As Developer you are responsible for the technical structure of several

Bekijk vacature »

GIS Ontwikkelaar - Utilities

Bij onze klanten vormen Geographical Information Systems (GIS) de basis van het Asset Data Management van de toekomst. Zie jij het als een uitdaging om als onderdeel van een DevOps team de systemen van onze klanten te helpen vormgeven en continu te verbeteren? Wat ga je doen? Ons team bestaat uit GEO/GIS specialisten en wij spelen een belangrijke rol op het gebied van GIS ontwikkelingen bij onze klanten. Binnen onze organisatie hebben wij een grote GEO-ICT practice waarmee we in staat zijn om een fundamenteel deel van de assets basisregistratie voor onze klanten vorm te geven. Dat doen we door

Bekijk vacature »
Jorn Reed

Jorn Reed

27/05/2020 13:42:28
Quote Anchor link
Hoi allemaal.

Ik ben begonnen aan een validator class te schrijven die ik op 1 website voor meerdere formulieren te schrijven, ik heb dit ongeveer als schets geschreven:
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
//index.php
$validator = new Validator();
$validator->validate($_POST);

//Validator.php
$data = [];
$errors = [];

public function validate($values){
  $foreach($values as $key => $value){
    switch($value){
      case is_array($value);
        $this->validate_array($key, $value);
        break;
      default:
        $this->validate_text($key, $value);
    }
  }
}

public function validate_text($key, $value){
  if(isset($value) && !empty($value)){
    $this->data[$key] = $value;
  } else {
    $key = ucfirst($key);
    $this->errors[$key] = "field for $key is required";
  }
}

public function validate_array($key, $value){
    $choices = array_filter($value);
    if(!empty($choices) && count($choices) > 0) {
       $this->data[$key] = $value;
    } else {
        $this->errors[$key] = "Make atleast one of the choices"
    }
}


Ik heb sowieso nog een functie nodig die checkt of er errors zijn, zo ja dan zou ik een error functie de errors moeten kunnen laten returnen naar de html om ze daar te plaatsen, en een functie die alle $data die ontvangen is kan versturen. Voor de rest zie ik zo gauw even geen foutjes, maar die zullen er vast wel tussen zitten.
 
PHP hulp

PHP hulp

13/05/2021 18:13:48
 
Ward van der Put
Moderator

Ward van der Put

27/05/2020 14:49:03
Quote Anchor link
Als je uitsluitend $validator->validate($_POST) aanroept, hoe weet je validator dan vervolgens hoe het formulier eruitziet en wat geldige en ongeldige formulierwaarden zijn?
 
Jorn Reed

Jorn Reed

27/05/2020 14:54:59
Quote Anchor link
Ik dacht dat ik met die foreach de velden kon loopen, en in de switch kan checken wat voor soort veld het is, en aan de hand daarvan de juiste validatie functie gebruiken.
 
Rob Doemaarwat

Rob Doemaarwat

27/05/2020 15:11:14
Quote Anchor link
Wat er niet is (bijvoorbeeld een niet aangevinkte checkbox zit niet in de $_POST) ga je dan ook niet controleren.

Is '123a' een (foutief) getal of een (correcte) string?

Wat als je at least 2 vinkjes moet zetten?

Wat als een string aan een bepaald formaat moet voldoen (min/max aantal tekens, geen cijfers, enz)?
 
Jorn Reed

Jorn Reed

27/05/2020 15:33:54
Quote Anchor link
In mijn geval is het met een array van iets dat in een $_POST variabel zit, is dat er minstens 1 waarde in de array moet zitten. een lege array zou dus een error moeten geven. Al die andere regels zoals wat je in je laatste zin zet, zou ik bijvoorbeeld een validate_email functie moeten maken om te checken of het een geldig email is, en voor andere velden het zelfde concept maar dan anders. Etc.
 
Thomas van den Heuvel

Thomas van den Heuvel

27/05/2020 16:34:26
Quote Anchor link
Een formulier bestaat uit velden. Aan velden kun je regels hangen. Bij de validatie zou de validatie-methode van het formulier de validatie-methode van het veld (voor alle velden, in een loop) aan moeten roepen. Elk veld zou vervolgens alle ingestelde regels voor dat veld moeten aflopen om te kijken of de validatie van het veld voldeed. Dit rapporteert het veld (object) terug aan het formulier (object), en uiteindelijk geeft het formulier een soort van reactie terug. Bijvoorbeeld ofwel een volledig gefilterd, gevalideerd array (van de oorspronkelijke POST data), ofwel false indien validatie mislukte.

Dan zul je bij velden nog leesbare foutmeldingen bij moeten houden, en deze op een of andere manier moeten bewaren als je terug wordt gestuurd naar het formulier. Deze zou je bijvoorbeeld op kunnen slaan in een sessie.

Idealiter zal er dus communicatie tussen de objecten plaatsvinden. Hierbij zou je zelfs de validatiemethoden aan een veld-class kunnen hangen, of er dus voor kunnen kiezen om hier aparte classes voor te maken, maar het is niet echt nodig om dit zover uit te splitsen allemaal, ook omdat de validatieregels vaak redelijk specifiek zijn, of op een specifieke manier gecontroleerd dienen te worden binnen het veld(type).
 



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.