Beveiliging/foutafhandeling

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Back-end Programmeur

Functieomschrijving Heb jij kort geleden je HBO ICT in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een ambitieuze werkgever in de regio van Breda zijn wij op zoek naar een Back-end programmeur met affiniteit met C#.NET, SQL en MS Access. Samen met team bestaand uit ware ICT professionals ben je verantwoordelijk voor het bouwen van maatwerk software voor hun klanten. Belangrijk is dat je kennis of ervaring hebt van C#.NET en SQL. Je toont een flexibele en sociale houding naar klanten toe. Je denkt in nieuwe mogelijkheden & gaat graag de uitdaging aan. Bedrijfsprofiel De

Bekijk vacature »

Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 12946 Introductie We are looking for a Java Developer! Our client is one of the most innovation companies located within the Netherlands. We provide high quality software in a high-tech and challenging market. Functieomschrijving The department is specialized in creating and developing high quality software for manufacturing automation in a high tech environment. We strive to provide our clients with high quality software and deliver state of the art solutions in a variety of ways. Creating software infrastructure using Java SE / EE Create applications to fine tune manufacturing processes

Bekijk vacature »

Web Developer

Bedrijfsomschrijving ENGIE Nederland is onderdeel van de beursgenoteerde ENGIE Groep. ENGIE is actief in 70 landen, met wereldwijd 150.000 medewerkers. Als groep is het de missie om bij te dragen aan de verduurzaming van de wereld. ENGIE Energie biedt energiediensten aan particulieren en grootzakelijk en gaat de uitdagingen van de energietransitie aan door het beschikbaar maken van duurzame energie, het streven de klimaatverandering tot een minimum te beperken, leveringszekerheid te bieden en zorg te dragen voor een verantwoord gebruik van de beschikbare resources. ENGIE Energie investeert daarom in hernieuwbare energiebronnen zoals zon, wind en bio-gas. Functieomschrijving Heb jij veel ervaring

Bekijk vacature »

Front-end Developer

Do you want to work with the latest technologies on the development of new systems and applications? Create elegant interfaces using VueJS for thousands of users? Get moving and strengthen Nederlandse Loterij as a Front-end Developer. Thanks to your efforts, our services are always presented in style. As a Front-end Developer you are responsible for website development and improving customer experience based on data analyze. In this way, you directly contribute to a happy, healthy and sporty Netherlands. As a Front-end Developer you score by: Writing elegant, testable components without side-effects to provide functionality to the users Website development, adding

Bekijk vacature »

Technisch Applicatie ontwikkelaar

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging en zoek jij een informele werkgever waar je zelfstandig kunt werken binnen een leuk IT team, lees dan snel verder want wie weet zijn wij op zoek naar jou! In deze functie werk jij voornamelijk aan: Het onderhouden en ontwikkelen van de IT systemen; Het opzetten van Azure Cloud systemen, denk aan interfaces, hardware op de Cloud, webportalen of BI functies; Werk je aan scripts binnen verschillende software applicaties, denk aan ERP en CAD; Ontwikkel en implementeren je MS PowerApps en Power BI. Bedrijfsprofiel Je komt terecht bij een familiair

Bekijk vacature »

SQL database developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als SQL database developer? Dit bedrijf bouwt applicaties om processen in distributiecentra te optimaliseren. Ter uitbreiding van het development team zijn wij op zoek naar een SQL database ontwikkelaar. Wil jij werken voor een groeiende werkgever in regio Breda waar jij de ruimte en tijd krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je houdt je bezig met het creëren en bouwen van MS SQL server databases; Je werkt aan innovatieve softwareoplossingen voor het verbeteren en/of vernieuwen van logistieke processen; Je gaat projecten vanaf het begin tot het

Bekijk vacature »

Software Developer

Bij een bedrijf in de machinebouw, regio Roosendaal, zijn we op zoek naar een: Software Developer Waar ga je werken? Onze opdrachtgever is gespecialiseerd in de grondverzetmachines. Al meer dan 50 jaar leveren ze zowel nationaal als internationaal diverse machines. Het is een familiebedrijf met een informele werksfeer. Wat ga je doen? Als Software Developer je verantwoordelijk voor: - Je werkt voortdurend aan oplossingen voor het op afstand bewaken en besturen van oogstmachines; - Het visualiseren van gegevens in rapporten, apps of andere formaten; - Voorspellend machineonderhoud; - Taakplanning; - Je schrijft aangepaste plug-ins om gegevens te importeren of exporteren

Bekijk vacature »

Database Developer

Functie omschrijving Voor een logistieke dienstverlener in omgeving Zuid Beijerland zijn wij op zoek naar versterking. Weet jij als geen ander systemen aan elkaar te koppelen en heb jij goede kennis van SQL en UML, lees dan snel verder! Jouw taken zien er als volgt uit: Je bent in deze rol voornamelijk verantwoordelijk voor het bouwen, implementeren en beheren van koppelingen tussen de bestaande systemen (zowel business 2 business als application 2 application). Daarnaast inventariseer je de wensen van in- en externe klanten, die je vervolgens samen met je collega's, vertaalt naar technische specificaties, die jullie zelf ontwikkelen en implementeren.

Bekijk vacature »

IoT Developer

Ben jij innovatief, heb jij passie voor energie en ben je data gedreven? Bouw dan mee aan IoT binnen Bredenoord. Samen met een gedreven team werk jij aan mooie technische en innovatieve oplossingen. Wat houdt de functie van IoT Developer in? Binnen Bredenoord zijn wij momenteel volop in ontwikkeling met ons IoT platform. Als uitbreiding van ons team zijn wij op zoek naar een IoT Developer. Je zal in projectverband meehelpen met het implementeren van IoT vraagstukken binnen Bredenoord. Als IoT Developer op onze R&D-afdeling word je verantwoordelijk voor het verder inrichten en beheren van ons nieuwe IoT platform. Dat

Bekijk vacature »

Software Developer (Junior functie)

Functieomschrijving Wij zijn op zoek naar een Software Developer! Sta jij in de startblokken om je carrière te beginnen en kan je niet wachten om toffe software te gaan ontwikkelen? Kortom, ben je onlangs afgestudeerd of sta je op het punt om je papiertje te behalen? Voor een IT dienstverlener dat gespecialiseerd is in Microsoft technologie zijn wij op zoek naar C#.NET Developers. Het bedrijf heeft meerdere klanten in regio Utrecht waar je permanent kan komen te werken. Kom je liever te werken bij een klein softwarebedrijf of bij een groot consultancy bureau? Dat is helemaal aan jou de keuze!

Bekijk vacature »

.NET Developer

Functie omschrijving .NET developer met ervaring gezocht! Voor een softwarebedrijf in de regio Veenendaal zijn wij op zoek naar een .NET developer met een aantal jaar ervaring. Jij bent zowel zelfstandig als in teamverband verantwoordelijk voor het ontwikkelen en verbeteren van bestaande producten. Verder ben je bezig met nieuwbouw van websites, webapplicaties en mobiele applicaties die zowel intern als extern gebruikt worden. Je werkt hierbij nauw samen met andere developer, productmanagers en productspecialisten om zo mooie producten te creëren. Bedrijfsprofiel De organisatie waar je voor gaat werken is een snelgroeiende softwareleverancier en allround dienstverlener. Deze organisatie heeft zowel klanten die

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 »

API Developer Red Hat Fuse

Dit ga je doen Als API Developer zal je verantwoordelijk zijn voor het: het maken van API's en het correct laten draaien van de API's op het platform. Hierdoor kom je in aanraking met Red Hat Fuse, Springt Boot, 3Scale, Red Hat SSO, Openshift en Azure DevOps; zorgen voor de kwaliteit van de ontwikkeling, integratie en prestaties van de API's; zorgen voor een stabiel integratieplatform. Hier ga je werken Deze organisatie is een toonaangevende speler in de vastgoedbranche en telt momenteel ruim 500 medewerkers. Met meer dan 150 applicaties staat er een complex applicatielandschap dat hoofdzakelijk op OpenShift, Azure en

Bekijk vacature »

Implementatie specialist

Standplaats: Honselersdijk Aantal uren: 32 – 40 uur Opleidingsniveau: HBO werk- en denkniveau Ben jij de implementatie expert die onze klanten helpt bij het integreren van de Greencommerce software? Ben jij daarnaast communicatief sterk, denk jij graag in verbeteringen en heb je ervaring met ICT? Lees dan snel verder! Bedrijfsinformatie Jem-id is een grote speler op het gebied van software ontwikkeling. Zo zijn wij continu bezig met het ontwikkelen van de meest innovatieve software voor de AGF- en sierteeltsector. We creëren oplossingen die er toe doen en verbinden klanten niet alleen op technisch vlak, maar zoeken ook de verbinding in

Bekijk vacature »

Medior Mobile Developer iOS Amsterdam

Functie What will you be doing as Mobile Developer? As an iOS app developer you will work in a multidisciplinary team of app developers, web developers and designers. You will work on world-class apps that will be used by thousands of people. There is a lot of room for self-development on a technical and personal level. Together with the rest of the team you develop in the newest techniques and you go for the best quality. We work with Kotlin Multiplatform Mobile to develop hybrid apps and we guarantee quality with peer reviews, unit testing and we use a CI/CD.

Bekijk vacature »
Niels Rietveld

Niels Rietveld

24/02/2015 19:03:32
Quote Anchor link
Ik heb mijn eerste PHP insert scriptje gemaakt, alleen hoe kan ik de foutafhandeling goed maken.
Zoals dat als nu maximaal aantal tekens gebruik is krijg ik warning enz.
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
<?php
include("config.php");

$name = 'Niels' ;

if(isset($_POST['submit'])) {
  $title = trim($_POST['title']);
  $content = trim($_POST['text']);

mysql_query("INSERT INTO pages (pagina, inhoud, auteur, editdate, created)
VALUES ('"
.$title."', '".$content."', '".$name."', NOW(),'NOW());");

  }

{;
?>

Created
<?;}
?>
 
PHP hulp

PHP hulp

23/11/2024 12:10:35
 
- SanThe -

- SanThe -

24/02/2015 19:07:55
Quote Anchor link
Je andere topics lezen.
 
- Ariën  -
Beheerder

- Ariën -

24/02/2015 19:09:05
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$string
= "Dit is een lange string!";
if(strlen($string)>10) {
    echo "De string is langer dan 10 tekens!";
}

?>



Verder is je MySQL-code lek, omdat mysql_real_escape_string() ontbreekt. Je bent nu vastbaar voor hacks.
Gewijzigd op 24/02/2015 19:09:48 door - Ariën -
 
Eeyk Vd noot

Eeyk Vd noot

24/02/2015 19:09:49
Quote Anchor link
Gebruik geen Mysql_query(""); deze verouderd probeer Mysqli te gebruiken.
En NOOIT een input direct in een database zetten! dit script is niet veilig. gebruik mysql_real_escape_string(); en als je mysqli gebruikt, gebruik dan mysqli_real_escape_string();


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
mysql_query("INSERT INTO pages (pagina, inhoud, auteur, editdate, created)
VALUES ('"
.$title."', '".$content."', '".$name."', NOW(),NOW())");
?>


gebruik ) or die(mysql_error()); om een fout te krijgen.
 
- Ariën  -
Beheerder

- Ariën -

24/02/2015 19:12:08
Quote Anchor link
Yegh... 'or die(mysql_error())....
Waarom moet het script dood als er wat fout gaat?

Zorg liever dat het script netjes de juiste afslag kiest om vervolgens weer zijn weg te vervolgen.
http://www.phphulp.nl/php/tutorial/data-verwerking/foutafhandeling-query-sql/735/algemene-structuur/1930/
 
Eeyk Vd noot

Eeyk Vd noot

24/02/2015 19:14:07
Quote Anchor link
Je kan ook trigger_error gebruiken is ook stuk beter.
maar ik maakte het gewoon simpel ;p
 
Niels Rietveld

Niels Rietveld

24/02/2015 19:18:06
Quote Anchor link
Misschien een gekke vraag, maar wat is nou eigenlijk precies het verschil tussen MySQL en MySQLi?
 
- SanThe -

- SanThe -

24/02/2015 20:04:03
Quote Anchor link
Zie php.net.
mysql_ gaat verdwijnen.
 
Thomas van den Heuvel

Thomas van den Heuvel

24/02/2015 20:09:50
Quote Anchor link
Hangt een beetje van de context af waarin je het gebruikt. MySQL kan zowel betekenen:
- het database-type / de database-variant "MySQL"
- de PHP-extensie die je in staat stelt te communiceren met een MySQL-database (hier vallen functies die starten met "mysql_" onder)

MySQLi (MySQL improved) is een nieuwe(re) PHP-extensie voor communicatie met je MySQL-database. De oorspronkelijke extensie (mysql) is eigenlijk al ~10 jaar verouderd en wordt op korte termijn uitgefaseerd.

Als je nieuwe code schrijft zou je geen gebruik meer moeten maken van de mysql-extensie (functies die starten met "mysql_").

Naast MySQLi kun je ook PDO gebruiken om met een MySQL-database te communiceren - PDO (die niet voor een specifiek database-type geschreven is) heeft tevens een MySQL-driver (PDO_MYSQL).

Wat SanThe dus zegt, eigenlijk :).
 
Niels Rietveld

Niels Rietveld

24/02/2015 20:30:32
Quote Anchor link
Wordt het dan dit?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
mysqli_query("INSERT INTO pages (pagina, inhoud, auteur, editdate, created)
VALUES ('"
.$title."', '".$content."', '".$name."', NOW(),NOW())");
?>
 
- Ariën  -
Beheerder

- Ariën -

24/02/2015 21:25:08
Quote Anchor link
Nee, maar je zit wel op de goede weg.
Je moet je databaseconnectie meegeven, en mysqli_real_escape_string() mist nog.
 
Niels Rietveld

Niels Rietveld

24/02/2015 23:07:59
Quote Anchor link
Ik krijg allemaal errors dat de syntax verkeerd is...


Toevoeging op 24/02/2015 23:16:39:

Ik hou het wel bij mysql_query, mysqli_query is vaag..
 
Thomas van den Heuvel

Thomas van den Heuvel

24/02/2015 23:37:10
Quote Anchor link
De mysql-extensie gaat verdwijnen, het lijkt mij toch verstandig je vertrouwd te maken met mysqli of PDO. Tis gewoon een kwestie van wennen. En als je het vaag of onhandig vindt werken, zoek een (of maak je eigen) wrapper-class zodat je hetzelfde kunt doen met minder code.
 
Niels Rietveld

Niels Rietveld

25/02/2015 12:55:04
Quote Anchor link
Oké, ik heb nu dit ervan gemaakt:

create.php
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
<?php
include("config.php");

$name = 'Niels' ;



mysqli_query($db, "INSERT INTO pages (pagina, inhoud, auteur, editdate, created)
VALUES ('"
.mysqli_real_escape_string($_POST['title'])."', '".mysqli_real_escape_string($_POST['text'])."', '".$name."', NOW(),'NOW());");

  }

{;
?>

Created
<?;}
?>


config.php
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
<?php

if(strtolower(basename($_SERVER['PHP_SELF'])) == strtolower(basename(__FILE__))) {
    die('<font face="arial"><u>Geen toegang.</u></font>');
}



$db = mysqli_connect('localhost', 'xxxxx', 'xxxxx', 'xxxxx');


if (mysqli_connect_errno()) {
    echo 'Connectie mislukt: ' . mysqli_connect_error();
    exit();
}

?>


Ik krijg deze errors:

Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in create.php on line 12

Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in create.php on line 12
 
- Ariën  -
Beheerder

- Ariën -

25/02/2015 13:13:00
Quote Anchor link
Vertalen is niet zo heel lastig.

Quote:
mysqli_real_escape_string() verwacht precies 2 parameters, er is er maar 1 gegeven.

Dus dan wordt duidelijk dat we een parameter missen, en dus gaan we eens kijken op php.net.

We zien daar dat we de mysqli_real_escape_string-functie gebruiken, dus de procedurele manier, en dan zien we dus dat de opbouw (geen PHP-code) als volgt is:
Quote:
string mysqli_real_escape_string ( mysqli $link , string $escapestr )

Dan komt het erop neer dat je de link-identifier van je gebruikte mysqli_connect() mee moet geven aan de functie.

Nu mag jij raden hoe het wel hoort. ;-)
Niet vaags aan, zoals je eerder aangaf. Gewoon een kwestie van logisch kijken en manuals lezen.
Gewijzigd op 25/02/2015 13:15:32 door - Ariën -
 
Niels Rietveld

Niels Rietveld

25/02/2015 13:18:27
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
mysqli_real_escape_string($db, $_POST['title'])


Thanks het werkt!
 
Thomas van den Heuvel

Thomas van den Heuvel

25/02/2015 13:19:30
Quote Anchor link
Tijd om de handleiding er op na te slaan.

In principe hanteert mysqli twee schrijfwijzen:
- een procedurele variant
- een object georienteerde variant

Om verschillende redenen is het verstandiger om de object georienteerde variant te gebruiken, al was het maar om de kortere code die dit oplevert.

Als je toch de procedurele variant wilt gebruiken zul je twee argumenten moeten opgeven.
De eerste parameter (het eerste argument) bevat je connectie-object, in jouw geval is dit $db.
De tweede parameter bevat de te escapen invoer.

Hierbij (bij het escapen van DATA) is het EXTREEM BELANGRIJK dat je de juiste character encoding selecteert bij het maken van een verbinding van je database.

Om het voordeel van een wrapper te illusteren: je zou voor het escapen van je data een methode kunnen maken:
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
<?php
class Database_MySQLi
{
    // ...
    protected $conn; // mysqli object
    // ...


    function escape($input) {
        return $this->conn->real_escape_string($input)
    }


    // ...
}
?>


Je procedurele code ziet er zo uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
mysql_real_escape_string($db, $input);
?>


De object georienteerde variant zou er zo uitzien:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$db
->real_escape_string($input);
?>


En als je van een wrapper class gebruik zou maken blijft hier dit van over:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$db
->escape($input);
?>


Een ander voordeel is dat je, in tegenstelling tot de eerste twee varianten, geen specifieke database(-extensie) functies gebruikt en daarmee het "hardcoden" hiervan verplaatst naar je wrapper class. Als je op een gegeven moment schakelt van de manier waarom je communiceert met je MySQL-database, dan hoef je dit soort functies niet te zoeken/vervangen in je code, maar in het meest gunstige geval hoef je alleen de implementatie van je wrapper class (op een plaats, in plaats van door heel je code) aan te passen.
Gewijzigd op 25/02/2015 13:23:19 door Thomas van den Heuvel
 
- Ariën  -
Beheerder

- Ariën -

25/02/2015 13:26:14
Quote Anchor link
Thomas, echt erg leuk dat je advies wilt geven, en ik waardeer het uiteraard, maar houd rekening ermee dat Niels beginner is. Methodes en (wrappper)-classes zijn in mijn ogen nog niet de dingen waar hij naar moet kijken.

Om op je wrapper-class terug te komen, je kan de MySQLi-class ook extenden om eigen functies te maken.
 



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.