Beveiliging/foutafhandeling

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

SQL Database ontwikkelaar

Functie omschrijving Wil jij meewerken aan het creëren van slimme software om magazijnen als een geoliede machine te laten lopen? Wij zoeken een zorgvuldig persoon, iemand die niet snel de hand omdraait voor complexe algoritmes. Denk jij dat jij de SQL ontwikkelaar bent die wij zoeken? Lees snel verder en wie weet zitten we binnenkort samen aan tafel! Jouw werkzaamheden zullen er als volgt uitzien: Je houdt je bezig met het ontwerpen en ontwikkelen van MS SQL server databases, dit doe je met T-SQL als programmeer laag. Je gaat aan high-end software oplossingen werken, dit doe je voor de optimalisatie

Bekijk vacature »

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Ervaren PHP Software Developer

Functieomschrijving Voor een toffe opdrachtgever in regio Breda zijn wij op zoek naar een medior PHP Developer met affiniteit met Laravel. Je komt te werken bij een uitdagende opdrachtgever met supergave klanten in een specifieke branche. Als PHP ontwikkelaar ben je samen met een vooruitstrevende team van 6 collega’s verantwoordelijk voor de ontwikkeling, beheer en het vernieuwen van informatiesystemen voor een specifieke branche. Je ondersteunt complexe uitdagingen van klanten. Vervolgens breng je hun wensen in kaart en vertaalt deze door naar maatwerk software. Affiniteit met Laravel is een pré. Om de klanten zo goed mogelijk te ondersteunen en snel in

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 »

3D BIM Add-on Developer

As a 3D BIM add- on developer at KUBUS, you will develop add-ons (called BCF- Managers) to the leading building information modeling (BIM) programs Revit, Navisworks, Archicad, AutoCAD and Tekla Structures. BCF Managers enable data transfer between BIM software and BIMcollab. You will work on both the front- and the 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

Bekijk vacature »

Als Front-end developer werken aan apps voor het o

Functie Als Front-end developer werk je intensief samen met 1 van de UX-designers en denk je mee over de gebruiksvriendelijkheid en design van onze web- en mobile apps. Je bent betrokken bij sessies met gebruikers om designs te valideren en usability van de app-in-wording te testen. Vervolgens gebruik je dit om samen met je team waarin ook back-end (.NET) developers zitten, te zorgen voor de realisatie van de best mogelijke apps voor studenten en docenten. Eisen • Je hebt een hands-on development en coding mind-set en werkt graag aan een high quality code base welke je consequent onderhouden kan worden

Bekijk vacature »

Back-end .NET Developer

Functie omschrijving C# / .NET Developer gezocht voor een dynamische organisatie in de regio Houten! Voor een leuke organisatie in de regio Houten zijn wij op zoek naar een Back-end developer die klaar is voor een nieuwe uitdaging. In deze functie werk jij aan verschillende projecten en ga je vaak bij klanten op bezoek. Binnen deze functie kun je een grote mate van uitdaging, diversiteit en verantwoordelijkheid treffen. Bedrijfsprofiel Waar ga je werken? Het bedrijf waar je gaat werken is gespecialiseerd in het ontwerpen en implementeren van procesautomatisering en procesinformatisering. Zij doen dit onder andere voor de (petro)chemie, pharma, infra,

Bekijk vacature »

Front end ontwikkelaar

Functie Het huidige team bestaat uit momenteel uit 5 back end developers verdeeld van senior tot junior. Omdat de gehele front end van applicaties anders gaan insteken zijn ze op zoek naar een ervaren Front end developer die hen kan helpen de juiste keuzes te maken. Je krijgt veel vrijheid om te bepalen hoe je dit wilt ontwikkelen en vrijheid in welke techniek je hiervoor wilt gebruiken. Je zult je dus bezighouden met architectuur, documentatie en natuurlijk ontwikkeling van nieuwe functionaliteiten binnen de verschillende applicaties. natuurlijk heb jij ook mogelijkheden om te sparren binnen het team, maar ze gaan uit

Bekijk vacature »

Medior Front-end Developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als Medior Front-end 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 »

Front-end developer (Medior/Senior)

Functie Het front-end team bestaat momenteel uit 4 collega’s en is hard aan het groeien! Samen leveren jullie een essentiële bijdrage aan de applicaties die ze voor hun klanten realiseren. Je werkt in het front-end team samen met de back-end teams en product owners om te zorgen dat de applicaties een fijne gebruikerservaring opleveren. Jouw expertise zorgt ervoor dat de juiste keuzes gemaakt worden qua techniek en ontwerp, van back-end tot aan gebruiker. In samenspraak met je team bepalen jullie de beste keuze voor techniek. Ook is er altijd ruimte om nieuwe technieken te ontdekken. Eisen • Je hebt gedegen

Bekijk vacature »

APEX Ontwikkelaar in een team van Oracle Developer

Bedrijfsomschrijving Wij zijn op zoek naar een APEX Ontwikkelaar om onze opdrachtgever in Den Haag te versterken. In deze rol zul je verantwoordelijk zijn voor het ontwikkelen en onderhouden van de front-end van onze applicaties met behulp van Oracle Application Express (APEX). Je werkt aan zowel inhouse als externe projecten. De sfeer binnen het Oracle team is gemoedelijk en men probeert elkaar te helpen én van elkaar te leren. Zo ontstaat er een prettige en plezierige werksfeer waar ruimte is voor persoonlijke ontwikkeling en groei. Er wordt gewerkt met de meest nieuwe technologieën waardoor je kennis up-to-date blijft. Het bedrijf

Bekijk vacature »

Frontend Developer

Dit ga je doen Door ontwikkelen van het online platform Deel uitmaken van verschillende ontwikkelteams Meedenken over UI/UX vraagstukken Uitdragen van Front-end binnen de organisatie Hier ga je werken Deze organisatie, gevestigd in de omgeving van Amsterdam, is een grote onderwijs instelling met meerdere vestigingen en een groot aantal studenten. Zo telt deze organisatie +/- 35.000 gebruikers. Bij deze organisatie staat jouw ontwikkeling centraal en is er veel ruimte voor eigen initiatieven. In samenwerking met jouw team ga jij de online omgeving verder ontwikkelen. In de rol van Front end Developer zal jij 50% van jouw tijd werken in het

Bekijk vacature »

Front-end developer wanted! (Angular, React, Vue.j

Functie Under the guidance of 3 account managers, one of whom will be your point of contact within your expertise, you will start working for various clients. He or she will help you find a suitable and challenging assignment. Naturally, they will take your situation, experience and (technical) ambitions into account. The assignments last one to two years on average. This allows you to really commit to a project and make an impact as a consultant. Besides the assignment, you will regularly meet your colleagues from the IT department to share knowledge or discuss new trends, for example. Master classes

Bekijk vacature »

Junior Software Developer

Functie omschrijving Wij zijn op zoek naar een Junior Software Developer .NET, C# voor een gaaf bedrijf in de omgeving van Utrecht! Sta jij aan het begin van je carrière en heb je net je HBO of WO-diploma in de richting van ICT of Techniek mogen ontvangen? En heb jij grote affiniteit met software development? Lees dan snel verder! Voor een opdrachtgever in de omgeving van Utrecht, zijn wij op zoek naar een Junior Software Developer. Werk jij graag aan verschillende projecten en ga je graag klanten op bezoek? Dan is dit de ideale functie voor jou! Binnen deze functie

Bekijk vacature »

.NET developer

Functie Als .NET developer start jij in een development team met één Senior .NET developer en één junior .NET developer. 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 moment veel gebruik van .NET met ASP.NET. Komend kwartaal gaan wij wel gedeeltelijk overstappen naar .NET Core. Verder werken wij ook met SOAP, REST, JSON, HTML5, CSS3

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

25/12/2024 05:29:33
 
- 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.