abonnement Unibet Coolblue
  zaterdag 19 juli 2014 @ 09:27:30 #26
12221 Tijn
Powered by MS Paint
pi_142471151
quote:
0s.gif Op zaterdag 19 juli 2014 09:12 schreef remi1986 het volgende:

[..]

Omdat ik de functie zo had gemaakt dat je daar een array ingooit met column=>value.

Dit kan dus van alles zijn. Ik weet dus van tevoren niet wat voor waarde erin zit
Er zijn maar een paar mogelijkheden met PDO (null, bool, int en string). Je kunt makkelijk via PHP achterhalen welk type je variabele is (bv met is_null(), is_bool() en is_int()). PDO::PARAM_STR gebruik je dan als fallback als het niet een van de andere typen is.
  zaterdag 19 juli 2014 @ 09:43:14 #27
305897 remi1986
This MF is infected by madness
pi_142471343
quote:
14s.gif Op zaterdag 19 juli 2014 09:27 schreef Tijn het volgende:

[..]

Er zijn maar een paar mogelijkheden met PDO (null, bool, int en string). Je kunt makkelijk via PHP achterhalen welk type je variabele is (bv met is_null(), is_bool() en is_int()). PDO::PARAM_STR gebruik je dan als fallback als het niet een van de andere typen is.
Hmm ik zie het inderdaad. Dan kan ik beter gewoon validatie via PHP doen en dan heb ik dat hele bindParam niet nodig.
  zaterdag 19 juli 2014 @ 09:47:04 #28
12221 Tijn
Powered by MS Paint
pi_142471380
quote:
0s.gif Op zaterdag 19 juli 2014 09:43 schreef remi1986 het volgende:

[..]

Hmm ik zie het inderdaad. Dan kan ik beter gewoon validatie via PHP doen en dan heb ik dat hele bindParam niet nodig.
Ik zou juist gebruik maken van het feit dat je met bindParam() automatische escaping kado krijgt waardoor SQL-injectie wordt voorkomen. Dat dat niet gebeurt met de mysql_-functies is de voornaamste reden dat ze het aan het uitfaseren zijn.
  zaterdag 19 juli 2014 @ 09:47:04 #29
91039 mstx
2x1/2 = 1/2 x 1/2
pi_142471381
quote:
14s.gif Op zaterdag 19 juli 2014 09:27 schreef Tijn het volgende:

[..]

Er zijn maar een paar mogelijkheden met PDO (null, bool, int en string). Je kunt makkelijk via PHP achterhalen welk type je variabele is (bv met is_null(), is_bool() en is_int()). PDO::PARAM_STR gebruik je dan als fallback als het niet een van de andere typen is.
Zo doe ik het ook
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  zaterdag 19 juli 2014 @ 09:48:56 #30
305897 remi1986
This MF is infected by madness
pi_142471397
quote:
2s.gif Op zaterdag 19 juli 2014 09:47 schreef Tijn het volgende:

[..]

Ik zou juist gebruik maken van het feit dat je met bindParam() automatische escaping kado krijgt waardoor SQL-injectie wordt voorkomen. Dat dat niet gebeurt met de mysql_-functies is de voornaamste reden dat ze het aan het uitfaseren zijn.
escaping gebeurt toch middels de prepare functie? Of heb je daar echt de bindParam functie voor nodig?
  zaterdag 19 juli 2014 @ 09:50:35 #31
12221 Tijn
Powered by MS Paint
pi_142471412
quote:
0s.gif Op zaterdag 19 juli 2014 09:48 schreef remi1986 het volgende:

[..]

escaping gebeurt toch middels de prepare functie? Of heb je daar echt de bindParam functie voor nodig?
Als je prepare gebruikt, hoe stop je de variabelen er dan in? Ik doe dat met bindParam, maar ik weet eigenlijk niet eens of het ook anders kan :P
  zaterdag 19 juli 2014 @ 09:52:17 #32
305897 remi1986
This MF is infected by madness
pi_142471427
quote:
5s.gif Op zaterdag 19 juli 2014 09:50 schreef Tijn het volgende:

[..]

Als je prepare gebruikt, hoe stop je de variabelen er dan in? Ik doe dat met bindParam, maar ik weet eigenlijk niet eens of het ook anders kan :P
quote:
So what's going on here? The prepare method sends the query to the server, and it's compiled with the '?' placeholders to be used as expected arguments. The execute method sends the arguments to the server and runs the compiled statement. Since the query and the dynamic parameters are sent separately, there is no way that any SQL that is in those parameters can be executed... so NO SQL INJECTION can occur! This is a much better and safer solution than concatenating strings together.
Zo dus:
1
2
3
4
<?php
$stmt 
$db->prepare("INSERT INTO table(field1,field2,field3,field4,field5) VALUES(:field1,:field2,:field3,:field4,:field5)");
$stmt->execute(array(':field1' => $field1':field2' => $field2':field3' => $field3':field4' => $field4':field5' => $field5));
?>
  zaterdag 19 juli 2014 @ 09:54:44 #33
12221 Tijn
Powered by MS Paint
pi_142471445
Ah, ja. Ik denk eigenlijk dat het dan niet zoveel uitmaakt.
  zaterdag 19 juli 2014 @ 09:59:23 #34
305897 remi1986
This MF is infected by madness
pi_142471501
quote:
2s.gif Op zaterdag 19 juli 2014 09:54 schreef Tijn het volgende:
Ah, ja. Ik denk eigenlijk dat het dan niet zoveel uitmaakt.
Nee inderdaad. Ben er inmiddels al uit hoe ik het hebben wil. Ik laat dat bindParam gewoon weg, zodat ik dynamische insert, update en delete functies kan maken, waar ik gewoon een tabelnaam en array ingooi met column=>value.
pi_142471544
quote:
0s.gif Op zaterdag 19 juli 2014 09:59 schreef remi1986 het volgende:

[..]

Nee inderdaad. Ben er inmiddels al uit hoe ik het hebben wil. Ik laat dat bindParam gewoon weg, zodat ik dynamische insert, update en delete functies kan maken, waar ik gewoon een tabelnaam en array ingooi met column=>value.
Let er dan wel op dat die tabelnaam niet automatisch ge-escaped wordt en dat je daarmee dus nog wel potentieel sql-injection hebt.
  zaterdag 19 juli 2014 @ 10:10:28 #36
305897 remi1986
This MF is infected by madness
pi_142471659
quote:
0s.gif Op zaterdag 19 juli 2014 10:02 schreef Light het volgende:

[..]

Let er dan wel op dat die tabelnaam niet automatisch ge-escaped wordt en dat je daarmee dus nog wel potentieel sql-injection hebt.
dat zou ik kunnen opvangen door van de tabelnaam ook een parameter te maken

dus INSERT INTO :table

en dan :table meegeven in de array of voor deze wel bindParam te gebruiken.
  zaterdag 19 juli 2014 @ 10:24:36 #37
25889 Sitethief
Fulltime Flapdrol
pi_142471847
quote:
0s.gif Op zaterdag 19 juli 2014 10:10 schreef remi1986 het volgende:

[..]

dat zou ik kunnen opvangen door van de tabelnaam ook een parameter te maken

dus INSERT INTO :table

en dan :table meegeven in de array of voor deze wel bindParam te gebruiken.
Volgens mij kun je niet alle onderdelen van een query via bindParam meegeven, o.a. table names en velden achter de SELECT etc.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  zaterdag 19 juli 2014 @ 10:34:17 #38
91039 mstx
2x1/2 = 1/2 x 1/2
pi_142472005
quote:
0s.gif Op zaterdag 19 juli 2014 10:02 schreef Light het volgende:

[..]

Let er dan wel op dat die tabelnaam niet automatisch ge-escaped wordt en dat je daarmee dus nog wel potentieel sql-injection hebt.
De tabelnaam door de gebruiker laten invullen lijkt me sowieso niet handig.
Als het niet door de gebruiker wordt ingevuld hoef je het ook niet te escapen.
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_142472274
quote:
0s.gif Op zaterdag 19 juli 2014 10:24 schreef Sitethief het volgende:

[..]

Volgens mij kun je niet alle onderdelen van een query via bindParam meegeven, o.a. table names en velden achter de SELECT etc.
Correct. Tabelnamen en kolomnamen kun je niet op die manier meegeven, al was het maar omdat je daar niets aan kunt 'preparen'.
pi_142472312
quote:
0s.gif Op zaterdag 19 juli 2014 10:34 schreef mstx het volgende:

[..]

De tabelnaam door de gebruiker laten invullen lijkt me sowieso niet handig.
Als het niet door de gebruiker wordt ingevuld hoef je het ook niet te escapen.
True, maar het is wel iets waar je je bewust van moet zijn bij het schrijven van de code.
  zaterdag 19 juli 2014 @ 11:10:02 #41
305897 remi1986
This MF is infected by madness
pi_142472609
quote:
0s.gif Op zaterdag 19 juli 2014 10:49 schreef Light het volgende:

[..]

Correct. Tabelnamen en kolomnamen kun je niet op die manier meegeven, al was het maar omdat je daar niets aan kunt 'preparen'.
Hardcoded via PHP meegeven, is het dan nog mogelijk? (SQL Injection?)
1
2
3
<?php
$db
->insert("games", array("game_start" => date("Y-m-d H:i:s")));
?>

1
2
3
4
5
6
7
<?php
function insert($table$data)}
 global 
$db;

$db->prepare("INSERT INTO $table .... ");
}
?>
  zaterdag 19 juli 2014 @ 11:18:28 #42
12221 Tijn
Powered by MS Paint
pi_142472758
quote:
0s.gif Op zaterdag 19 juli 2014 11:10 schreef remi1986 het volgende:

[..]

Hardcoded via PHP meegeven, is het dan nog mogelijk? (SQL Injection?)
[ code verwijderd ]

[ code verwijderd ]

Nee, SQL-injectie gebeurt op het moment dat je gebruikersinput in je query stopt.
  dinsdag 22 juli 2014 @ 05:24:43 #43
272287 henrivo
Tikt tegen jassies
pi_142585128
Nog even terugkomend op dat Doctrine-verhaal, klopt het dat je (afgezien van getters/setters) de entities volledig met de hand moet schrijven? Ik werk met ZF2 en hoopte dat er net als bij (ik meen) Symfony2 een "tooltje/optie" is om kolommen te declareren, waarna je bijv kunt aangeven welke opties je er bij wilt hebben (name, type, nullable etc.).

Hoe doen jullie dit?
pi_142586818
Dat kun je aangeven dmv annotations.
http://symfony.com/doc/cu(...)ting-an-entity-class

De getters en setters en De fysieke database structuur maak je in een paar seconden aan dmv een command-line tool .
  dinsdag 22 juli 2014 @ 14:51:34 #45
166255 Maringo
Bèhèhèhèh
pi_142596687
quote:
14s.gif Op dinsdag 22 juli 2014 09:45 schreef KomtTijd... het volgende:
Dat kun je aangeven dmv annotations.
http://symfony.com/doc/cu(...)ting-an-entity-class

De getters en setters en De fysieke database structuur maak je in een paar seconden aan dmv een command-line tool .
Dat is voor Symfony2, hij vraagt voor ZF2. :)

Voor Symfony2 is er inderdaad een hele reeks aan commands voor allerlei dingen van doctirne. Geen idee of dat ook voor ZF2 is.
Die volg topic-knop hè...
Op 02-06-2014 16:38 schreef Moeraskat
Je bent te goed voor de mensheid.
pi_142597015
Ja fuck, waarom maken ze dan ook 2 PHP frameworks die ze afkorten met ZF2 en SF2 :')
  dinsdag 22 juli 2014 @ 16:36:01 #47
272287 henrivo
Tikt tegen jassies
pi_142600562
Wéér een gemiste kans voor ZF2 ;(
  dinsdag 22 juli 2014 @ 16:42:43 #48
12221 Tijn
Powered by MS Paint
  dinsdag 22 juli 2014 @ 16:52:30 #49
272287 henrivo
Tikt tegen jassies
pi_142601419
quote:
Daar werk ik nu ook mee, ik vroeg me alleen af of er net als in Symfony2 een geautomatiseerd tooltje was om variabelen te declareren, waarna je bijv kon aangeven of het om een string of integer gaat. Ik begin net pas met Doctrine, dus dat zou het voor mij (in het begin in elk geval) wat makkelijker maken :)
  dinsdag 22 juli 2014 @ 16:55:40 #50
12221 Tijn
Powered by MS Paint
pi_142601599
Als je toch een beginner bent, waarom stap je dan niet over naar Symfony2? Dat is toch wel hét framework op het moment voor PHP. Tenzij je zwaar vastzit aan Zend Framework, zou ik lekker overstappen naar Symfony.
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')